1、工位节点汇总仿真负责、执行人时去重

This commit is contained in:
2026-01-15 00:37:34 +08:00
parent 97cef42314
commit 436e3b31b3

View File

@@ -369,32 +369,6 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
// 汇总任务进度、仿真负责人、执行人
for (ProjectNodePo projectNodePo : realTopProjectNodeList) {
summaryWorkspaceNode(projectNodePo,projectNodePo.getChildren());
List<CIDUserResp> pMemberList = projectNodePo.getPMemberList();
List<Long> pMemberIdList = new ArrayList<>();
List<CIDUserResp> distinctPMemberList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(pMemberList)) {
for (CIDUserResp cidUserResp : pMemberList) {
if (pMemberIdList.contains(cidUserResp.getUserId())) {
continue;
}
distinctPMemberList.add(cidUserResp);
pMemberIdList.add(cidUserResp.getUserId());
}
}
List<CIDUserResp> eMemberList = projectNodePo.getPMemberList();
List<Long> eMemberIdList = new ArrayList<>();
List<CIDUserResp> distinctEMemberList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(eMemberList)) {
for (CIDUserResp cidUserResp : eMemberList) {
if (eMemberIdList.contains(cidUserResp.getUserId())) {
continue;
}
distinctEMemberList.add(cidUserResp);
eMemberIdList.add(cidUserResp.getUserId());
}
}
projectNodePo.setPMemberList(distinctPMemberList);
projectNodePo.setEMemberList(distinctEMemberList);
}
return SdmResponse.success(realTopProjectNodeList.stream().flatMap(item -> item.getChildren().stream().filter(Objects::nonNull)).toList());
}
@@ -421,11 +395,32 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
projectNodePo.setFinishTaskNum(projectNodePo.getFinishTaskNum() + taskChildren.stream()
.filter(node -> TaskExeStatusEnum.COMPLETED.getCode().equals(node.getExeStatus())).count());
projectNodePo.setTotalTaskNum(projectNodePo.getTotalTaskNum() + taskChildren.size());
taskChildren.stream().map(NodeAllBase::getPMemberList).toList();
projectNodePo.getPMemberList()
.addAll(taskChildren.stream().filter(node -> CollectionUtils.isNotEmpty(node.getPMemberList())).flatMap(item -> item.getPMemberList().stream().filter(Objects::nonNull)).toList());
projectNodePo.getEMemberList()
.addAll(taskChildren.stream().filter(node -> CollectionUtils.isNotEmpty(node.getEMemberList())).flatMap(item -> item.getEMemberList().stream().filter(Objects::nonNull)).toList());
List<CIDUserResp> pMemberList = taskChildren.stream().filter(node -> CollectionUtils.isNotEmpty(node.getPMemberList())).flatMap(item -> item.getPMemberList().stream().filter(Objects::nonNull)).toList();
List<Long> pMemberIdList = new ArrayList<>();
List<CIDUserResp> distinctPMemberList = projectNodePo.getPMemberList();
if (CollectionUtils.isNotEmpty(pMemberList)) {
for (CIDUserResp cidUserResp : pMemberList) {
if (pMemberIdList.contains(cidUserResp.getUserId())) {
continue;
}
distinctPMemberList.add(cidUserResp);
pMemberIdList.add(cidUserResp.getUserId());
}
}
List<CIDUserResp> eMemberList = taskChildren.stream().filter(node -> CollectionUtils.isNotEmpty(node.getEMemberList())).flatMap(item -> item.getEMemberList().stream().filter(Objects::nonNull)).toList();
List<Long> eMemberIdList = new ArrayList<>();
List<CIDUserResp> distinctEMemberList = projectNodePo.getEMemberList();
if (CollectionUtils.isNotEmpty(eMemberList)) {
for (CIDUserResp cidUserResp : eMemberList) {
if (eMemberIdList.contains(cidUserResp.getUserId())) {
continue;
}
distinctEMemberList.add(cidUserResp);
eMemberIdList.add(cidUserResp.getUserId());
}
}
projectNodePo.setPMemberList(distinctPMemberList);
projectNodePo.setEMemberList(distinctEMemberList);
for (NodeAllBase child : children) {
List<NodeAllBase> eachChildren = child.getChildren();
if (CollectionUtils.isEmpty(eachChildren)) {