Compare commits

...

2 Commits

4 changed files with 69 additions and 25 deletions

View File

@@ -33,7 +33,7 @@ public interface SimulationTaskMapper extends BaseMapper<SimulationTask> {
SpdmTaskVo getTask(@Param("taskId") String taskId);
List<SpdmAnalysisTaskVo> taskList(@Param("req") SpdmAnalysisTaskListReq req, @Param("tenantId") Long tenantId, @Param("allNodeIdList") List<String> allNodeIdList, @Param("pos") int pos, @Param("limit") int limit);
List<SpdmAnalysisTaskVo> taskList(@Param("req") SpdmAnalysisTaskListReq req, @Param("tenantId") Long tenantId, @Param("allNodeIdList") List<String> allNodeIdList, @Param("pos") int pos, @Param("limit") int limit,@Param("userId") Long userId);
void deleteAttentionByUserIdList(@Param("taskId") String taskId,@Param("userIdList") List<Long> userIdList);

View File

@@ -475,7 +475,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
}
if (type == 0) {
// 创建人是当前用户
demandList = demandList.stream().filter(demand -> jobNumber.equals(String.valueOf(demand.getCreator()))).toList();
demandList = demandList.stream().filter(demand -> jobNumber.equals(String.valueOf(demand.getCreator())) || currentUserId.equals(demand.getCreator())).toList();
} else {
// 仿真负责人是当前用户
List<SpdmDemandMemberVo> pDemandMemberVoList = demandMemberVoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && currentUserId.equals(member.getUserId())).toList();

View File

@@ -1632,6 +1632,7 @@ public class TaskServiceImpl implements ITaskService {
int pos = (req.getCurrent() - 1) * req.getSize();
int limit = req.getSize();
Long tenantId = ThreadLocalContext.getTenantId();
Long userId = ThreadLocalContext.getUserId();
String projectNodeId = req.getProjectNodeId();
String phaseNodeId = req.getPhaseNodeId();
String machineNodeId = req.getMachineNodeId();
@@ -1672,7 +1673,7 @@ public class TaskServiceImpl implements ITaskService {
if (StringUtils.isNotBlank(taskNodeId)) {
allTaskVoList = mapper.getAnalysisTask(taskNodeId);
} else {
taskVoList = mapper.taskList(req, tenantId, new ArrayList<>(), pos, limit);
taskVoList = mapper.taskList(req, tenantId, new ArrayList<>(), pos, limit,userId);
if (CollectionUtils.isEmpty(taskVoList)) {
log.error("数据分析中未查询到任务信息");
jsonObject.put("data", new ArrayList<>());
@@ -1707,21 +1708,22 @@ public class TaskServiceImpl implements ITaskService {
return SdmResponse.success(jsonObject);
}
List<ProjectNodePo> allNodeList = projectMapper.getNodeListByNodeIdList(allNodeIdList);
Map<String, ProjectNodePo> nodeMap = allNodeList.stream().collect(Collectors.groupingBy(
ProjectNodePo::getUuid,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.get(0)
)
));
Map<String, ProjectNodePo> nodeMap = allNodeList.stream().collect(Collectors.toMap(ProjectNodePo::getUuid,Function.identity()));
// 设置仿真负责人
List<String> taskIdList = taskVoList.stream().map(SpdmAnalysisTaskVo::getUuid).toList();
List<TaskNodeMemberPo> taskNodeMemberPoList = projectMapper.queryTaskNodeMembersByNodeIdList(taskIdList);
Map<String, List<TaskNodeMemberPo>> memberMap = Map.of();
Map<String, List<TaskNodeMemberPo>> memberMap = new HashMap<>();
Map<Long, String> cidUserMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) {
taskNodeMemberPoList = taskNodeMemberPoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).toList();
if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) {
memberMap = taskNodeMemberPoList.stream().collect(Collectors.groupingBy(TaskNodeMemberPo::getTaskId));
SdmResponse<List<CIDUserResp>> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder()
.userIds(taskNodeMemberPoList.stream().map(TaskNodeMemberPo::getUserId).toList()).build());
List<CIDUserResp> cidUserRespList;
if (cidUserResp.isSuccess() && CollectionUtils.isNotEmpty(cidUserRespList = cidUserResp.getData())) {
cidUserMap = cidUserRespList.stream().collect(Collectors.toMap(CIDUserResp::getUserId, CIDUserResp::getNickname));
}
}
}
ProjectNodePo eachProjectNodePo;
@@ -1729,11 +1731,13 @@ public class TaskServiceImpl implements ITaskService {
for (SpdmAnalysisTaskVo task : taskVoList) {
eachProjectNodePo = nodeMap.get(task.getNodeId());
SpdmNodeVo phaseNode = nodeMapper.getNodeById(task.getTag2());
// SpdmNodeVo phaseNode = nodeMapper.getNodeById(task.getTag2());
ProjectNodePo phaseNode = nodeMap.get(task.getTag2());
if (phaseNode != null) {
task.setPhaseName(phaseNode.getNodeName());
}
SpdmNodeVo projectNode = nodeMapper.getNodeById(task.getTag1());
// SpdmNodeVo projectNode = nodeMapper.getNodeById(task.getTag1());
ProjectNodePo projectNode = nodeMap.get(task.getTag1());
if (projectNode != null) {
task.setProjectName(projectNode.getNodeName());
}
@@ -1742,13 +1746,16 @@ public class TaskServiceImpl implements ITaskService {
}
eachTaskNodeMemberPoList = memberMap.get(task.getUuid());
if (CollectionUtils.isNotEmpty(eachTaskNodeMemberPoList)) {
SdmResponse<List<CIDUserResp>> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder()
.userIds(eachTaskNodeMemberPoList.stream().map(TaskNodeMemberPo::getUserId).toList()).build());
if (cidUserResp == null || !cidUserResp.isSuccess() || CollectionUtils.isEmpty(cidUserResp.getData())) {
continue;
if (CollectionUtils.isNotEmpty(eachTaskNodeMemberPoList) && MapUtils.isNotEmpty(cidUserMap)) {
List<String> nickNameList = new ArrayList<>();
for (TaskNodeMemberPo taskNodeMemberPo : eachTaskNodeMemberPoList) {
String nickName = cidUserMap.get(taskNodeMemberPo.getUserId());
if (StringUtils.isBlank(nickName)) {
continue;
}
nickNameList.add(nickName);
}
task.setPMembers(cidUserResp.getData().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(",")));
task.setPMembers(String.join(",", nickNameList));
}
}
jsonObject.put("currentPage", req.getCurrent());

View File

@@ -233,9 +233,13 @@
</select>
<select id="taskList" resultType="com.sdm.project.model.vo.SpdmAnalysisTaskVo">
select * from simulation_task where tenant_id = #{tenantId}
SELECT st.*
FROM simulation_task st
LEFT JOIN simulation_task_member stm ON st.uuid = stm.task_id
WHERE stm.user_id = #{userId}
AND st.tenant_id = #{tenantId}
<if test="allNodeIdList != null and allNodeIdList.size > 0">
and node_id in (
and st.node_id in (
<foreach collection='allNodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
@@ -243,20 +247,53 @@
</if>
<if test="req.taskName != null and req.taskName != ''">
<bind name="searchKey1" value="'%' + req.taskName + '%'"/>
and task_name like #{searchKey1}
and st.task_name like #{searchKey1}
</if>
<if test="req.name != null and req.name != ''">
<bind name="searchKey2" value="'%' + req.name + '%'"/>
and task_name like #{searchKey2}
and st.task_name like #{searchKey2}
</if>
<if test="req.beginTime != null and req.beginTime != ''">
<![CDATA[
and STR_TO_DATE(begin_time,'%Y-%m-%d %H:%i:%s') >= #{req.beginTime}
and STR_TO_DATE(st.begin_time,'%Y-%m-%d %H:%i:%s') >= #{req.beginTime}
]]>
</if>
<if test="req.endTime != null and req.endTime != ''">
<![CDATA[
and STR_TO_DATE(end_time,'%Y-%m-%d %H:%i:%s') <= #{req.endTime}
and STR_TO_DATE(st.end_time,'%Y-%m-%d %H:%i:%s') <= #{req.endTime}
]]>
</if>
UNION
SELECT st.*
FROM simulation_task st
LEFT JOIN simulation_node_member snm ON st.tag1 = snm.nodeId
WHERE snm.user_id = #{userId}
AND st.tenant_id = #{tenantId}
<if test="allNodeIdList != null and allNodeIdList.size > 0">
and st.node_id in (
<foreach collection='allNodeIdList' item='nodeId' index='index' separator=','>
#{nodeId}
</foreach>
)
</if>
<if test="req.taskName != null and req.taskName != ''">
<bind name="searchKey1" value="'%' + req.taskName + '%'"/>
and st.task_name like #{searchKey1}
</if>
<if test="req.name != null and req.name != ''">
<bind name="searchKey2" value="'%' + req.name + '%'"/>
and st.task_name like #{searchKey2}
</if>
<if test="req.beginTime != null and req.beginTime != ''">
<![CDATA[
and STR_TO_DATE(st.begin_time,'%Y-%m-%d %H:%i:%s') >= #{req.beginTime}
]]>
</if>
<if test="req.endTime != null and req.endTime != ''">
<![CDATA[
and STR_TO_DATE(st.end_time,'%Y-%m-%d %H:%i:%s') <= #{req.endTime}
]]>
</if>
order by create_time desc