Merge remote-tracking branch 'origin/main'

This commit is contained in:
2025-11-10 16:10:39 +08:00
7 changed files with 119 additions and 21 deletions

View File

@@ -174,6 +174,17 @@ public class ProjectNode extends BaseEntity {
private List<ProjectNodeMemberPo> memberList;
/**
* 仿真执行人
*/
@JsonProperty(value = "eMemberList")
private String eMemberList;
/**
* 仿真负责人
*/
@JsonProperty(value = "pMemberList")
private String pMemberList;
private String levelType;
private String nodeLevel;

View File

@@ -3,6 +3,7 @@ package com.sdm.project.model.po;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sdm.common.entity.pojo.BaseEntity;
import com.sdm.common.entity.resp.system.CIDUserResp;
import com.sdm.project.model.bo.ProjectNode;
import lombok.Data;
@@ -117,6 +118,18 @@ public class ProjectNodePo extends NodeAllBase {
public String members;
/**
* 仿真负责人
*/
@JsonProperty(value = "pMemberList")
private List<CIDUserResp> pMemberList;
/**
* 仿真执行人
*/
@JsonProperty(value = "eMemberList")
private List<CIDUserResp> eMemberList;
/**
* 拓展属性集合
*/

View File

@@ -3,6 +3,7 @@ package com.sdm.project.model.po;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sdm.common.entity.pojo.BaseEntity;
import com.sdm.common.entity.resp.system.CIDUserResp;
import lombok.Data;
import java.util.ArrayList;
@@ -125,6 +126,18 @@ public class TaskNodePo extends NodeAllBase {
public String members;
/**
* 仿真负责人
*/
@JsonProperty(value = "pMemberList")
private List<CIDUserResp> pMemberList;
/**
* 仿真执行人
*/
@JsonProperty(value = "eMemberList")
private List<CIDUserResp> eMemberList;
/**
* 拓展属性集合
*/

View File

@@ -178,6 +178,17 @@ public class TaskEditNodeReq extends BaseEntity {
private List<TaskMemberNode> memberList;
/**
* 仿真执行人
*/
@JsonProperty(value = "eMemberList")
private String eMemberList;
/**
* 仿真负责人
*/
@JsonProperty(value = "pMemberList")
private String pMemberList;
private String performanceId;

View File

@@ -23,15 +23,13 @@ import com.sdm.project.model.bo.TaskNodeTag;
import com.sdm.project.model.entity.SimulationNode;
import com.sdm.project.model.entity.SimulationRun;
import com.sdm.project.model.entity.SimulationTask;
import com.sdm.project.model.entity.SimulationTaskMember;
import com.sdm.project.model.po.PerformanceNodePo;
import com.sdm.project.model.po.ProjectNodePo;
import com.sdm.project.model.po.TaskNodePo;
import com.sdm.project.model.req.*;
import com.sdm.project.model.vo.*;
import com.sdm.project.service.INodeService;
import com.sdm.project.service.IProjectService;
import com.sdm.project.service.ISimulationRunService;
import com.sdm.project.service.ISimulationTaskService;
import com.sdm.project.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
@@ -68,6 +66,9 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
@Autowired
private ISimulationRunService simulationRunService;
@Autowired
private ISimulationTaskMemberService simulationTaskMemberService;
@Resource
private SimulationDemandMapper demandMapper;
@@ -552,7 +553,16 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
log.error("allNodeIdList{},未查询到团队成员", allNodeIdList);
return SdmResponse.success(new ArrayList<>());
}
List<Long> userIdList = spdmNodeMemberVoList.stream().map(SpdmNodeMemberVo::getUserId).distinct().toList();
List<Long> userIdList = spdmNodeMemberVoList.stream().map(SpdmNodeMemberVo::getUserId).distinct().collect(Collectors.toList());;
// 查询node节点下的task的成员仿真负责人和执行人
List<SimulationTask> taskList = simulationTaskService.lambdaQuery().in(SimulationTask::getNodeId, allNodeIdList).list();
if (CollectionUtils.isNotEmpty(taskList)) {
List<SimulationTaskMember> taskMemberList = simulationTaskMemberService.lambdaQuery().in(SimulationTaskMember::getTaskId, taskList.stream().map(SimulationTask::getUuid).toList()).list();
if (CollectionUtils.isNotEmpty(taskMemberList)) {
userIdList.addAll(taskMemberList.stream().map(SimulationTaskMember::getUserId).distinct().toList());
}
}
SdmResponse<List<CIDUserResp>> cidUserResp= sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(userIdList).build());
List<CIDUserResp> userList = cidUserResp.getData();

View File

@@ -12,16 +12,22 @@ import com.sdm.common.entity.enums.NodeTypeEnum;
import com.sdm.common.entity.req.data.CreateDirReq;
import com.sdm.common.entity.req.data.DelDirReq;
import com.sdm.common.entity.req.data.RenameDirReq;
import com.sdm.common.entity.req.system.UserQueryReq;
import com.sdm.common.entity.resp.system.CIDUserResp;
import com.sdm.common.feign.impl.data.DataClientFeignClientImpl;
import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
import com.sdm.common.service.BaseService;
import com.sdm.common.utils.RandomUtil;
import com.sdm.project.common.MemberTypeEnum;
import com.sdm.project.common.VersionEnum;
import com.sdm.project.dao.SimulationNodeMapper;
import com.sdm.project.dao.SimulationProjectMapper;
import com.sdm.project.model.bo.*;
import com.sdm.project.model.entity.SimulationTaskMember;
import com.sdm.project.model.po.*;
import com.sdm.project.model.req.*;
import com.sdm.project.service.IProjectService;
import com.sdm.project.service.ISimulationTaskMemberService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
@@ -53,6 +59,12 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
@Autowired
private DataClientFeignClientImpl dataClientFeignClient;
@Autowired
private ISimulationTaskMemberService simulationTaskMemberService;
@Autowired
SysUserFeignClientImpl sysUserFeignClient;
private String currentTopNodeType = "";
// private HashMap<String, List<String>> idMap = new HashMap<>();
@@ -192,11 +204,19 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
mapper.updateProjectNodeItemExtra(taskExtraNode);
}
}
taskMemberNodeList = taskEditNodeReq.getMemberList();
if (CollectionUtils.isNotEmpty(taskMemberNodeList)) {
for (TaskMemberNode taskMemberNode : taskMemberNodeList) {
mapper.updateProjectNodeItemMember(taskMemberNode);
}
// 修改仿真执行人
if (StringUtils.isNotBlank(taskEditNodeReq.getEMemberList())) {
String[] userIdArr = taskEditNodeReq.getEMemberList().split(",");
List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
simulationTaskMemberService.deleteTaskMemberList(taskEditNodeReq.getUuid(), MemberTypeEnum.EXECUTOR.getCode());
simulationTaskMemberService.saveTaskMemberList(taskEditNodeReq.getUuid(), MemberTypeEnum.EXECUTOR.getCode(), longUserIdList);
}
// 修改仿真负责人
if (StringUtils.isNotBlank(taskEditNodeReq.getPMemberList())) {
String[] userIdArr = taskEditNodeReq.getPMemberList().split(",");
List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
simulationTaskMemberService.deleteTaskMemberList(taskEditNodeReq.getUuid(), MemberTypeEnum.PRINCIPAL.getCode());
simulationTaskMemberService.saveTaskMemberList(taskEditNodeReq.getUuid(), MemberTypeEnum.PRINCIPAL.getCode(), longUserIdList);
}
}
}
@@ -395,6 +415,22 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
}
}
}
// 查询当前任务的负责人和执行人
for (TaskNodePo taskNodePo : currentNodeAssociatedTaskList) {
List<SimulationTaskMember> memberList = simulationTaskMemberService.lambdaQuery().eq(SimulationTaskMember::getTaskId, taskNodePo.getUuid()).list();
if (CollectionUtils.isNotEmpty(memberList)) {
List<Long> eUserIdList = memberList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType())).map(SimulationTaskMember::getUserId).distinct().toList();
List<Long> pUserIdList = memberList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).map(SimulationTaskMember::getUserId).distinct().toList();
if (CollectionUtils.isNotEmpty(eUserIdList)) {
SdmResponse<List<CIDUserResp>> cidUserResp= sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(eUserIdList).build());
taskNodePo.setEMemberList(cidUserResp.getData());
}
if (CollectionUtils.isNotEmpty(pUserIdList)) {
SdmResponse<List<CIDUserResp>> cidUserResp= sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(pUserIdList).build());
taskNodePo.setPMemberList(cidUserResp.getData());
}
}
}
}
}
// 查询子节点,可能是同类型节点也可能是不同类型节点
@@ -1226,18 +1262,19 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
taskNodeList.add(projectNode);
List<TaskMemberNode> taskMemberNodeList = projectNode.getMemberList();
if (CollectionUtils.isNotEmpty(taskMemberNodeList)) {
for (TaskMemberNode member : taskMemberNodeList) {
TaskMemberNode taskMemberNode = new TaskMemberNode();
taskMemberNode.setTaskId(projectNode.getUuid());
taskMemberNode.setNodeId(projectNode.getUuid());
taskMemberNode.setIdentity(member.getIdentity());
taskMemberNode.setName(member.getName());
taskMemberNode.setUserId(member.getUserId());
taskMemberNode.setType(member.getType());
projectNodeMemberList.add(taskMemberNode);
}
// 设置仿真执行人
if (StringUtils.isNotBlank(projectNode.getEMemberList())) {
String[] userIdArr = projectNode.getEMemberList().split(",");
List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
simulationTaskMemberService.saveTaskMemberList(projectNode.getUuid(), MemberTypeEnum.EXECUTOR.getCode(), longUserIdList);
}
// 设置仿真负责人
if (StringUtils.isNotBlank(projectNode.getPMemberList())) {
String[] userIdArr = projectNode.getPMemberList().split(",");
List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
simulationTaskMemberService.saveTaskMemberList(projectNode.getUuid(), MemberTypeEnum.PRINCIPAL.getCode(), longUserIdList);
}
List<TaskExtraNode> extraList = projectNode.getTaskExtraNodeList();
if (CollectionUtils.isNotEmpty(extraList)) {
for (TaskExtraNode extra : extraList) {

View File

@@ -124,6 +124,9 @@
<if test="taskNode.realDays != null and taskNode.realDays != ''">
real_days = #{taskNode.realDays},
</if>
<if test="taskNode.days != null and taskNode.days != ''">
days = #{taskNode.days},
</if>
<if test="taskNode.standard != null and taskNode.standard != ''">
standard = #{taskNode.standard},
</if>