|
@@ -201,6 +201,7 @@ public class WbsSynchronousServiceImpl {
|
|
|
//获取项目信息
|
|
|
ProjectInfo projectInfo = projectInfoMapper.selectOne(Wrappers.<ProjectInfo>lambdaQuery().eq(ProjectInfo::getId, wbsTreeSynchronousRecord.getProjectId()));
|
|
|
|
|
|
+ List<WbsTreePrivate> editData = new ArrayList<>();
|
|
|
|
|
|
for (String primaryKeyId : nodeIds) {
|
|
|
if (StringUtils.isNotEmpty(primaryKeyId)) {
|
|
@@ -448,9 +449,9 @@ public class WbsSynchronousServiceImpl {
|
|
|
case 1:
|
|
|
insertPrivateForm(wbsTreeSynchronousRecord, wbsTreePrivates, addPrivateNodes);
|
|
|
//如果同时选择新增表单和其他的同步类型 在操作其他类型的时候需要添加新的表单
|
|
|
- if (CollectionUtil.isNotEmpty(addPrivateNodes)) {
|
|
|
- editPrivateNodes.addAll(addPrivateNodes.stream().filter(f -> f.getType() == 2).collect(Collectors.toList()));
|
|
|
- }
|
|
|
+// if (CollectionUtil.isNotEmpty(addPrivateNodes)) {
|
|
|
+// editPrivateNodes.addAll(addPrivateNodes.stream().filter(f -> f.getType() == 2).collect(Collectors.toList()));
|
|
|
+// }
|
|
|
break;
|
|
|
//清表
|
|
|
case 2:
|
|
@@ -461,11 +462,7 @@ public class WbsSynchronousServiceImpl {
|
|
|
//排序
|
|
|
case 7:
|
|
|
//元素配置
|
|
|
- for (WbsTreePrivate editPrivateNode : editPrivateNodes) {
|
|
|
- editPrivateNode.setUpdateTime(DateTime.now());
|
|
|
- editPrivateNode.setUpdateUser(wbsTreeSynchronousRecord.getCreateUserId());
|
|
|
- wbsTreePrivateMapper.updateById(editPrivateNode);
|
|
|
- }
|
|
|
+ editData.addAll(editPrivateNodes);
|
|
|
break;
|
|
|
//电签 如果有数据 与节点绑定
|
|
|
case 4:
|
|
@@ -480,6 +477,8 @@ public class WbsSynchronousServiceImpl {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //更新数据的同时统计最小节点数量
|
|
|
+ wbsSynchronousEViSaService.updatePrivate(wbsTreeSynchronousRecord,editData);
|
|
|
synchronousRecordMapper.update(null, Wrappers.<WbsTreeSynchronousRecord>lambdaUpdate()
|
|
|
.set(WbsTreeSynchronousRecord::getStatus, 2)
|
|
|
.set(WbsTreeSynchronousRecord::getErrorMsg, null)
|
|
@@ -525,7 +524,7 @@ public class WbsSynchronousServiceImpl {
|
|
|
//获取当前项目所有合同---------------------------------------------------------------------------------------------------
|
|
|
List<ContractInfo> contractInfos = contractInfoMapper.selectContractIdByProjectId(String.valueOf(wbsTreeSynchronousRecord.getProjectId()));
|
|
|
|
|
|
-
|
|
|
+ List<WbsTreeContract> editData = new ArrayList<>();
|
|
|
for (String primaryKeyId : nodeIds) {
|
|
|
|
|
|
//获取当前节点对应节点信息
|
|
@@ -731,13 +730,7 @@ public class WbsSynchronousServiceImpl {
|
|
|
case 5:
|
|
|
//排序
|
|
|
case 7:
|
|
|
- if (CollectionUtil.isNotEmpty(editContractNodes)) {
|
|
|
- for (WbsTreeContract editContractNode : editContractNodes) {
|
|
|
- editContractNode.setUpdateTime(DateTime.now());
|
|
|
- editContractNode.setUpdateUser(wbsTreeSynchronousRecord.getCreateUserId());
|
|
|
- wbsTreeContractMapper.updateById(editContractNode);
|
|
|
- }
|
|
|
- }
|
|
|
+ editData.addAll(editContractNodes);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -745,7 +738,13 @@ public class WbsSynchronousServiceImpl {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ //合同段同步同时记录数量
|
|
|
+ wbsSynchronousEViSaService.updateContract(wbsTreeSynchronousRecord,editData);
|
|
|
+
|
|
|
synchronousRecordMapper.update(null, Wrappers.<WbsTreeSynchronousRecord>lambdaUpdate()
|
|
|
.set(WbsTreeSynchronousRecord::getStatus, 2)
|
|
|
.set(WbsTreeSynchronousRecord::getErrorMsg, null)
|
|
@@ -1173,4 +1172,78 @@ public class WbsSynchronousServiceImpl {
|
|
|
// 将路径列表转换为字符串并返回
|
|
|
return String.join(",", path.stream().map(String::valueOf).toArray(String[]::new));
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取指定节点的所有最新节点
|
|
|
+ */
|
|
|
+ public Set<Long> getMinNodes(WbsTreeSynchronousRecord record) {
|
|
|
+
|
|
|
+ Set<Long> collect = null;
|
|
|
+ try {
|
|
|
+
|
|
|
+
|
|
|
+ collect = new HashSet<>();
|
|
|
+ Integer range = record.getRange();
|
|
|
+ String nodeId = record.getNodeId();
|
|
|
+ if (range == 1) {
|
|
|
+ if (StringUtil.isNotBlank(record.getFormIds())) {
|
|
|
+ List<WbsTreePrivate> list = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
+ .select(WbsTreePrivate::getPKeyId, WbsTreePrivate::getPId)
|
|
|
+ .eq(WbsTreePrivate::getIsDeleted, 0)
|
|
|
+ .eq(WbsTreePrivate::getType, 2)
|
|
|
+ .eq(WbsTreePrivate::getProjectId, record.getProjectId())
|
|
|
+ .in(WbsTreePrivate::getPKeyId, Func.toLongList(record.getFormIds())));
|
|
|
+ collect = list.stream().map(WbsTreePrivate::getPId).collect(Collectors.toSet());
|
|
|
+ } else {
|
|
|
+
|
|
|
+ Set<Long> split = Arrays.stream(nodeId.split(","))
|
|
|
+ .map(Long::parseLong)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ for (Long id : split) {
|
|
|
+ List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
+ .select(WbsTreePrivate::getPKeyId, WbsTreePrivate::getPId)
|
|
|
+ .eq(WbsTreePrivate::getIsDeleted, 0)
|
|
|
+ .eq(WbsTreePrivate::getType, 2)
|
|
|
+ .apply("find_in_set({0},ancestors_p_id)", id));
|
|
|
+ collect.addAll(wbsTreePrivates.stream().map(WbsTreePrivate::getPId).collect(Collectors.toSet()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return collect;
|
|
|
+ }
|
|
|
+ if (range == 2) {
|
|
|
+ if (StringUtil.isNotBlank(record.getFormIds())) {
|
|
|
+ List<WbsTreeContract> list = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>lambdaQuery()
|
|
|
+ .select(WbsTreeContract::getPKeyId, WbsTreeContract::getPId)
|
|
|
+ .eq(WbsTreeContract::getIsDeleted, 0)
|
|
|
+ .eq(WbsTreeContract::getProjectId, record.getProjectId())
|
|
|
+ .in(WbsTreeContract::getIsTypePrivatePid, Func.toLongList(record.getFormIds())));
|
|
|
+ collect = list.stream().map(WbsTreeContract::getPId).collect(Collectors.toSet());
|
|
|
+ } else {
|
|
|
+
|
|
|
+ List<WbsTreeContract> initNode = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>lambdaQuery()
|
|
|
+ .select(WbsTreeContract::getPKeyId, WbsTreeContract::getPId)
|
|
|
+ .eq(WbsTreeContract::getIsDeleted, 0)
|
|
|
+ .eq(WbsTreeContract::getProjectId, record.getProjectId())
|
|
|
+ .in(WbsTreeContract::getIsTypePrivatePid, Func.toLongList(record.getNodeId())));
|
|
|
+
|
|
|
+ for (WbsTreeContract wbsTreeContract : initNode) {
|
|
|
+ List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>lambdaQuery()
|
|
|
+ .select(WbsTreeContract::getPKeyId, WbsTreeContract::getPId)
|
|
|
+ .eq(WbsTreeContract::getIsDeleted, 0)
|
|
|
+ .eq(WbsTreeContract::getType, 2)
|
|
|
+ .eq(WbsTreeContract::getProjectId, record.getProjectId())
|
|
|
+ .apply("find_in_set({0},ancestors_p_id)", wbsTreeContract.getPKeyId()));
|
|
|
+ collect.addAll(wbsTreeContracts.stream().map(WbsTreeContract::getPId).collect(Collectors.toSet()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (ServiceException e) {
|
|
|
+ throw new ServiceException(e.getMessage());
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ throw new ServiceException("系统错误");
|
|
|
+ }
|
|
|
+ return collect;
|
|
|
+ }
|
|
|
}
|