Java 根据财务年度为项目中的所有交易生成序列单据编号
在我的项目中,每次最终批准后,几乎有150个交易表,我们需要提供唯一的交易编号。对于该财政年度,每笔交易都将使用doc_代码(字符串)进行标识 Ex:Employee表的文档代码为EMP Department表的文档代码为DEPT 一个名为doc series的表用于获取所有事务最近生成的文档编号 在所有交易记录的单据系列表中,将为0分配一个名为“下一个否”的字段。 每次交易表获得批准时,我们都会将下一个编号增加1。 在批准交易表单时,我们将为该特定单据系列取下一个No值,并将该值指定为交易编号 获取下一个事务编号的方法:-Java 根据财务年度为项目中的所有交易生成序列单据编号,java,jakarta-ee,struts2,transactions,jpa-2.0,Java,Jakarta Ee,Struts2,Transactions,Jpa 2.0,在我的项目中,每次最终批准后,几乎有150个交易表,我们需要提供唯一的交易编号。对于该财政年度,每笔交易都将使用doc_代码(字符串)进行标识 Ex:Employee表的文档代码为EMP Department表的文档代码为DEPT 一个名为doc series的表用于获取所有事务最近生成的文档编号 在所有交易记录的单据系列表中,将为0分配一个名为“下一个否”的字段。 每次交易表获得批准时,我们都会将下一个编号增加1。 在批准交易表单时,我们将为该特定单据系列取下一个No值,并将该值指定为交易编号
List<IptDocumentseries>idslist=
iidsd.findByDocSeriesCode(doccode,financial_year);
if(idslist!=null && !idslist.isEmpty())
{
docNo = idslist.get(0).getNextNo();
}
public synchronized void updateDocSeries(String doccode,String docseries)
{
Long nextno= 0L;
List<IptDocumentseries>
idslist =iidsd.findByDocSeriesCode(doccode,docseries,portcode,companycode);
try{
if(idslist!=null && !idslist.isEmpty())
{
nextno = idslist.get(0).getNextNo();
IptDocumentseries ids = new IptDocumentseries();
ids = idslist.get(0);
ids.setNextNo(++nextno);
ids.setModifiedDate(getCurrentTimeStamp());
iidsd.update(ids);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
Listidslist=
iidsd.findByDocSeriesCode(doccode,财政年度);
if(idslist!=null&&!idslist.isEmpty())
{
docNo=idslist.get(0.getNextNo();
}
我将在Employee Action类中通过传递其文档代码和财政年度来使用上述方法
完成最终批准后,我将该系列的下一个No增加1
更新下一个事务编号的方法:-
List<IptDocumentseries>idslist=
iidsd.findByDocSeriesCode(doccode,financial_year);
if(idslist!=null && !idslist.isEmpty())
{
docNo = idslist.get(0).getNextNo();
}
public synchronized void updateDocSeries(String doccode,String docseries)
{
Long nextno= 0L;
List<IptDocumentseries>
idslist =iidsd.findByDocSeriesCode(doccode,docseries,portcode,companycode);
try{
if(idslist!=null && !idslist.isEmpty())
{
nextno = idslist.get(0).getNextNo();
IptDocumentseries ids = new IptDocumentseries();
ids = idslist.get(0);
ids.setNextNo(++nextno);
ids.setModifiedDate(getCurrentTimeStamp());
iidsd.update(ids);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public synchronized void updateDocSeries(字符串doccode,字符串docseries)
{
长nextno=0升;
列表
idslist=iidsd.findByDocSeriesCode(doccode、docseries、portcode、companycode);
试试{
if(idslist!=null&&!idslist.isEmpty())
{
nextno=idslist.get(0.getNextNo();
IptDocumentseries ID=新的IptDocumentseries();
ids=idslist.get(0);
id.setNextNo(++nextno);
setModifiedDate(getCurrentTimeStamp());
iidsd.更新(ids);
}
}
捕获(例外e)
{
e、 printStackTrace();
}
}
这是一种正确的方法吗?因为在某些情况下,我们会得到重复和缺失的序列
是否有其他方法生成此文档?不,请让我知道
对不起,如果我误导了你
我的数据库表结构是:
Doc_系列表
序列号——文件编号——下一个文件编号——文件系列——年份——有效(T/F)
1---EMP---7---EMP13-14---F
2---EMP---5---EMP14-15---T
3----DEPT----3----DEPT13-14----F
4----DEPT----6----DEPT14-15----T
电磁脉冲表
S.no----文件编号----Doc\U系列\U年份----批准状态
1---1---EMP13-14----批准 2----EMP13-14----草案 3---2---EMP13-14----批准 4---3---EMP13-14----批准 5---4---EMP13-14----批准 6---5---EMP13-14----批准 7----EMP13-14----草案 8---6---EMP13-14----批准 9---1---EMP14-15----批准 10---2---EMP14-15----批准 11---3---EMP14-15----批准 12---4---EMP14-15----批准
部门表 编号-----文件编号-----文件编号----Doc\U系列\U年份-----批准状态
1---1---DEPT13-14----批准 2----DEPT13-14----草案 3---2---DEPT13-14----批准 4---1---DEPT14-15----批准 5---2---DEPT14-15----批准 6---3---DEPT14-15----批准 7----DEPT14-15----草案 8---4---DEPT14-15----批准 9---5---DEPT14-15----批准
我可以通过使一个文档系列处于活动/非活动状态,将其切换到另一个文档系列,但序列号应根据文档系列的年份继续。查看是否有帮助。不清楚,是否要为文档生成校验和?