|
|
@@ -113,7 +113,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
|
|
|
// 校验tbCode唯一性(排除自身)
|
|
|
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()));
|
|
|
}
|
|
|
|
|
|
@@ -130,10 +130,11 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
|
|
|
}).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)) {
|
|
|
// 需要新增的文件
|
|
|
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) {
|
|
|
int update = dynamicTbFileMapper.updateByIdAndFilePathIgnoreLogicDelete(id, filePath);
|
|
|
if (update == 0) {
|
|
|
@@ -206,7 +207,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
|
|
|
String copyConfig = dynamicTbDO.getCopyConfig();
|
|
|
dynamicTbDO.setCopyConfig(null);
|
|
|
DynamicTbRespVO bean = BeanUtils.toBean(dynamicTbDO, DynamicTbRespVO.class);
|
|
|
-
|
|
|
+
|
|
|
// 安全地解析 copyConfig JSON 字符串
|
|
|
if (StrUtil.isNotEmpty(copyConfig)) {
|
|
|
try {
|
|
|
@@ -219,7 +220,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
|
|
|
} else {
|
|
|
bean.setCopyConfig(new JSONObject());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 报告原件
|
|
|
List<DynamicTbFileDO> dynamicTbFileDOS = dynamicTbFileMapper.selectList(DynamicTbFileDO::getId, id);
|
|
|
bean.setFilePaths(dynamicTbFileDOS.stream().map(dynamicTbFileDO -> {
|
|
|
@@ -351,21 +352,21 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
|
|
|
.eqIfPresent(DynamicTbDO::getTbName, pageReqVO.getTbName())
|
|
|
.eqIfPresent(DynamicTbDO::getTbType, pageReqVO.getTbType())
|
|
|
.eqIfPresent(DynamicTbDO::getPjType, pageReqVO.getPjType()));
|
|
|
-
|
|
|
+
|
|
|
List<DynamicTbDO> list = pageResult.getList();
|
|
|
if (CollUtil.isEmpty(list)) {
|
|
|
return PageResult.empty();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 获取流程任务信息
|
|
|
Map<String, BpmTaskDTO> data = bpmTaskApi.getLastTaskMap(list.stream().map(DynamicTbDO::getProcessInstanceId).toList()).getData();
|
|
|
List<DynamicTbAuditRespVO> collect = list.stream().map(dynamicTbDO -> {
|
|
|
DynamicTbAuditRespVO dynamicTbAuditRespVO = new DynamicTbAuditRespVO();
|
|
|
|
|
|
CommonResult<List<BpmTaskRespDTO>> taskListByProcessInstanceId = bpmTaskApi.getTaskListByProcessInstanceId(dynamicTbDO.getProcessInstanceId());
|
|
|
- if (taskListByProcessInstanceId.isSuccess()){
|
|
|
+ if (taskListByProcessInstanceId.isSuccess()) {
|
|
|
List<BpmTaskRespDTO> taskListByProcessInstanceIdData = taskListByProcessInstanceId.getData();
|
|
|
- if (!taskListByProcessInstanceIdData.isEmpty()){
|
|
|
+ if (!taskListByProcessInstanceIdData.isEmpty()) {
|
|
|
BpmTaskRespDTO bpmTaskRespDTO = taskListByProcessInstanceIdData.get(0);
|
|
|
UserSimpleBaseDTO assigneeUser = bpmTaskRespDTO.getAssigneeUser();
|
|
|
dynamicTbAuditRespVO.setSubmitUser(assigneeUser);
|
|
|
@@ -376,7 +377,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
|
|
|
|
|
|
dynamicTbAuditRespVO.setProcessInstanceId(dynamicTbDO.getProcessInstanceId());
|
|
|
BpmTaskDTO bpmTaskDTO = data.get(dynamicTbDO.getProcessInstanceId());
|
|
|
- if (bpmTaskDTO != null){
|
|
|
+ if (bpmTaskDTO != null) {
|
|
|
dynamicTbAuditRespVO.setCurrentNode(bpmTaskDTO.getName());
|
|
|
dynamicTbAuditRespVO.setCurrentAuditorId(bpmTaskDTO.getAssignee());
|
|
|
}
|
|
|
@@ -561,43 +562,53 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
|
|
|
// 通过 tbCode 查找是否已存在
|
|
|
DynamicTbDO existing = dynamicTbMapper.selectOne(
|
|
|
new LambdaQueryWrapperX<DynamicTbDO>().eq(DynamicTbDO::getTbCode, tbDO.getTbCode()));
|
|
|
+ String id = tbDO.getId();
|
|
|
+ String oldId = tbDO.getId();
|
|
|
if (existing != null) {
|
|
|
// 更新:保留原有ID
|
|
|
tbDO.setId(existing.getId());
|
|
|
dynamicTbMapper.updateById(tbDO);
|
|
|
} else {
|
|
|
// 新增:使用导出的ID
|
|
|
+ tbDO.setId(null);
|
|
|
dynamicTbMapper.insert(tbDO);
|
|
|
+ id = tbDO.getId();
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- // 3. 导入 DynamicTbColDO(先删后插)
|
|
|
- for (DynamicTbDO tbDO : tbList) {
|
|
|
+
|
|
|
+ // 3. 导入 DynamicTbColDO(先删后插)
|
|
|
// 删除原有的列定义
|
|
|
dynamicTbColMapper.delete(new LambdaQueryWrapperX<DynamicTbColDO>()
|
|
|
.eq(DynamicTbColDO::getTbId, tbDO.getId()));
|
|
|
- }
|
|
|
- // 批量插入列定义
|
|
|
- for (DynamicTbColDO colDO : colList) {
|
|
|
- if (colDO.getTbId() != 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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|