Browse Source

合同编号重复生成问题修复

lizhenhao 2 years ago
parent
commit
a1fb0718f2

+ 46 - 32
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProjectListService.java

@@ -229,22 +229,29 @@ public class ProjectListService {
                     ProgramProjectListInfo programProjectListInfo = projectListMapper.getById(info.getId());
                     if (ObjectUtil.isNotEmpty(programProjectListInfo)) {
                         // 根据项目id查询关联的合同信息-》找到合同id
-                        String contractId = programProjectListInfo.getContractId();
-                        if (StringUtils.isNotBlank(programProjectListInfo.getReportType())) {
-                            if ("1".equals(programProjectListInfo.getReportType())) {
-                                // 生成合同编号-评估类
-                                String serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE);
-                                // 根据合同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 = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE_);
-                                // 根据合同id和合同编号来修改合同数据
-                                WorkContractInfo workContractInfo = new WorkContractInfo();
-                                workContractInfo.setNo(serialNum);
-                                workContractInfoMapper.update(workContractInfo, new QueryWrapper<WorkContractInfo>().lambda().eq(WorkContractInfo::getId, contractId));
+                        if (StringUtils.isNotBlank(programProjectListInfo.getContractId())) {
+                            String contractId = programProjectListInfo.getContractId();
+                            WorkContractInfo contract = workContractInfoMapper.findById(contractId);
+                            if (ObjectUtil.isNotEmpty(contract)) {
+                                if (StringUtils.isBlank(contract.getNo())) {
+                                    if (StringUtils.isNotBlank(programProjectListInfo.getReportType())) {
+                                        if ("1".equals(programProjectListInfo.getReportType())) {
+                                            // 生成合同编号-评估类
+                                            String serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE);
+                                            // 根据合同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 = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE_);
+                                            // 根据合同id和合同编号来修改合同数据
+                                            WorkContractInfo workContractInfo = new WorkContractInfo();
+                                            workContractInfo.setNo(serialNum);
+                                            workContractInfoMapper.update(workContractInfo, new QueryWrapper<WorkContractInfo>().lambda().eq(WorkContractInfo::getId, contractId));
+                                        }
+                                    }
+                                }
                             }
                         }
                     }
@@ -437,22 +444,29 @@ public class ProjectListService {
                     ProgramProjectListInfo programProjectListInfo = projectListMapper.getById(info.getId());
                     if (ObjectUtil.isNotEmpty(programProjectListInfo)) {
                         // 根据项目id查询关联的合同信息-》找到合同id
-                        String contractId = programProjectListInfo.getContractId();
-                        if (StringUtils.isNotBlank(programProjectListInfo.getReportType())) {
-                            if ("1".equals(programProjectListInfo.getReportType())) {
-                                // 生成合同编号-评估类
-                                String serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE);
-                                // 根据合同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 = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE_);
-                                // 根据合同id和合同编号来修改合同数据
-                                WorkContractInfo workContractInfo = new WorkContractInfo();
-                                workContractInfo.setNo(serialNum);
-                                workContractInfoMapper.update(workContractInfo, new QueryWrapper<WorkContractInfo>().lambda().eq(WorkContractInfo::getId, contractId));
+                        if (StringUtils.isNotBlank(programProjectListInfo.getContractId())) {
+                            String contractId = programProjectListInfo.getContractId();
+                            WorkContractInfo contract = workContractInfoMapper.findById(contractId);
+                            if (ObjectUtil.isNotEmpty(contract)) {
+                                if (StringUtils.isBlank(contract.getNo())) {
+                                    if (StringUtils.isNotBlank(programProjectListInfo.getReportType())) {
+                                        if ("1".equals(programProjectListInfo.getReportType())) {
+                                            // 生成合同编号-评估类
+                                            String serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE);
+                                            // 根据合同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 = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE_);
+                                            // 根据合同id和合同编号来修改合同数据
+                                            WorkContractInfo workContractInfo = new WorkContractInfo();
+                                            workContractInfo.setNo(serialNum);
+                                            workContractInfoMapper.update(workContractInfo, new QueryWrapper<WorkContractInfo>().lambda().eq(WorkContractInfo::getId, contractId));
+                                        }
+                                    }
+                                }
                             }
                         }
                     }