|
@@ -644,21 +644,69 @@ public class ProjectListService {
|
|
|
WorkContractInfo contract = workContractInfoMapper.findById(contractId);
|
|
|
if (ObjectUtil.isNotEmpty(contract) && StringUtils.isBlank(contract.getNo())) {
|
|
|
if (StringUtils.isNotBlank(programProjectListInfo.getReportType())) {
|
|
|
- if ("1".equals(programProjectListInfo.getReportType())) {
|
|
|
- // 生成合同编号-评估类
|
|
|
- String serialNum = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE,currentToken);
|
|
|
- // 根据合同id和合同编号来修改合同数据
|
|
|
- WorkContractInfo workContractInfo = new WorkContractInfo();
|
|
|
- workContractInfo.setNo(serialNum);
|
|
|
- workContractInfoMapper.update(workContractInfo, new QueryWrapper<WorkContractInfo>().lambda().eq(WorkContractInfo::getId, contractId));
|
|
|
- }else if("2".equals(programProjectListInfo.getReportType())){
|
|
|
- // 生成合同编号-咨询类
|
|
|
- String serialNum = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE_,currentToken);
|
|
|
- // 根据合同id和合同编号来修改合同数据
|
|
|
- WorkContractInfo workContractInfo = new WorkContractInfo();
|
|
|
- workContractInfo.setNo(serialNum);
|
|
|
- workContractInfoMapper.update(workContractInfo, new QueryWrapper<WorkContractInfo>().lambda().eq(WorkContractInfo::getId, contractId));
|
|
|
+ String projectYear = ""; //项目编号的年份
|
|
|
+ if (StringUtils.isNotBlank(programProjectListInfo.getNo())){
|
|
|
+ //截取项目编号所在的年份
|
|
|
+ projectYear = programProjectListInfo.getNo().substring(0, 4);
|
|
|
+ if ("1".equals(programProjectListInfo.getReportType())) {
|
|
|
+ String serialNum="";
|
|
|
+ //当项目编号年份与当前年份一致时,则合同编号正常生成,否则手动生成合同编号
|
|
|
+ if (projectYear.equals(currentYear)) {
|
|
|
+ // 生成合同编号-评估类
|
|
|
+ serialNum = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE,currentToken);
|
|
|
+ }else {
|
|
|
+ String contractNum = "评估合同";
|
|
|
+ //查找合同中与项目编号年份一致的最后一条评估合同的编号
|
|
|
+ String contractNo = workContractInfoMapper.getNoByYear(projectYear,contractNum);
|
|
|
+ int lastIndex = contractNo.lastIndexOf("-");
|
|
|
+ if (lastIndex != -1) {
|
|
|
+ String lastPart = contractNo.substring(lastIndex + 1); // 从 "-" 后面开始截取
|
|
|
+ int parseInt = Integer.parseInt(lastPart);
|
|
|
+ int newNum =parseInt+1;
|
|
|
+ if (newNum<100 && newNum >=10){
|
|
|
+ serialNum = "评估合同-"+projectYear+"-0"+newNum;
|
|
|
+ }else if (newNum>0 && newNum<10){
|
|
|
+ serialNum = "评估合同-"+projectYear+"-00"+newNum;
|
|
|
+ } else {
|
|
|
+ serialNum = "评估合同-"+projectYear+"-"+newNum;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 根据合同id和合同编号来修改合同数据
|
|
|
+ WorkContractInfo workContractInfo = new WorkContractInfo();
|
|
|
+ workContractInfo.setNo(serialNum);
|
|
|
+ workContractInfoMapper.update(workContractInfo, new QueryWrapper<WorkContractInfo>().lambda().eq(WorkContractInfo::getId, contractId));
|
|
|
+ }else if("2".equals(programProjectListInfo.getReportType())){
|
|
|
+ String serialNum="";
|
|
|
+ //当项目编号年份与当前年份一致时,则合同编号正常生成,否则手动生成合同编号
|
|
|
+ if (projectYear.equals(currentYear)) {
|
|
|
+ // 生成合同编号-咨询类
|
|
|
+ serialNum = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE_,currentToken);
|
|
|
+ }else {
|
|
|
+ String contractNum = "咨询合同";
|
|
|
+ //查找合同中与项目编号年份一致的最后一条咨询合同的编号
|
|
|
+ String contractNo = workContractInfoMapper.getNoByYear(projectYear,contractNum);
|
|
|
+ int lastIndex = contractNo.lastIndexOf("-");
|
|
|
+ if (lastIndex != -1) {
|
|
|
+ String lastPart = contractNo.substring(lastIndex + 1); // 从 "-" 后面开始截取
|
|
|
+ int parseInt = Integer.parseInt(lastPart);
|
|
|
+ int newNum = parseInt+1;
|
|
|
+ if (newNum>0 && newNum<10){
|
|
|
+ serialNum = "咨询合同-"+projectYear+"-00"+newNum;
|
|
|
+ }else if (newNum<100 && newNum >=10){
|
|
|
+ serialNum = "咨询合同-"+projectYear+"-0"+newNum;
|
|
|
+ } else {
|
|
|
+ serialNum = "咨询合同-"+projectYear+"-"+newNum;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 根据合同id和合同编号来修改合同数据
|
|
|
+ WorkContractInfo workContractInfo = new WorkContractInfo();
|
|
|
+ workContractInfo.setNo(serialNum);
|
|
|
+ workContractInfoMapper.update(workContractInfo, new QueryWrapper<WorkContractInfo>().lambda().eq(WorkContractInfo::getId, contractId));
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|