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