huangtf 1 yıl önce
ebeveyn
işleme
4b8cc67766

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTreeContract.java

@@ -222,6 +222,11 @@ public class ArchiveTreeContract extends BaseEntity {
     //案卷后缀
     private String archiveNameSuffix;
 
+    /**
+     * 类型,1施工 2监理
+     */
+    private Integer classify;
+
 
     public ArchiveTreeContract() {
     }
@@ -337,6 +342,7 @@ public class ArchiveTreeContract extends BaseEntity {
         this.archiveAutoGroupId = archiveTree.getArchiveAutoGroupId();
         this.archiveAutoGroupSelect = archiveTree.getArchiveAutoGroupSelect();
         this.isUploadFileDisplayConfigurationTree = archiveTree.getIsDisplayTree();
+        this.classify = archiveTree.getClassify();
     }
 
 

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java

@@ -49,7 +49,7 @@ public interface ArchiveTreeContractClient {
     ArchiveTreeContract getArchiveTreeContractByContractId(@RequestParam Long contractId);
 
     @PostMapping(API_PREFIX + "/writeBusinessData")
-    Integer writeBusinessData(@RequestParam Long keyId,@RequestParam Long contractId,@RequestParam String formDataId);
+    Integer writeBusinessData(@RequestParam Long keyId,@RequestParam Long contractId,@RequestParam String formDataId,@RequestParam Integer classify);
 
     @PostMapping(API_PREFIX + "/getMeasurementPeriodNode")
     public ArchiveTreeContract getMeasurementPeriodNode(@RequestParam String projectName,@RequestParam String contractName,

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeContractVO2.java

@@ -232,6 +232,11 @@ public class ArchiveTreeContractVO2 implements INodeEx<ArchiveTreeContractVO2> {
 
     private Integer treeNumber;
 
+    /**
+     * 类型,1施工 2监理
+     */
+    private Integer classify;
+
     public String toString() {
         return "TreeNode(parentId=" + this.getParentId()
                 + ",ancestors" + this.getAncestors()

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1194,7 +1194,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 } else //电签完成
                 {
                     try {
-                        archiveTreeContractClient.writeBusinessData(query.getWbsId(), query.getContractId(), formDataId);
+                        archiveTreeContractClient.writeBusinessData(query.getWbsId(), query.getContractId(), formDataId, query.getClassify());
                     } catch (Exception e) {
                     }
                 }

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -430,7 +430,7 @@ public class ArchiveTreeContractController extends BladeController {
     @ApiOperation(value = "同步业务数据", notes = "传入节点id")
     public R writeBusinessData(Long keyId, Long contractId, String formDataId) {
 
-        archiveTreeContractService.writeBusinessData(keyId,contractId,formDataId);
+        archiveTreeContractService.writeBusinessData(keyId,contractId,formDataId,1);
 
         return R.success("开始同步合同段,请耐心等待" );
     }

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java

@@ -103,8 +103,8 @@ public class ArchiveTreeContractImpl implements ArchiveTreeContractClient {
     }
 
     @Override
-    public Integer writeBusinessData(Long keyId, Long contractId, String formDataId) {
-        return archiveTreeContractService.writeBusinessData(keyId,contractId,formDataId);
+    public Integer writeBusinessData(Long keyId, Long contractId, String formDataId,Integer classify) {
+        return archiveTreeContractService.writeBusinessData(keyId,contractId,formDataId,classify);
     }
 
     @Override

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java

@@ -117,7 +117,7 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 
     void updateAllSonNodeIdsForArchiveAutoRule(ArchiveTreeContract archiveTreeContract);
 
-    Integer writeBusinessData(Long keyId, Long contractId, String formDataId);
+    Integer writeBusinessData(Long keyId, Long contractId, String formDataId,Integer classify);
 
     ArchiveTreeContract getMeasurementPeriodNode(Long contractId,
                                                         String periodName);

+ 48 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArTreeContractInitServiceImpl.java

@@ -319,7 +319,7 @@ public class ArTreeContractInitServiceImpl {
         for (ArchiveTreeContractVO2 ar : archiveTreeContractVO2s) {
             //关联质检资料
             if (ar.IsQualityAssociationNode()) {
-                List<ArchiveTreeContract> tmpList = getTreeContractFromWbs(tenantId, projectId, wbsId, ar);
+                List<ArchiveTreeContract> tmpList = getTreeContractFromWbs(tenantId, projectId, wbsId, ar,1);
                 addNodes.addAll(tmpList);
             }
         }
@@ -335,7 +335,7 @@ public class ArTreeContractInitServiceImpl {
      * @param tree
      * @return
      */
-    public List<ArchiveTreeContract> getContractExtNodes(String tenantId, Long projectId, ArchiveTreeContractVO2 tree) {
+    public List<ArchiveTreeContract>  getContractExtNodes(String tenantId, Long projectId, ArchiveTreeContractVO2 tree,Integer classify) {
 
         List<ArchiveTreeContract> addNodes = new ArrayList<>();
         List<ArchiveTreeContractVO2> archiveTreeContractVO2s = new ArrayList<>();
@@ -348,15 +348,28 @@ public class ArTreeContractInitServiceImpl {
         for (ArchiveTreeContractVO2 ar : archiveTreeContractVO2s) {
             //关联质检资料
             if (ar.IsQualityAssociationNode()) {
-                List<ArchiveTreeContract> tmpList = getTreeContractFromWbs(tenantId, projectId, wbsId, ar);
-                addNodes.addAll(tmpList);
+
+                //处理施工和监理
+                if (classify == 1 ){
+                    List<ArchiveTreeContract> tmpList = getTreeContractFromWbs(tenantId, projectId, wbsId, ar,classify);
+                    addNodes.addAll(tmpList);
+                }else {
+                    Long contractId = ar.getContractId();
+                    List<ContractRelationJlyz> list = contractInfoService.searchContractRelationInfo(contractId.toString());
+                    for (ContractRelationJlyz contractRelationJlyz: list) {
+                        ar.setContractId(contractRelationJlyz.getId());
+                        List<ArchiveTreeContract> tmpList = getTreeContractFromWbs(tenantId, projectId, wbsId, ar,classify);
+                        addNodes.addAll(tmpList);
+                    }
+                    ar.setContractId(contractId);
+                }
             }
         }
         return addNodes;
     }
 
-
-    public List<ArchiveTreeContract> getTreeContractFromWbs(String tenantId, Long projectId, Long wbsId, ArchiveTreeContractVO2 subTree) {
+    public List<ArchiveTreeContract> getTreeContractFromWbs(String tenantId, Long projectId, Long wbsId,
+                                                            ArchiveTreeContractVO2 subTree,Integer classify) {
         List<ArchiveTreeContract> archiveTreeContracts = new ArrayList<>();
 
         Long contractId = subTree.getContractId();
@@ -404,7 +417,9 @@ public class ArTreeContractInitServiceImpl {
             //修改配置
             if (wbsTreeVO2.getParentId() == 0) {
                 rootId = wbsTreeVO2.getId();
-                continue;
+                if (classify == 1) {
+                    continue;
+                }
             }
 
             if(wbsTreeVO2.getNodeType() == null){
@@ -441,12 +456,27 @@ public class ArTreeContractInitServiceImpl {
             archiveTree.setContractId(contractId);
             archiveTree.setTreeCode(contractId.toString());
             archiveTree.setId(oldNewMap.get(wbsTreeVO2.getId()));
+
             if (wbsTreeVO2.getParentId().equals(rootId)) {
-                archiveTree.setParentId(subTree.getId());
+                //施工直接在配置节点下
+                if (classify == 1){
+                    archiveTree.setParentId(subTree.getId());
+                }else {
+                    archiveTree.setParentId(oldNewMap.get(wbsTreeVO2.getParentId()));
+                }
+
             } else {
                 archiveTree.setParentId(oldNewMap.get(wbsTreeVO2.getParentId()));
             }
 
+            //监理需要一个合同段节点
+            if (classify == 2){
+                if (wbsTreeVO2.getParentId() == 0) {
+                    archiveTree.setParentId(subTree.getId());
+                }
+            }
+
+
 //            archiveTree.setId(wbsTreeVO2.getId());
 //            if (wbsTreeVO2.getParentId() == 0) {
 //                archiveTree.setParentId(subTree.getId());
@@ -463,8 +493,18 @@ public class ArTreeContractInitServiceImpl {
             }
 
             archiveTree.setNodeName(wbsTreeVO2.getTitle());
+            //监理的最高节点设置成
+            if (classify == 2){
+                if (wbsTreeVO2.getParentId() == 0) {
+                    ContractInfo contractInfo = contractInfoService.getById(contractId);
+                    if (contractInfo != null) {
+                        archiveTree.setNodeName(contractInfo.getContractName());
+                    }
+                }
+            }
 
             //设置关联
+            archiveTree.setClassify(classify);
             archiveTree.setExtType(1);
             archiveTree.setExtId(wbsTreeVO2.getId());
             archiveTree.setExtKeyId(wbsTreeVO2.getPKeyId());

+ 11 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -607,6 +607,12 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 					saveList.addAll(tmpSaveList);
 				}
 			}else {
+
+				Integer classify = 1;
+				if (ar.getTreeCode()!= null && ar.getTreeCode().equals("S")) {
+					classify = 2;
+				}
+
 				for (ArchiveTreeContractVO2 contractNode : ar.getChildren()){
 
 					List<ArchiveTreeContract> tmpSaveList = null;
@@ -631,7 +637,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 
 						//获取工序节点
 						List<ArchiveTreeContract> extSaveList = archiveTreeContractSync.getExtSaveList(dstNodeId,
-								contractNode,dstNode.getProjectId());
+								contractNode,dstNode.getProjectId(),classify);
 						saveList.addAll(extSaveList);
 
 
@@ -1005,11 +1011,12 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	 * @return
 	 */
 
-	public ArchiveTreeContract getWbsNodeFromWbsKeyId(Long contractId,Long pkId,Long attachId) {
+	public ArchiveTreeContract getWbsNodeFromWbsKeyId(Long contractId,Long pkId,Long attachId,Integer classify) {
 		List<ArchiveTreeContract> archiveTreeContracts =  baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
 				.eq(ArchiveTreeContract::getContractId, contractId)
 				.eq(ArchiveTreeContract::getIsDeleted, 0)
 				.eq(ArchiveTreeContract::getExtKeyId, pkId)
+				.eq(ArchiveTreeContract::getClassify, classify)
 				.eq(ArchiveTreeContract::getExtAttachId, attachId));
 		if (archiveTreeContracts == null || archiveTreeContracts.size() ==0) {
 			return null;
@@ -1050,7 +1057,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	 * @param contractId
 	 * @return
 	 */
-	public Integer writeBusinessData(Long keyId, Long contractId, String formDataId) {
+	public Integer writeBusinessData(Long keyId, Long contractId, String formDataId,Integer classify) {
 
 		WbsTreeContract wbsTreeContract = wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(keyId);
 
@@ -1077,7 +1084,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 			}
 
 			Long levelkeyId = getWbsKeyIdFromLayer(keyId,level);
-			ArchiveTreeContract node = getWbsNodeFromWbsKeyId(contractId,levelkeyId,attachId);
+			ArchiveTreeContract node = getWbsNodeFromWbsKeyId(contractId,levelkeyId,attachId,classify);
 			if (node!= null ) {
 
 				archiveFileClient.addOrUpdateArchiveFileBusinessData(node.getId(),keyId,contractId,formDataId);

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractSyncImpl.java

@@ -181,7 +181,7 @@ public class ArchiveTreeContractSyncImpl {
      * @param dstTrees
      * @return
      */
-    public List<ArchiveTreeContract> getExtSaveList(Long dstNodeId, ArchiveTreeContractVO2 dstTrees, Long projectId) {
+    public List<ArchiveTreeContract> getExtSaveList(Long dstNodeId, ArchiveTreeContractVO2 dstTrees, Long projectId,Integer classify) {
 
         ArchiveTreeContractVO2 dstTree = ForestNodeMergerEx.getSubTree(dstTrees, dstNodeId);
 
@@ -192,7 +192,7 @@ public class ArchiveTreeContractSyncImpl {
         //测试阶段,必须打开项目配置才能同步wbs节点
         if (archiveProjectConfig!= null && archiveProjectConfig.getFactorType().contains("6")) {
             //todo 等测试OK再打开
-            saveList =arTreeContractInitService.getContractExtNodes(AuthUtil.getTenantId(),projectId,dstTree);
+            saveList =arTreeContractInitService.getContractExtNodes(AuthUtil.getTenantId(),projectId,dstTree,classify);
         }
         return saveList;
     }