|
@@ -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;
|
|
|
}
|
|
|
|
|
|
}
|