|
@@ -147,7 +147,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
|
|
archiveTreeContracts.addAll(addNodes);
|
|
archiveTreeContracts.addAll(addNodes);
|
|
|
|
|
|
//初始化祖先节点和排序
|
|
//初始化祖先节点和排序
|
|
- arTreeContractInitService.InitAncestorsAndTreeSort(archiveTreeContracts);
|
|
|
|
|
|
+ arTreeContractInitService.InitTreeSort(archiveTreeContracts);
|
|
//todo 同步质检资料动态节点,处理文件提名
|
|
//todo 同步质检资料动态节点,处理文件提名
|
|
|
|
|
|
//todo 同步立卷规则
|
|
//todo 同步立卷规则
|
|
@@ -384,6 +384,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //如果在合同段节点上点同步,它的fromId是没有的,需要取它的上级节点施工或者监理总节点来同步
|
|
ArchiveTree srcNode = null;
|
|
ArchiveTree srcNode = null;
|
|
if (dstNode.isContractRoot() && dstNode.getFromId() == null ) {
|
|
if (dstNode.isContractRoot() && dstNode.getFromId() == null ) {
|
|
ArchiveTreeContract parentNode = this.getById(dstNode.getParentId());
|
|
ArchiveTreeContract parentNode = this.getById(dstNode.getParentId());
|
|
@@ -398,165 +399,223 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //取出
|
|
List<ArchiveTreeVO2> srcTrees = archiveTreeService.tree2(AuthUtil.getTenantId(), dstNode.getProjectId(),
|
|
List<ArchiveTreeVO2> srcTrees = archiveTreeService.tree2(AuthUtil.getTenantId(), dstNode.getProjectId(),
|
|
null, null,null,false);
|
|
null, null,null,false);
|
|
|
|
+ ArchiveTreeVO2 srcTree = srcTrees.get(0);
|
|
|
|
+ if (srcTree == null) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ //先更新所有节点属性
|
|
|
|
+// ArchiveTreeVO2 subTree = ForestNodeMergerEx.getSubTree(srcTree,srcNode.getId());
|
|
|
|
+// UpdateByArchiveTree(dstNode.getProjectId(),subTree);
|
|
|
|
+
|
|
|
|
+
|
|
List<ArchiveTreeContractVO2> dstTrees = this.tree2Root(AuthUtil.getTenantId(),null,null,dstNode.getProjectId(),null);
|
|
List<ArchiveTreeContractVO2> dstTrees = this.tree2Root(AuthUtil.getTenantId(),null,null,dstNode.getProjectId(),null);
|
|
List<ArchiveTreeContract> saveList = new ArrayList<>();
|
|
List<ArchiveTreeContract> saveList = new ArrayList<>();
|
|
|
|
+ List<ArchiveTreeContract> upList = new ArrayList<>();
|
|
|
|
+ List<ArchiveTreeContract> saveContractList = new ArrayList<>();
|
|
ArchiveTreeContractVO2 dstTree = dstTrees.get(0);
|
|
ArchiveTreeContractVO2 dstTree = dstTrees.get(0);
|
|
- ArchiveTreeVO2 srcTree = srcTrees.get(0);
|
|
|
|
- if (dstTree == null || srcTree == null) {
|
|
|
|
|
|
+ if (dstTree == null ) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
List<ContractInfo> contractInfos = contractInfoService.selectContractInfoPageByPid(dstNode.getProjectId().toString());
|
|
List<ContractInfo> contractInfos = contractInfoService.selectContractInfoPageByPid(dstNode.getProjectId().toString());
|
|
- Map<Long,ContractInfo> contractMap = new LinkedHashMap<>();
|
|
|
|
-
|
|
|
|
- ProjectInfo projectInfo = projectInfoService.getOne(dstNode.getProjectId());
|
|
|
|
- Long wbsId = projectInfo.getReferenceWbsTemplateId();
|
|
|
|
-
|
|
|
|
|
|
|
|
boolean bHasContract = true;
|
|
boolean bHasContract = true;
|
|
if (contractInfos == null || contractInfos.size() == 0) {
|
|
if (contractInfos == null || contractInfos.size() == 0) {
|
|
bHasContract = false;
|
|
bHasContract = false;
|
|
}
|
|
}
|
|
|
|
|
|
- //预处理
|
|
|
|
|
|
+ //看看有没有合同段要复制
|
|
if (bHasContract) {
|
|
if (bHasContract) {
|
|
|
|
+ AddNewContract(contractInfos,srcTree,dstTree,dstNode,saveList);
|
|
|
|
+ }
|
|
|
|
|
|
- for (ContractInfo contractInfo: contractInfos) {
|
|
|
|
- contractInfo.setStatus(0);
|
|
|
|
- contractMap.put(contractInfo.getId(),contractInfo);
|
|
|
|
- }
|
|
|
|
|
|
+ //如果有新的合同段,合并新增代码到
|
|
|
|
+ if (saveList.size() > 0) {
|
|
|
|
+ archiveTreeContractSync.mergerToTree(dstTree,saveList,null);
|
|
|
|
+ }
|
|
|
|
|
|
- dstTree.setValue(1L);
|
|
|
|
- for (ArchiveTreeContractVO2 ar: dstTree.getChildren()) {
|
|
|
|
- //施工和监理
|
|
|
|
- ar.setValue(1L);
|
|
|
|
- if (ar.getTreeCode()!= null && (
|
|
|
|
- ar.getTreeCode().equals("C") || ar.getTreeCode().equals("S"))) {
|
|
|
|
|
|
+ //没有合同段直接同步
|
|
|
|
+ if (!bHasContract) {
|
|
|
|
+ saveList = getNormalSaveList(srcNode.getId(),
|
|
|
|
+ srcTrees.get(0),dstNode.getId(),dstTrees.get(0));
|
|
|
|
+ }else {
|
|
|
|
|
|
- if (ar.getChildren() == null ) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
|
|
+ //同步业主,监理各个合同段,施工各个合同段
|
|
|
|
+ syncAllContracts(srcTree,dstTree,srcNode,dstNode,saveContractList);
|
|
|
|
+ }
|
|
|
|
|
|
- //处理合同节点
|
|
|
|
- int contractNum = 0;
|
|
|
|
- for (ArchiveTreeContractVO2 contractNode : ar.getChildren()) {
|
|
|
|
- if (contractNode.isContractRoot()){
|
|
|
|
- //需要删除
|
|
|
|
- contractNum++;
|
|
|
|
|
|
+ //更新排序,把排序,自动组卷这种变化,刷新到新增节点和修改节点上
|
|
|
|
+ archiveTreeContractSync.InitTreeSort(dstTree,saveContractList,upList);
|
|
|
|
|
|
- contractNode.setValue(1L);
|
|
|
|
|
|
+ saveList.addAll(saveContractList);
|
|
|
|
+ //同步生成案卷
|
|
|
|
+ arTreeContractInitService.syncArchiveAutoList(saveList,contractInfos);
|
|
|
|
|
|
- //设置哪个合同已经设置了。
|
|
|
|
- ContractInfo c = contractMap.get(Long.parseLong(contractNode.getTreeCode()));
|
|
|
|
- if (c!= null) {
|
|
|
|
- c.setStatus(1);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ this.saveBatch(saveList);
|
|
|
|
+ this.updateBatchById(upList);
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
|
|
- if (contractNum == 0) {
|
|
|
|
- //删除树的子节点
|
|
|
|
- deleteTreeChildren(ar);
|
|
|
|
- }
|
|
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * @param srcNodeId
|
|
|
|
+ * @param srcTree
|
|
|
|
+ * @param dstNodeId
|
|
|
|
+ * @param dstTree
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public List<ArchiveTreeContract> getNormalSaveList(Long srcNodeId,ArchiveTreeVO2 srcTree,Long dstNodeId,ArchiveTreeContractVO2 dstTree){
|
|
|
|
|
|
- for(Map.Entry<Long,ContractInfo> entry : contractMap.entrySet()){
|
|
|
|
- ContractInfo contractInfo = entry.getValue();
|
|
|
|
-
|
|
|
|
- if (contractInfo.getStatus() == 0) {
|
|
|
|
- if (ar.getTreeCode().equals("C") && contractInfo.getContractType() == 1) {
|
|
|
|
- //复制施工
|
|
|
|
- List<ArchiveTreeContract> tmpSaveList =
|
|
|
|
- archiveTreeContractSync.getContractSaveList(srcTree,ar,contractInfo,dstNode);
|
|
|
|
- saveList.addAll(tmpSaveList);
|
|
|
|
- }
|
|
|
|
- if (ar.getTreeCode().equals("S") && contractInfo.getContractType() == 2) {
|
|
|
|
- //复制监理
|
|
|
|
- List<ArchiveTreeContract> tmpSaveList =
|
|
|
|
- archiveTreeContractSync.getContractSaveList(srcTree,ar,contractInfo,dstNode);
|
|
|
|
- saveList.addAll(tmpSaveList);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ List<ArchiveTreeContract> saveList = archiveTreeContractSync.getNormalSaveList(srcNodeId,srcTree,dstNodeId,dstTree);
|
|
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //设置修改标识
|
|
|
|
+ ModifyBySrcTree(srcNodeId,srcTree,dstNodeId,dstTree);
|
|
|
|
+
|
|
|
|
+ return saveList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 新增合同段时,要复制一份合同段的分支出来
|
|
|
|
+ * @param contractInfos
|
|
|
|
+ * @param srcTree
|
|
|
|
+ * @param dstTree
|
|
|
|
+ * @param dstNode
|
|
|
|
+ * @param saveList
|
|
|
|
+ */
|
|
|
|
+ void AddNewContract(List<ContractInfo> contractInfos,ArchiveTreeVO2 srcTree,ArchiveTreeContractVO2 dstTree,
|
|
|
|
+ ArchiveTreeContract dstNode,List<ArchiveTreeContract> saveList){
|
|
|
|
+ Map<Long,ContractInfo> contractMap = new LinkedHashMap<>();
|
|
|
|
+
|
|
|
|
+ for (ContractInfo contractInfo: contractInfos) {
|
|
|
|
+ contractInfo.setStatus(0);
|
|
|
|
+ contractMap.put(contractInfo.getId(),contractInfo);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ dstTree.setValue(1L);
|
|
|
|
+ for (ArchiveTreeContractVO2 ar: dstTree.getChildren()) {
|
|
|
|
+ //施工和监理
|
|
|
|
+ ar.setValue(1L);
|
|
|
|
+ if (ar.getTreeCode()!= null && (
|
|
|
|
+ ar.getTreeCode().equals("C") || ar.getTreeCode().equals("S"))) {
|
|
|
|
|
|
- if (!bHasContract) {
|
|
|
|
- saveList = archiveTreeContractSync.getNormalSaveList(srcNode.getId(),
|
|
|
|
- srcTrees.get(0),dstNode.getId(),dstTrees.get(0));
|
|
|
|
- }else {
|
|
|
|
|
|
+ if (ar.getChildren() == null ) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
|
|
- ArchiveTreeContractVO2 dstScopeTree = ForestNodeMergerEx.getSubTreeByValue(dstTree,dstNode.getId(),1L);
|
|
|
|
- for (ArchiveTreeContractVO2 ar: dstTree.getChildren()) {
|
|
|
|
- if (StringUtils.isEmpty(ar.getTreeCode())) {
|
|
|
|
- //同步
|
|
|
|
- if (dstNode.getParentId() == 0 || dstScopeTree.getId().equals(ar.getId()) ) {
|
|
|
|
- //同步
|
|
|
|
- List<ArchiveTreeContract> tmpSaveList = null;
|
|
|
|
- if (dstNode.getParentId() == 0) {
|
|
|
|
- ArchiveTreeVO2 tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree,ar.getFromId());
|
|
|
|
- if (tmpSubTree == null) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- tmpSaveList = archiveTreeContractSync.getNormalSaveList(tmpSubTree.getId(),
|
|
|
|
- tmpSubTree,ar.getId(),ar);
|
|
|
|
- }else {
|
|
|
|
- tmpSaveList = archiveTreeContractSync.getNormalSaveList(srcNode.getId(),
|
|
|
|
- srcTree,dstNode.getId(),ar);
|
|
|
|
- }
|
|
|
|
|
|
+ //处理合同节点
|
|
|
|
+ int contractNum = 0;
|
|
|
|
+ for (ArchiveTreeContractVO2 contractNode : ar.getChildren()) {
|
|
|
|
+ if (contractNode.isContractRoot()){
|
|
|
|
+ //需要删除
|
|
|
|
+ contractNum++;
|
|
|
|
|
|
|
|
+ contractNode.setValue(1L);
|
|
|
|
|
|
- saveList.addAll(tmpSaveList);
|
|
|
|
|
|
+ //设置哪个合同已经设置了。
|
|
|
|
+ ContractInfo c = contractMap.get(Long.parseLong(contractNode.getTreeCode()));
|
|
|
|
+ if (c!= null) {
|
|
|
|
+ c.setStatus(1);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }else {
|
|
|
|
- for (ArchiveTreeContractVO2 contractNode : ar.getChildren()){
|
|
|
|
-
|
|
|
|
- List<ArchiveTreeContract> tmpSaveList = null;
|
|
|
|
- if (dstNode.getParentId() == 0 || dstScopeTree.getId().equals(contractNode.getId())
|
|
|
|
- || dstScopeTree.getId().equals(contractNode.getParentId())) {
|
|
|
|
-
|
|
|
|
- ArchiveTreeVO2 tmpSubTree = srcTree;
|
|
|
|
- Long dstNodeId = dstNode.getId();
|
|
|
|
- if (dstNode.getParentId() == 0 || dstScopeTree.getId().equals(contractNode.getParentId()) ) {
|
|
|
|
- tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree,ar.getFromId());
|
|
|
|
- dstNodeId = contractNode.getId();
|
|
|
|
- }
|
|
|
|
- if (tmpSubTree == null) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- tmpSaveList = archiveTreeContractSync.getNormalSaveList(srcNode.getId(),
|
|
|
|
- tmpSubTree,dstNodeId,contractNode);
|
|
|
|
- saveList.addAll(tmpSaveList);
|
|
|
|
-
|
|
|
|
- //todo 同步wbs等扩展节点
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- List<ArchiveTreeContract> extSaveList = archiveTreeContractSync.getExtSaveList(dstNodeId,
|
|
|
|
- contractNode,dstNode.getProjectId());
|
|
|
|
- saveList.addAll(extSaveList);
|
|
|
|
|
|
+ if (contractNum == 0) {
|
|
|
|
+ //删除树的子节点
|
|
|
|
+ deleteTreeChildren(ar);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ for(Map.Entry<Long,ContractInfo> entry : contractMap.entrySet()){
|
|
|
|
+ ContractInfo contractInfo = entry.getValue();
|
|
|
|
|
|
|
|
+ if (contractInfo.getStatus() == 0) {
|
|
|
|
+ if (ar.getTreeCode().equals("C") && contractInfo.getContractType() == 1) {
|
|
|
|
+ //复制施工
|
|
|
|
+ List<ArchiveTreeContract> tmpSaveList =
|
|
|
|
+ archiveTreeContractSync.getContractSaveList(srcTree,ar,contractInfo,dstNode);
|
|
|
|
+ saveList.addAll(tmpSaveList);
|
|
|
|
+ }
|
|
|
|
+ if (ar.getTreeCode().equals("S") && contractInfo.getContractType() == 2) {
|
|
|
|
+ //复制监理
|
|
|
|
+ List<ArchiveTreeContract> tmpSaveList =
|
|
|
|
+ archiveTreeContractSync.getContractSaveList(srcTree,ar,contractInfo,dstNode);
|
|
|
|
+ saveList.addAll(tmpSaveList);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
- //不是新增的,更新属性
|
|
|
|
- ArchiveTreeVO2 subTree = ForestNodeMergerEx.getSubTree(srcTree,srcNode.getId());
|
|
|
|
- UpdateByArchiveTree(dstNode.getProjectId(),subTree);
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 同步业主,监理各合同段,施工合同段,新增的普通节点,同步wbs节点
|
|
|
|
+ * @param srcTree
|
|
|
|
+ * @param dstTree
|
|
|
|
+ * @param srcNode
|
|
|
|
+ * @param dstNode
|
|
|
|
+ * @param saveList
|
|
|
|
+ */
|
|
|
|
+ void syncAllContracts(ArchiveTreeVO2 srcTree,ArchiveTreeContractVO2 dstTree,ArchiveTree srcNode,
|
|
|
|
+ ArchiveTreeContract dstNode,List<ArchiveTreeContract> saveList){
|
|
|
|
+
|
|
|
|
+ //获取范围看是在业主,监理各合同段,施工合同段,
|
|
|
|
+ ArchiveTreeContractVO2 dstScopeTree = ForestNodeMergerEx.getSubTreeByValue(dstTree,dstNode.getId(),1L);
|
|
|
|
+ for (ArchiveTreeContractVO2 ar: dstTree.getChildren()) {
|
|
|
|
+ if (StringUtils.isEmpty(ar.getTreeCode())) {
|
|
|
|
+ //同步
|
|
|
|
+ if (dstNode.getParentId() == 0 || dstScopeTree.getId().equals(ar.getId()) ) {
|
|
|
|
+ //同步
|
|
|
|
+ List<ArchiveTreeContract> tmpSaveList = null;
|
|
|
|
+ if (dstNode.getParentId() == 0) {
|
|
|
|
+ ArchiveTreeVO2 tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree,ar.getFromId());
|
|
|
|
+ if (tmpSubTree == null) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ tmpSaveList = getNormalSaveList(tmpSubTree.getId(),
|
|
|
|
+ tmpSubTree,ar.getId(),ar);
|
|
|
|
+ }else {
|
|
|
|
+ tmpSaveList = getNormalSaveList(srcNode.getId(),
|
|
|
|
+ srcTree,dstNode.getId(),ar);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ saveList.addAll(tmpSaveList);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ for (ArchiveTreeContractVO2 contractNode : ar.getChildren()){
|
|
|
|
+
|
|
|
|
+ List<ArchiveTreeContract> tmpSaveList = null;
|
|
|
|
+ if (dstNode.getParentId() == 0 || dstScopeTree.getId().equals(contractNode.getId())
|
|
|
|
+ || dstScopeTree.getId().equals(contractNode.getParentId())) {
|
|
|
|
+
|
|
|
|
+ ArchiveTreeVO2 tmpSubTree = srcTree;
|
|
|
|
+ Long dstNodeId = dstNode.getId();
|
|
|
|
+ if (dstNode.getParentId() == 0 || dstScopeTree.getId().equals(contractNode.getParentId()) ) {
|
|
|
|
+ tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree,ar.getFromId());
|
|
|
|
+ dstNodeId = contractNode.getId();
|
|
|
|
+ }
|
|
|
|
+ if (tmpSubTree == null) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
|
|
- //更新排序
|
|
|
|
- archiveTreeContractSync.InitTreeSort(dstTree,saveList);
|
|
|
|
|
|
+ //getNormalSaveList 接口除了同步新增节点,还会同步已有节点的属性。
|
|
|
|
+ //因为关联工序的位置是固定的,先不考虑新增一个关联工序节点,且一次同步完成情况
|
|
|
|
+ tmpSaveList = getNormalSaveList(srcNode.getId(),
|
|
|
|
+ tmpSubTree,dstNodeId,contractNode);
|
|
|
|
+ saveList.addAll(tmpSaveList);
|
|
|
|
|
|
- //同步生成案卷
|
|
|
|
- arTreeContractInitService.syncArchiveAutoList(saveList,contractInfos);
|
|
|
|
|
|
+ //获取工序节点
|
|
|
|
+ List<ArchiveTreeContract> extSaveList = archiveTreeContractSync.getExtSaveList(dstNodeId,
|
|
|
|
+ contractNode,dstNode.getProjectId());
|
|
|
|
+ saveList.addAll(extSaveList);
|
|
|
|
|
|
- this.saveBatch(saveList);
|
|
|
|
- return true;
|
|
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -657,6 +716,74 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * @param srcTree
|
|
|
|
+ * @param dstTree
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public boolean ModifyBySrcTree(Long srcNodeId,ArchiveTreeVO2 srcTrees,Long dstNodeId,ArchiveTreeContractVO2 dstTrees){
|
|
|
|
+
|
|
|
|
+ List<ArchiveTreeVO2> archiveTreeVO2List = new ArrayList<>();
|
|
|
|
+ List<ArchiveTreeContractVO2> archiveTreeContractVO2s = new ArrayList<>();
|
|
|
|
+ //取出指定范围
|
|
|
|
+ ArchiveTreeVO2 srcTree = ForestNodeMergerEx.getSubTree(srcTrees,srcNodeId);
|
|
|
|
+ ArchiveTreeContractVO2 dstTree = ForestNodeMergerEx.getSubTree(dstTrees,dstNodeId);
|
|
|
|
+
|
|
|
|
+ //取出链表
|
|
|
|
+ ForestNodeMergerEx.getTreeList(srcTree,archiveTreeVO2List);
|
|
|
|
+ ForestNodeMergerEx.getTreeList(dstTree,archiveTreeContractVO2s);
|
|
|
|
+
|
|
|
|
+ Map<Long, ArchiveTreeVO2> map = new LinkedHashMap<>();
|
|
|
|
+ for (ArchiveTreeVO2 ar : archiveTreeVO2List) {
|
|
|
|
+ map.put(ar.getId(),ar);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (ArchiveTreeContractVO2 ar : archiveTreeContractVO2s) {
|
|
|
|
+ ArchiveTreeVO2 archiveTreeVO2 = map.get(ar.getFromId());
|
|
|
|
+ if (archiveTreeVO2!= null) {
|
|
|
|
+ ar.sync(archiveTreeVO2);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * @param dstTree
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public boolean UpdateByArchiveTreeContractVO2(ArchiveTreeContractVO2 dstTree){
|
|
|
|
+
|
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
|
+ List<ArchiveTreeContractVO2> archiveTreeContractVO2s = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ ForestNodeMergerEx.getTreeList(dstTree,archiveTreeContractVO2s);
|
|
|
|
+ Map<Long, ArchiveTreeContractVO2> map = new LinkedHashMap<>();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ for (ArchiveTreeContractVO2 ar : archiveTreeContractVO2s) {
|
|
|
|
+ if (ar.getFlag() == 1) {
|
|
|
|
+ ids.add(ar.getId());
|
|
|
|
+ map.put(ar.getId(),ar);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<ArchiveTreeContract> archiveTreeContracts = baseMapper.selectBatchIds(ids);
|
|
|
|
+
|
|
|
|
+ List<ArchiveTreeContract> upList = new ArrayList<>();
|
|
|
|
+ for (ArchiveTreeContract archiveTreeContract : archiveTreeContracts) {
|
|
|
|
+ ArchiveTreeContractVO2 treeContractVO2 = map.get(archiveTreeContract.getId());
|
|
|
|
+ if (treeContractVO2!= null) {
|
|
|
|
+ archiveTreeContract.sync(treeContractVO2);
|
|
|
|
+ upList.add(archiveTreeContract);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ this.saveOrUpdateBatch(upList);
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 递归设置
|
|
* 递归设置
|
|
* @param archiveTreeContracts
|
|
* @param archiveTreeContracts
|