|
@@ -644,9 +644,7 @@ public class WbsSynchronousServiceImpl {
|
|
|
.eq(WbsTreeContract::getContractId, contractInfo.getId())
|
|
|
.eq(WbsTreeContract::getIsDeleted, 0)
|
|
|
.apply("FIND_IN_SET({0},ancestors_p_id)", wbsTreeContract.getPKeyId());
|
|
|
- if(CollectionUtil.isNotEmpty(formList)){
|
|
|
- wrapperContract.in(WbsTreeContract::getIsTypePrivatePid, formList);
|
|
|
- }
|
|
|
+ wrapperContract.apply("FIND_IN_SET({0},ancestors_p_id)", wbsTreeContract.getPKeyId());
|
|
|
|
|
|
//当前合同的子节点数据
|
|
|
List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(wrapperContract);
|
|
@@ -680,12 +678,20 @@ public class WbsSynchronousServiceImpl {
|
|
|
//需要新增的表单
|
|
|
List<WbsTreePrivate> addPrivateNodes = wbsTreePrivates.stream().filter(f -> !typePrivateIds.contains(f.getPKeyId())).collect(Collectors.toList());
|
|
|
|
|
|
+ //如果没有选中 则默认同步所有
|
|
|
+ if (CollectionUtil.isNotEmpty(formList)) {
|
|
|
+ //二次筛选 只保留任务选中的表单 但可能新增的数据包含新节点
|
|
|
+ addPrivateNodes = addPrivateNodes.stream().filter(f -> formList.contains(f.getPKeyId())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
|
|
|
//筛选出需要更新的节点 同时做数据隔离
|
|
|
List<WbsTreeContract> editContractNodes = new ArrayList<>();
|
|
|
for (WbsTreePrivate templateNode : wbsTreePrivates) {
|
|
|
//更新只跟新表单
|
|
|
for (WbsTreeContract editContractNode : wbsTreeContracts) {
|
|
|
+ if (CollectionUtil.isNotEmpty(formList) && !formList.contains(editContractNode.getPKeyId())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
// 判断模板表与项目表 html是否一致
|
|
@@ -718,7 +724,7 @@ public class WbsSynchronousServiceImpl {
|
|
|
if (i == 0) {
|
|
|
throw new ServiceException(editContractNode.getNodeName() + "( " + wbsTreeContract.getPKeyId() + ")--表单未查到填报信息");
|
|
|
}
|
|
|
- if (contractRanges.contains(WbsSyncTypeEnum.ALREADY_FILLED_IN_NOT_REPORTED.code) && (submit == null || submit == 0)) {
|
|
|
+ if (contractRanges.contains(WbsSyncTypeEnum.ALREADY_FILLED_IN_NOT_REPORTED.code)) {
|
|
|
//已填报-未上报 102
|
|
|
isSync = true;
|
|
|
} else {
|
|
@@ -772,15 +778,26 @@ public class WbsSynchronousServiceImpl {
|
|
|
}
|
|
|
|
|
|
//手动选中的表单 进行筛选
|
|
|
- if (collect.contains(2) || collect.contains(3) || collect.contains(4) || collect.contains(5) || collect.contains(6) || collect.contains(7)) {
|
|
|
- if (isSync) {
|
|
|
- editContractNodes.add(editContractNode);
|
|
|
- }
|
|
|
- //记录历史html
|
|
|
- if (isOldHtml) {
|
|
|
- oldHtml.add(editContractNode);
|
|
|
+ if (CollectionUtil.isNotEmpty(formList)) {
|
|
|
+ if (formList.contains(templateNode.getPKeyId())) {
|
|
|
+ if (collect.contains(2) || collect.contains(3) || collect.contains(4) || collect.contains(5) || collect.contains(6) || collect.contains(7)) {
|
|
|
+ if (isSync) {
|
|
|
+ editContractNodes.add(editContractNode);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ if (collect.contains(2) || collect.contains(3) || collect.contains(4) || collect.contains(5) || collect.contains(6) || collect.contains(7)) {
|
|
|
+ if (isSync) {
|
|
|
+ editContractNodes.add(editContractNode);
|
|
|
+ }
|
|
|
+ //记录历史html
|
|
|
+ if (isOldHtml) {
|
|
|
+ oldHtml.add(editContractNode);
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
//找到了某个选中节点下与项目节点想同的节点了 提前结束循环,节省资源
|
|
|
break;
|
|
@@ -788,6 +805,10 @@ public class WbsSynchronousServiceImpl {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //修改数据二次筛选 只保留任务选中的表单 但可能新增的数据包含新节点
|
|
|
+ if (CollectionUtil.isNotEmpty(formList)) {
|
|
|
+ editContractNodes = editContractNodes.stream().filter(f -> formList.contains(f.getPKeyId())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
|
|
|
//合同段新增节点
|
|
|
List<WbsTreeContract> addContractNode = null;
|