|
@@ -647,6 +647,18 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
|
|
|
if (ar.getTreeCode()!= null && ar.getTreeCode().equals("S")) {
|
|
|
classify = 2;
|
|
|
}
|
|
|
+ if (ar.getChildren() == null || ar.getChildren().isEmpty()) {
|
|
|
+ ArchiveTreeVO2 tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree, ar.getFromId());
|
|
|
+ if (tmpSubTree != null) {
|
|
|
+ List<ArchiveTreeContract> tmpSaveList = archiveTreeContractSync.getNormalSaveListEx(tmpSubTree.getId(),
|
|
|
+ tmpSubTree,ar.getId(),ar);
|
|
|
+ saveList.addAll(tmpSaveList);
|
|
|
+ //获取工序节点
|
|
|
+ List<ArchiveTreeContract> extSaveList = archiveTreeContractSync.getExtSaveList(ar.getId(),
|
|
|
+ ar,dstNode.getProjectId(),classify);
|
|
|
+ saveList.addAll(extSaveList);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
for (ArchiveTreeContractVO2 contractNode : ar.getChildren()){
|
|
|
|
|
@@ -655,12 +667,24 @@ 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())) && !contractNode.getId().equals(dstNode.getId())) {
|
|
|
- tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree,ar.getFromId());
|
|
|
- dstNodeId = ar.getId();
|
|
|
- temp = ar;
|
|
|
+ ArchiveTreeContractVO2 tempDstTree = contractNode;
|
|
|
+ boolean flag = false;
|
|
|
+ if (dstNode.getParentId() == 0 || dstScopeTree.getId().equals(contractNode.getParentId()) ) {
|
|
|
+ if (contractNode.getValue() == null || contractNode.getValue() != 1L) {
|
|
|
+ tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree,ar.getFromId());
|
|
|
+ dstNodeId = ar.getId();
|
|
|
+ tempDstTree = ar;
|
|
|
+ if (tmpSubTree == null) {
|
|
|
+ tmpSubTree = srcTree;
|
|
|
+ tempDstTree = ForestNodeMergerEx.getSubTree(dstTree,dstNode.getId());
|
|
|
+ dstNodeId = dstNode.getId();
|
|
|
+ }
|
|
|
+ flag = true;
|
|
|
+ } else {
|
|
|
+ tmpSubTree = ForestNodeMergerEx.getSubTree(srcTree,ar.getFromId());
|
|
|
+ dstNodeId = contractNode.getId();
|
|
|
+ }
|
|
|
}
|
|
|
if (tmpSubTree == null) {
|
|
|
continue;
|
|
@@ -669,14 +693,16 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
|
|
|
//getNormalSaveList 接口除了同步新增节点,还会同步已有节点的属性。
|
|
|
//因为关联工序的位置是固定的,先不考虑新增一个关联工序节点,且一次同步完成情况
|
|
|
tmpSaveList = archiveTreeContractSync.getNormalSaveListEx(tmpSubTree.getId(),
|
|
|
- tmpSubTree,dstNodeId,temp);
|
|
|
+ tmpSubTree,dstNodeId,tempDstTree);
|
|
|
saveList.addAll(tmpSaveList);
|
|
|
|
|
|
//获取工序节点
|
|
|
List<ArchiveTreeContract> extSaveList = archiveTreeContractSync.getExtSaveList(dstNodeId,
|
|
|
- temp,dstNode.getProjectId(),classify);
|
|
|
+ tempDstTree,dstNode.getProjectId(),classify);
|
|
|
saveList.addAll(extSaveList);
|
|
|
-
|
|
|
+ if (flag) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
}
|