Procházet zdrojové kódy

style(service): 优化代码格式和导入功能修复

- 统一代码中的空格和括号格式规范
- 修复动态表格导入功能中ID映射和数据关联问题
- 优化PDF服务中续页配置的空指针检查
- 调整动态表格文件更新方法的参数传递格式
xuzhancheng před 4 dny
rodič
revize
6308266741

+ 43 - 34
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamictb/DynamicTbServiceImpl.java

@@ -113,7 +113,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
         // 校验tbCode唯一性(排除自身)
         // 校验tbCode唯一性(排除自身)
         validateTbCodeUnique(updateReqVO.getTbCode(), updateReqVO.getId());
         validateTbCodeUnique(updateReqVO.getTbCode(), updateReqVO.getId());
         // 对象类型转字符串
         // 对象类型转字符串
-        if (updateReqVO.getCopyConfig() instanceof com.alibaba.fastjson2.JSONObject){
+        if (updateReqVO.getCopyConfig() instanceof com.alibaba.fastjson2.JSONObject) {
             updateReqVO.setCopyConfig(JSON.toJSONString(updateReqVO.getCopyConfig()));
             updateReqVO.setCopyConfig(JSON.toJSONString(updateReqVO.getCopyConfig()));
         }
         }
 
 
@@ -130,10 +130,11 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
             }).toList());
             }).toList());
         }
         }
     }
     }
-    public void updateFile(String id, List<String> filePaths){
+
+    public void updateFile(String id, List<String> filePaths) {
         // 报告原件
         // 报告原件
         // 原有的文件
         // 原有的文件
-        List<DynamicTbFileDO> dynamicTbFileDOS = dynamicTbFileMapper.selectList(DynamicTbFileDO::getId,id);
+        List<DynamicTbFileDO> dynamicTbFileDOS = dynamicTbFileMapper.selectList(DynamicTbFileDO::getId, id);
         if (!CollUtil.isEmpty(dynamicTbFileDOS)) {
         if (!CollUtil.isEmpty(dynamicTbFileDOS)) {
             // 需要新增的文件
             // 需要新增的文件
             List<String> newFilePaths = filePaths.stream().filter(filePath -> dynamicTbFileDOS.stream().noneMatch(dynamicTbFileDO -> dynamicTbFileDO.getFilePath().equals(filePath))).toList();
             List<String> newFilePaths = filePaths.stream().filter(filePath -> dynamicTbFileDOS.stream().noneMatch(dynamicTbFileDO -> dynamicTbFileDO.getFilePath().equals(filePath))).toList();
@@ -157,7 +158,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
                     }
                     }
                 }
                 }
             }
             }
-        }else {
+        } else {
             for (String filePath : filePaths) {
             for (String filePath : filePaths) {
                 int update = dynamicTbFileMapper.updateByIdAndFilePathIgnoreLogicDelete(id, filePath);
                 int update = dynamicTbFileMapper.updateByIdAndFilePathIgnoreLogicDelete(id, filePath);
                 if (update == 0) {
                 if (update == 0) {
@@ -206,7 +207,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
         String copyConfig = dynamicTbDO.getCopyConfig();
         String copyConfig = dynamicTbDO.getCopyConfig();
         dynamicTbDO.setCopyConfig(null);
         dynamicTbDO.setCopyConfig(null);
         DynamicTbRespVO bean = BeanUtils.toBean(dynamicTbDO, DynamicTbRespVO.class);
         DynamicTbRespVO bean = BeanUtils.toBean(dynamicTbDO, DynamicTbRespVO.class);
-        
+
         // 安全地解析 copyConfig JSON 字符串
         // 安全地解析 copyConfig JSON 字符串
         if (StrUtil.isNotEmpty(copyConfig)) {
         if (StrUtil.isNotEmpty(copyConfig)) {
             try {
             try {
@@ -219,7 +220,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
         } else {
         } else {
             bean.setCopyConfig(new JSONObject());
             bean.setCopyConfig(new JSONObject());
         }
         }
-        
+
         // 报告原件
         // 报告原件
         List<DynamicTbFileDO> dynamicTbFileDOS = dynamicTbFileMapper.selectList(DynamicTbFileDO::getId, id);
         List<DynamicTbFileDO> dynamicTbFileDOS = dynamicTbFileMapper.selectList(DynamicTbFileDO::getId, id);
         bean.setFilePaths(dynamicTbFileDOS.stream().map(dynamicTbFileDO -> {
         bean.setFilePaths(dynamicTbFileDOS.stream().map(dynamicTbFileDO -> {
@@ -351,21 +352,21 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
                 .eqIfPresent(DynamicTbDO::getTbName, pageReqVO.getTbName())
                 .eqIfPresent(DynamicTbDO::getTbName, pageReqVO.getTbName())
                 .eqIfPresent(DynamicTbDO::getTbType, pageReqVO.getTbType())
                 .eqIfPresent(DynamicTbDO::getTbType, pageReqVO.getTbType())
                 .eqIfPresent(DynamicTbDO::getPjType, pageReqVO.getPjType()));
                 .eqIfPresent(DynamicTbDO::getPjType, pageReqVO.getPjType()));
-        
+
         List<DynamicTbDO> list = pageResult.getList();
         List<DynamicTbDO> list = pageResult.getList();
         if (CollUtil.isEmpty(list)) {
         if (CollUtil.isEmpty(list)) {
             return PageResult.empty();
             return PageResult.empty();
         }
         }
-        
+
         // 获取流程任务信息
         // 获取流程任务信息
         Map<String, BpmTaskDTO> data = bpmTaskApi.getLastTaskMap(list.stream().map(DynamicTbDO::getProcessInstanceId).toList()).getData();
         Map<String, BpmTaskDTO> data = bpmTaskApi.getLastTaskMap(list.stream().map(DynamicTbDO::getProcessInstanceId).toList()).getData();
         List<DynamicTbAuditRespVO> collect = list.stream().map(dynamicTbDO -> {
         List<DynamicTbAuditRespVO> collect = list.stream().map(dynamicTbDO -> {
             DynamicTbAuditRespVO dynamicTbAuditRespVO = new DynamicTbAuditRespVO();
             DynamicTbAuditRespVO dynamicTbAuditRespVO = new DynamicTbAuditRespVO();
 
 
             CommonResult<List<BpmTaskRespDTO>> taskListByProcessInstanceId = bpmTaskApi.getTaskListByProcessInstanceId(dynamicTbDO.getProcessInstanceId());
             CommonResult<List<BpmTaskRespDTO>> taskListByProcessInstanceId = bpmTaskApi.getTaskListByProcessInstanceId(dynamicTbDO.getProcessInstanceId());
-            if (taskListByProcessInstanceId.isSuccess()){
+            if (taskListByProcessInstanceId.isSuccess()) {
                 List<BpmTaskRespDTO> taskListByProcessInstanceIdData = taskListByProcessInstanceId.getData();
                 List<BpmTaskRespDTO> taskListByProcessInstanceIdData = taskListByProcessInstanceId.getData();
-                if (!taskListByProcessInstanceIdData.isEmpty()){
+                if (!taskListByProcessInstanceIdData.isEmpty()) {
                     BpmTaskRespDTO bpmTaskRespDTO = taskListByProcessInstanceIdData.get(0);
                     BpmTaskRespDTO bpmTaskRespDTO = taskListByProcessInstanceIdData.get(0);
                     UserSimpleBaseDTO assigneeUser = bpmTaskRespDTO.getAssigneeUser();
                     UserSimpleBaseDTO assigneeUser = bpmTaskRespDTO.getAssigneeUser();
                     dynamicTbAuditRespVO.setSubmitUser(assigneeUser);
                     dynamicTbAuditRespVO.setSubmitUser(assigneeUser);
@@ -376,7 +377,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
 
 
             dynamicTbAuditRespVO.setProcessInstanceId(dynamicTbDO.getProcessInstanceId());
             dynamicTbAuditRespVO.setProcessInstanceId(dynamicTbDO.getProcessInstanceId());
             BpmTaskDTO bpmTaskDTO = data.get(dynamicTbDO.getProcessInstanceId());
             BpmTaskDTO bpmTaskDTO = data.get(dynamicTbDO.getProcessInstanceId());
-            if (bpmTaskDTO != null){
+            if (bpmTaskDTO != null) {
                 dynamicTbAuditRespVO.setCurrentNode(bpmTaskDTO.getName());
                 dynamicTbAuditRespVO.setCurrentNode(bpmTaskDTO.getName());
                 dynamicTbAuditRespVO.setCurrentAuditorId(bpmTaskDTO.getAssignee());
                 dynamicTbAuditRespVO.setCurrentAuditorId(bpmTaskDTO.getAssignee());
             }
             }
@@ -561,6 +562,8 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
             // 通过 tbCode 查找是否已存在
             // 通过 tbCode 查找是否已存在
             DynamicTbDO existing = dynamicTbMapper.selectOne(
             DynamicTbDO existing = dynamicTbMapper.selectOne(
                     new LambdaQueryWrapperX<DynamicTbDO>().eq(DynamicTbDO::getTbCode, tbDO.getTbCode()));
                     new LambdaQueryWrapperX<DynamicTbDO>().eq(DynamicTbDO::getTbCode, tbDO.getTbCode()));
+            String id = tbDO.getId();
+            String oldId = tbDO.getId();
             if (existing != null) {
             if (existing != null) {
                 // 更新:保留原有ID
                 // 更新:保留原有ID
                 tbDO.setId(existing.getId());
                 tbDO.setId(existing.getId());
@@ -569,37 +572,43 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
                 // 新增:使用导出的ID
                 // 新增:使用导出的ID
                 tbDO.setId(null);
                 tbDO.setId(null);
                 dynamicTbMapper.insert(tbDO);
                 dynamicTbMapper.insert(tbDO);
+                id = tbDO.getId();
             }
             }
-        }
 
 
-        // 3. 导入 DynamicTbColDO(先删后插)
-        for (DynamicTbDO tbDO : tbList) {
+
+            // 3. 导入 DynamicTbColDO(先删后插)
             // 删除原有的列定义
             // 删除原有的列定义
             dynamicTbColMapper.delete(new LambdaQueryWrapperX<DynamicTbColDO>()
             dynamicTbColMapper.delete(new LambdaQueryWrapperX<DynamicTbColDO>()
                     .eq(DynamicTbColDO::getTbId, tbDO.getId()));
                     .eq(DynamicTbColDO::getTbId, tbDO.getId()));
-        }
-        // 批量插入列定义
-        for (DynamicTbColDO colDO : colList) {
-            if (colDO.getTbId() != null) {
-                colDO.setId(null);
-                dynamicTbColMapper.insert(colDO);
-            }
-        }
 
 
-        // 4. 导入 StandardTemplateDO
-        for (StandardTemplateDO templateDO : templateList) {
-            // 上传文件获取新的 fileUrl
-            byte[] fileBytes = fileMap.get(templateDO.getId());
-            if (fileBytes != null && fileBytes.length > 0) {
-                String newFileUrl = fileApi.createFile(fileBytes);
-                templateDO.setFileUrl(newFileUrl);
+            // 批量插入列定义
+            for (DynamicTbColDO colDO : colList) {
+                if (colDO.getTbId() != null && colDO.getTbId().equals(oldId)) {
+                    colDO.setId(null);
+                    colDO.setTbId(id);
+                    dynamicTbColMapper.insert(colDO);
+                }
             }
             }
 
 
-            StandardTemplateDO existingTemplate = standardTemplateMapper.selectById(templateDO.getId());
-            if (existingTemplate != null) {
-                standardTemplateMapper.updateById(templateDO);
-            } else {
-                standardTemplateMapper.insert(templateDO);
+            // 4. 导入 StandardTemplateDO
+            for (StandardTemplateDO templateDO : templateList) {
+                // 上传文件获取新的 fileUrl
+                if (!templateDO.getId().equals(oldId)) {
+                    continue;
+                }
+                templateDO.setId(id);
+                byte[] fileBytes = fileMap.get(templateDO.getId());
+                if (fileBytes != null && fileBytes.length > 0) {
+                    String newFileUrl = fileApi.createFile(fileBytes);
+                    templateDO.setFileUrl(newFileUrl);
+                }
+
+                StandardTemplateDO existingTemplate = standardTemplateMapper.selectById(oldId);
+                if (existingTemplate != null) {
+                    standardTemplateMapper.updateById(templateDO);
+                } else {
+                    standardTemplateMapper.insert(templateDO);
+                }
             }
             }
         }
         }
     }
     }

+ 2 - 5
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pdf/PdfServiceImpl.java

@@ -170,11 +170,8 @@ public class PdfServiceImpl implements PdfService {
             if (copyConfig != null) {
             if (copyConfig != null) {
                 // {"copyRange":{"topLeft":"0,7","topRight":"19,7","bottomLeft":"0,22","bottomRight":"19,22"},"sheetName":"续页","hidden":true,"isContinuePage":true}
                 // {"copyRange":{"topLeft":"0,7","topRight":"19,7","bottomLeft":"0,22","bottomRight":"19,22"},"sheetName":"续页","hidden":true,"isContinuePage":true}
                 String isContinuePage = copyConfig.getString("isContinuePage");
                 String isContinuePage = copyConfig.getString("isContinuePage");
-                List<String> existingColCodes = null;
-
-
-
-                if (isContinuePage.equals("true")){
+                if (isContinuePage != null && isContinuePage.equals("true")){
+                    List<String> existingColCodes = null;
                     DynamicTBViewOrAddVO queryVO = new DynamicTBViewOrAddVO();
                     DynamicTBViewOrAddVO queryVO = new DynamicTBViewOrAddVO();
                     queryVO.setTemplateId(templateId);
                     queryVO.setTemplateId(templateId);
                     DynamicTbInsDO dynamicTBInsDO = dynamicTbInsService.getById(instanceId);
                     DynamicTbInsDO dynamicTBInsDO = dynamicTbInsService.getById(instanceId);