Jelajahi Sumber

档案wbs树同步

lvy 3 minggu lalu
induk
melakukan
adf02f4404

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

@@ -656,10 +656,12 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 							|| dstScopeTree.getId().equals(contractNode.getParentId())) {
 
 						ArchiveTreeVO2 tmpSubTree = srcTree;
+						ArchiveTreeContractVO2 temp = contractNode;
 						Long dstNodeId = dstNode.getId();
-						if (dstNode.getParentId() == 0 ||  dstScopeTree.getId().equals(contractNode.getParentId()) ) {
+						if ((dstNode.getParentId() == 0 ||  dstScopeTree.getId().equals(contractNode.getParentId())) && !contractNode.getId().equals(dstNode.getId())) {
 							tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree,ar.getFromId());
-							dstNodeId = contractNode.getId();
+							dstNodeId = ar.getId();
+							temp = ar;
 						}
 						if (tmpSubTree == null) {
 							continue;
@@ -668,12 +670,12 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 						//getNormalSaveList 接口除了同步新增节点,还会同步已有节点的属性。
 						//因为关联工序的位置是固定的,先不考虑新增一个关联工序节点,且一次同步完成情况
 						tmpSaveList = archiveTreeContractSync.getNormalSaveListEx(tmpSubTree.getId(),
-								tmpSubTree,dstNodeId,contractNode);
+								tmpSubTree,dstNodeId,temp);
 						saveList.addAll(tmpSaveList);
 
 						//获取工序节点
 						List<ArchiveTreeContract> extSaveList = archiveTreeContractSync.getExtSaveList(dstNodeId,
-								contractNode,dstNode.getProjectId(),classify);
+								temp,dstNode.getProjectId(),classify);
 						saveList.addAll(extSaveList);