瀏覽代碼

Revert "同步-同步合同段-添加历史html调整"

This reverts commit 7c6e5ec23c3d3a994ee0f31613efe540be59170a.
LHB 3 周之前
父節點
當前提交
3f954a972d

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java

@@ -203,6 +203,9 @@ public interface WbsTreeContractClient {
     @GetMapping(API_PREFIX + "/get-ekey")
     EKeyDto getEKey(@RequestParam String contractId, @RequestParam Long pKeyId, @RequestParam String wbsId);
 
+    @GetMapping(API_PREFIX + "/findIsExistTreeNode")
+    Integer findIsExistTreeNode(List<String> processNodeList);
+
     @PostMapping(API_PREFIX + "/queryListByPIds")
     List<WbsTreeContract> queryListByPIds(@RequestBody List<Long> pIds);
 }

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -491,6 +491,11 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
         return wbsTreeContractService.getEKey(contractId,pKeyId,wbsId);
     }
 
+    @Override
+    public Integer findIsExistTreeNode(List<String> ids) {
+        return wbsTreeContractService.findIsExistTreeNode(ids);
+    }
+
     @Override
     public List<WbsTreeContract> queryListByPIds(List<Long> pIds) {
         return wbsTreeContractService.queryListByPIds(pIds);

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsSynchronousEViSaServiceImpl.java

@@ -229,6 +229,7 @@ public class WbsSynchronousEViSaServiceImpl {
 
                     WbsTreeContractOldHtml oldHtml = new WbsTreeContractOldHtml();
                     oldHtml.setId(SnowFlakeUtil.getId());
+                    oldHtml.setCreateUser(getUser().getUserId());
                     String htmlUrl = wbsTreeContract.getHtmlUrl();
                     // 获取或下载文件
                     Path sourcePath = FileUtils.getOrDownloadFile(htmlUrl);

+ 32 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsSynchronousServiceImpl.java

@@ -644,9 +644,7 @@ public class WbsSynchronousServiceImpl {
                             .eq(WbsTreeContract::getContractId, contractInfo.getId())
                             .eq(WbsTreeContract::getIsDeleted, 0)
                             .apply("FIND_IN_SET({0},ancestors_p_id)", wbsTreeContract.getPKeyId());
-                    if(CollectionUtil.isNotEmpty(formList)){
-                        wrapperContract.in(WbsTreeContract::getIsTypePrivatePid, formList);
-                    }
+                    wrapperContract.apply("FIND_IN_SET({0},ancestors_p_id)", wbsTreeContract.getPKeyId());
 
                     //当前合同的子节点数据
                     List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(wrapperContract);
@@ -680,12 +678,20 @@ public class WbsSynchronousServiceImpl {
                     //需要新增的表单
                     List<WbsTreePrivate> addPrivateNodes = wbsTreePrivates.stream().filter(f -> !typePrivateIds.contains(f.getPKeyId())).collect(Collectors.toList());
 
+                    //如果没有选中 则默认同步所有
+                    if (CollectionUtil.isNotEmpty(formList)) {
+                        //二次筛选  只保留任务选中的表单   但可能新增的数据包含新节点
+                        addPrivateNodes = addPrivateNodes.stream().filter(f -> formList.contains(f.getPKeyId())).collect(Collectors.toList());
+                    }
 
                     //筛选出需要更新的节点  同时做数据隔离
                     List<WbsTreeContract> editContractNodes = new ArrayList<>();
                     for (WbsTreePrivate templateNode : wbsTreePrivates) {
                         //更新只跟新表单
                         for (WbsTreeContract editContractNode : wbsTreeContracts) {
+                            if (CollectionUtil.isNotEmpty(formList) && !formList.contains(editContractNode.getPKeyId())) {
+                                continue;
+                            }
 
 
                             // 判断模板表与项目表 html是否一致
@@ -718,7 +724,7 @@ public class WbsSynchronousServiceImpl {
                                                     if (i == 0) {
                                                         throw new ServiceException(editContractNode.getNodeName()  + "( " + wbsTreeContract.getPKeyId() + ")--表单未查到填报信息");
                                                     }
-                                                    if (contractRanges.contains(WbsSyncTypeEnum.ALREADY_FILLED_IN_NOT_REPORTED.code) && (submit == null || submit == 0)) {
+                                                    if (contractRanges.contains(WbsSyncTypeEnum.ALREADY_FILLED_IN_NOT_REPORTED.code)) {
                                                         //已填报-未上报 102
                                                         isSync = true;
                                                     } else {
@@ -772,15 +778,26 @@ public class WbsSynchronousServiceImpl {
                                     }
 
                                     //手动选中的表单 进行筛选
-                                    if (collect.contains(2) || collect.contains(3) || collect.contains(4) || collect.contains(5) || collect.contains(6) || collect.contains(7)) {
-                                        if (isSync) {
-                                            editContractNodes.add(editContractNode);
-                                        }
-                                        //记录历史html
-                                        if (isOldHtml) {
-                                            oldHtml.add(editContractNode);
+                                    if (CollectionUtil.isNotEmpty(formList)) {
+                                        if (formList.contains(templateNode.getPKeyId())) {
+                                            if (collect.contains(2) || collect.contains(3) || collect.contains(4) || collect.contains(5) || collect.contains(6) || collect.contains(7)) {
+                                                if (isSync) {
+                                                    editContractNodes.add(editContractNode);
+                                                }
+
+                                            }
                                         }
+                                    } else {
+                                        if (collect.contains(2) || collect.contains(3) || collect.contains(4) || collect.contains(5) || collect.contains(6) || collect.contains(7)) {
+                                            if (isSync) {
+                                                editContractNodes.add(editContractNode);
+                                            }
+                                            //记录历史html
+                                            if (isOldHtml) {
+                                                oldHtml.add(editContractNode);
+                                            }
 
+                                        }
                                     }
                                     //找到了某个选中节点下与项目节点想同的节点了  提前结束循环,节省资源
                                     break;
@@ -788,6 +805,10 @@ public class WbsSynchronousServiceImpl {
                             }
                         }
                     }
+                    //修改数据二次筛选  只保留任务选中的表单   但可能新增的数据包含新节点
+                    if (CollectionUtil.isNotEmpty(formList)) {
+                        editContractNodes = editContractNodes.stream().filter(f -> formList.contains(f.getPKeyId())).collect(Collectors.toList());
+                    }
 
                     //合同段新增节点
                     List<WbsTreeContract> addContractNode = null;