Ver Fonte

更新案卷

huangtf há 2 anos atrás
pai
commit
d143652f61

+ 5 - 0
blade-common/src/main/java/org/springblade/common/constant/ArchiveConstant.java

@@ -0,0 +1,5 @@
+package org.springblade.common.constant;
+
+public interface ArchiveConstant {
+    String APPLICATION_WEATHER_NAME = "blade-archive";
+}

+ 3 - 4
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/entity/ArchivesAuto.java

@@ -132,16 +132,15 @@ public class ArchivesAuto extends BaseEntity {
 	/**
 	* 案卷内文件数量
 	*/
-		private Integer fileN;
+	private Integer fileN;
 	private Integer pageN;
 	/**
 	* 统一里程信息
 	*/
-		private String mileage;
+	private String mileage;
 	private Integer fileType;
 	private Integer size;
-	private String procsort;
-	private String nodeSort;
+	private String treeSort;
 	private Integer isOpen;
 	private Integer ischeck;
 

+ 24 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/feign/ArchiveAutoClient.java

@@ -0,0 +1,24 @@
+package org.springblade.archive.feign;
+
+import org.springblade.archive.entity.ArchivesAuto;
+import org.springblade.archive.vo.ArchivesAutoVO;
+import org.springblade.common.constant.ArchiveConstant;
+import org.springblade.common.constant.EVisaConstant;
+import org.springblade.core.tool.api.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(value = ArchiveConstant.APPLICATION_WEATHER_NAME)
+public interface ArchiveAutoClient {
+    String API_PREFIX = "/api/ArchiveAuto";
+    /**
+     * 项目分配用户批量保存-项目合同分配人员
+     */
+    @PostMapping(API_PREFIX + "/saveListByNodes")
+    @Transactional(rollbackFor = Exception.class)
+    R saveArchiveAutoByNodes(@RequestBody List<ArchivesAuto> list);
+}

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

@@ -176,6 +176,9 @@ public class ArchiveTreeContract extends BaseEntity {
 	//权限编码
 	private String treeCode;
 
+	//树形排序
+	private String treeSort;
+
 
 
 	public ArchiveTreeContract() {

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

@@ -182,6 +182,11 @@ public class ArchiveTreeContractVO2 implements INode<ArchiveTreeContractVO2> {
 	 */
 	private Integer archiveAutoGroupSelect;
 
+	private Integer sort;
+
+	//树形排序
+	private String treeSort;
+
 	public String toString() {
 		return "TreeNode(parentId=" + this.getParentId()
 				+ ",ancestors" + this.getAncestors()
@@ -213,4 +218,13 @@ public class ArchiveTreeContractVO2 implements INode<ArchiveTreeContractVO2> {
 		}
 	}
 
+	public Integer sortNum(){
+		if (getSort() != null ) {
+			return getSort() + 100;
+		}
+		return 100;
+	}
+
+
+
 }

+ 26 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/feign/ArchiveAutoClientImpl.java

@@ -0,0 +1,26 @@
+package org.springblade.archive.feign;
+
+import lombok.AllArgsConstructor;
+import org.springblade.archive.entity.ArchivesAuto;
+import org.springblade.archive.service.IArchivesAutoService;
+import org.springblade.archive.vo.ArchivesAutoVO;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RestController
+@AllArgsConstructor
+public class ArchiveAutoClientImpl implements ArchiveAutoClient {
+
+    private IArchivesAutoService archivesAutoService;
+
+    @Override
+    public R saveArchiveAutoByNodes(@RequestBody List<ArchivesAuto> list){
+
+
+        return  R.status(archivesAutoService.saveBatch(list));
+    }
+}

+ 1 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -41,8 +41,7 @@
         <result column="mileage" property="mileage"/>
         <result column="fileType" property="fileType"/>
         <result column="size" property="size"/>
-        <result column="procsort" property="procsort"/>
-        <result column="node_sort" property="nodeSort"/>
+        <result column="tree_sort" property="nodeSort"/>
         <result column="isOpen" property="isOpen"/>
         <result column="ischeck" property="ischeck"/>
     </resultMap>

+ 1 - 0
blade-service/blade-manager/blade-manager.iml

@@ -215,6 +215,7 @@
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
     <orderEntry type="module" module-name="blade-user-api" />
     <orderEntry type="module" module-name="blade-business-api" />
+    <orderEntry type="module" module-name="blade-archive-api" />
     <orderEntry type="library" name="Maven: com.jfirer:baseutil:1.0" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />

+ 11 - 0
blade-service/blade-manager/pom.xml

@@ -50,6 +50,11 @@
             <artifactId>blade-business-api</artifactId>
             <version>${bladex.project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-archive-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
         <dependency>
             <groupId>com.jfirer</groupId>
             <artifactId>baseutil</artifactId>
@@ -144,6 +149,12 @@
             <version>20.4</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-archive-api</artifactId>
+            <version>2.9.1.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -29,6 +29,7 @@
         <result column="is_interface_node" property="isInterfaceNode"/>
         <result column="interface_type" property="interfaceType"/>
         <result column="sort" property="sort"/>
+        <result column="tree_sort" property="treeSort"/>
         <result column="remark" property="remark"/>
         <result column="project_type" property="projectType"/>
         <result column="storage_type" property="storageType"/>

+ 102 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArTreeContractInitServiceImpl.java

@@ -3,6 +3,8 @@ package org.springblade.manager.service.impl;
 import com.mixsmart.utils.StringUtils;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
+import org.springblade.archive.entity.ArchivesAuto;
+import org.springblade.archive.feign.ArchiveAutoClient;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.Func;
@@ -29,6 +31,8 @@ public class ArTreeContractInitServiceImpl {
 
     private final ProjectClient projectClient;
 
+    private final ArchiveAutoClient archiveAutoClient;
+
     /**
      *
      * @param tenantId
@@ -101,9 +105,6 @@ public class ArTreeContractInitServiceImpl {
         }
 
 
-        //设置祖先id
-        InitAncestors(archiveTreeContracts);
-
         return;
 
     }
@@ -224,7 +225,7 @@ public class ArTreeContractInitServiceImpl {
      *
      * @param archiveTreeContracts
      */
-    public void InitAncestors(List<ArchiveTreeContract> archiveTreeContracts) {
+    public void InitAncestorsAndTreeSort(List<ArchiveTreeContract> archiveTreeContracts) {
         List<ArchiveTreeContractVO2> archiveTreeContractVO2List = new ArrayList<>();
         Map<Long,ArchiveTreeContractVO2> vo2Map = new LinkedHashMap<>();
         for (ArchiveTreeContract archiveTreeContract:archiveTreeContracts) {
@@ -232,6 +233,7 @@ public class ArTreeContractInitServiceImpl {
             treeContractVO2.setId(archiveTreeContract.getId());
             treeContractVO2.setParentId(archiveTreeContract.getParentId());
             treeContractVO2.setTitle(archiveTreeContract.getNodeName());
+            treeContractVO2.setSort(archiveTreeContract.getSort());
             archiveTreeContractVO2List.add(treeContractVO2);
             vo2Map.put(treeContractVO2.getId(),treeContractVO2);
         }
@@ -240,10 +242,14 @@ public class ArTreeContractInitServiceImpl {
 
         InitAncestors(trees.get(0),"0");
 
+        InitTreeSort(trees.get(0), "");
+
         for (ArchiveTreeContract archiveTreeContract:archiveTreeContracts) {
             ArchiveTreeContractVO2 tmp = vo2Map.get(archiveTreeContract.getId());
             if (tmp != null ) {
                 archiveTreeContract.setAncestors(tmp.getAncestors());
+                archiveTreeContract.setTreeSort(tmp.getTreeSort());
+
             }
         }
     }
@@ -265,6 +271,22 @@ public class ArTreeContractInitServiceImpl {
         }
     }
 
+    /**
+     *
+     * @param tree
+     */
+    public void InitTreeSort(ArchiveTreeContractVO2 tree, String treeSort) {
+        String localTreeSort = treeSort + tree.sortNum() ;
+        tree.setTreeSort(localTreeSort);
+
+        List<ArchiveTreeContractVO2> childrens = tree.getChildren();
+        if (childrens!= null) {
+            for (ArchiveTreeContractVO2 child :childrens) {
+                InitTreeSort(child,localTreeSort);
+            }
+        }
+    }
+
 
     public ArchiveTreeContractVO2 getTree(List<ArchiveTreeContract> archiveTreeContracts) {
         List<ArchiveTreeContractVO2> archiveTreeContractVO2List = new ArrayList<>();
@@ -393,6 +415,7 @@ public class ArTreeContractInitServiceImpl {
             //设置关联
             archiveTree.setExtType(1);
             archiveTree.setExtId(wbsTreeVO2.getId());
+            archiveTree.setSort(wbsTreeVO2.getSort());
             archiveTree.setExtAttachId(subTree.getId());
             archiveTree.setDisplayHierarchy(level.toString());
             archiveTree.setIsDeleted(0);
@@ -409,7 +432,18 @@ public class ArTreeContractInitServiceImpl {
         return archiveTreeContracts;
     }
 
-    void syncArchiveAutoList(List<ArchiveTreeContract> archiveTreeContracts) {
+    void syncArchiveAutoList(List<ArchiveTreeContract> archiveTreeContracts,List<ContractInfo> contracts) {
+        List<ArchivesAuto> archivesAutos = new ArrayList<>();
+
+        Map<Long,ContractInfo> contractMap = new LinkedHashMap<>();
+
+        for (ContractInfo contractInfo: contracts) {
+            if (contractInfo.getContractType() == 1 && contractMap.get(0L) == null) {
+                contractMap.put(0L,contractInfo);
+            }
+
+            contractMap.put(contractInfo.getId(),contractInfo);
+        }
 
 
         List<ArchiveTreeContract> storageList = archiveTreeContracts.stream()
@@ -417,7 +451,70 @@ public class ArTreeContractInitServiceImpl {
 
         for (ArchiveTreeContract storage: storageList) {
 
+
+            ArchivesAuto archivesAuto = new ArchivesAuto();
+            InitArchivesAuto(archivesAuto,storage,contractMap);
+            archivesAutos.add(archivesAuto);
+        }
+        archiveAutoClient.saveArchiveAutoByNodes(archivesAutos);
+    }
+
+    /**
+     *
+     * @param archivesAuto
+     * @param archiveTreeContract
+     */
+    public void InitArchivesAuto(ArchivesAuto archivesAuto,ArchiveTreeContract archiveTreeContract,Map<Long,ContractInfo> contractMap) {
+
+
+        archivesAuto.setName(archiveTreeContract.getNodeName());
+        archivesAuto.setNodeId(archiveTreeContract.getId());
+        archivesAuto.setProjectId(archiveTreeContract.getProjectId());
+        archivesAuto.setContractId(archiveTreeContract.getContractId());
+
+
+        archivesAuto.setUnit(getUnit(archiveTreeContract,contractMap));
+
+        //要设置对
+        archivesAuto.setTreeSort(archiveTreeContract.getTreeSort());
+
+        archivesAuto.setIsArchive(0);
+        archivesAuto.setIsDeleted(0);
+    }
+
+    /**
+     * 获取节点对应的单位
+     * @param archiveTreeContract
+     * @param contractInfo
+     * @return
+     */
+    public String getUnit(ArchiveTreeContract archiveTreeContract,Map<Long,ContractInfo> contractMap){
+
+        ContractInfo contractInfo = contractMap.get(archiveTreeContract.getContractId());
+        if (contractInfo == null ) {
+            contractInfo = contractMap.get(0L);
+        }
+
+        String unit = "";
+        if (StringUtils.isEmpty(archiveTreeContract.getTreeCode())) {
+            unit = contractInfo.getContractorUnitName();
+        }else {
+            if (archiveTreeContract.getTreeCode().equals("C")) {
+                unit = contractInfo.getConstructionUnitName();
+            }else if (archiveTreeContract.getTreeCode().equals("S")) {
+                unit = contractInfo.getSupervisionUnitName();
+            }else {
+                if (contractInfo.getContractType()== 2) {
+                    unit = contractInfo.getSupervisionUnitName();
+                }else if (contractInfo.getContractType() == 1) {
+                    unit = contractInfo.getConstructionUnitName();
+                }else {
+                    unit = contractInfo.getContractorUnitName();
+                }
+            }
+
         }
+        return unit;
     }
 
 }

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

@@ -109,11 +109,15 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 
 		List<ArchiveTreeContract> addNodes = arTreeContractInitService.getContractProcExtNodes(tenantId,projectId,wbsId,newTree);
 		archiveTreeContracts.addAll(addNodes);
+
+		//初始化祖先节点和排序
+		arTreeContractInitService.InitAncestorsAndTreeSort(archiveTreeContracts);
 		//todo 同步质检资料动态节点,处理文件提名
 
 		//todo 同步立卷规则
 
 		//todo 同步划分树节点到案卷列表
+		arTreeContractInitService.syncArchiveAutoList(archiveTreeContracts,contractInfoVOS);
 
 		this.saveBatch(archiveTreeContracts);
 		return true;