项目任务相关接口 bug fix

This commit is contained in:
2025-10-17 15:08:45 +08:00
parent e970368449
commit 7d5935eae7
8 changed files with 66 additions and 19 deletions

View File

@@ -1,5 +1,6 @@
package com.sdm.project.model.req; package com.sdm.project.model.req;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sdm.common.entity.pojo.BaseEntity; import com.sdm.common.entity.pojo.BaseEntity;
import lombok.Data; import lombok.Data;
@@ -77,11 +78,13 @@ public class SpdmEditDemandReq extends BaseEntity {
/** /**
* 仿真负责人 * 仿真负责人
*/ */
@JsonProperty(value = "pMemberList")
private String pMemberList; private String pMemberList;
/** /**
* 仿真执行人 * 仿真执行人
*/ */
@JsonProperty(value = "eMemberList")
private String eMemberList; private String eMemberList;
/** /**

View File

@@ -32,29 +32,33 @@ public class SpdmTaskListReq {
/** /**
* 任务状态 * 任务状态
*/ */
private String taskStatus; private String exeStatus;
private List<String> exeStatusList;
/** /**
* 达成情况 * 达成情况
*/ */
private String achieveStatus; private String achieveStatus;
private List<String> achieveStatusList;
/** /**
* 任务进度 * 任务进度
*/ */
private Integer process; private Integer progress;
/** /**
* 仿真负责人 * 仿真负责人
*/ */
@JsonProperty(value = "pMemberIdList") @JsonProperty(value = "pMemberList")
private String pMemberIdList; private String pMemberList;
/** /**
* 仿真执行人 * 仿真执行人
*/ */
@JsonProperty(value = "eMemberIdList") @JsonProperty(value = "eMemberList")
private String eMemberIdList; private String eMemberList;
private List<TaskNodeTag> idMap; private List<TaskNodeTag> idMap;

View File

@@ -1,5 +1,6 @@
package com.sdm.project.model.vo; package com.sdm.project.model.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sdm.common.entity.pojo.BaseEntity; import com.sdm.common.entity.pojo.BaseEntity;
import com.sdm.project.model.req.SpdmDemandExtraReq; import com.sdm.project.model.req.SpdmDemandExtraReq;
import com.sdm.project.model.vo.SpdmDemandMemberVo; import com.sdm.project.model.vo.SpdmDemandMemberVo;
@@ -71,11 +72,13 @@ public class SpdmDemandVo extends BaseEntity {
/** /**
* 仿真负责人 * 仿真负责人
*/ */
@JsonProperty(value = "pMemberList")
private List<SpdmUserVo> pMemberList; private List<SpdmUserVo> pMemberList;
/** /**
* 仿真执行人 * 仿真执行人
*/ */
@JsonProperty(value = "eMemberList")
private List<SpdmUserVo> eMemberList; private List<SpdmUserVo> eMemberList;
/** /**

View File

@@ -111,11 +111,13 @@ public class SpdmNewTaskVo extends BaseEntity {
/** /**
* 仿真负责人 * 仿真负责人
*/ */
@JsonProperty(value = "pMemberList")
private List<SpdmTaskMemberVo> pMemberList; private List<SpdmTaskMemberVo> pMemberList;
/** /**
* 仿真执行人 * 仿真执行人
*/ */
@JsonProperty(value = "eMemberList")
private List<SpdmTaskMemberVo> eMemberList; private List<SpdmTaskMemberVo> eMemberList;
/** /**

View File

@@ -112,11 +112,13 @@ public class SpdmTaskVo extends BaseEntity {
/** /**
* 仿真负责人 * 仿真负责人
*/ */
@JsonProperty(value = "pMemberList")
private List<SpdmTaskMemberVo> pMemberList; private List<SpdmTaskMemberVo> pMemberList;
/** /**
* 仿真执行人 * 仿真执行人
*/ */
@JsonProperty(value = "eMemberList")
private List<SpdmTaskMemberVo> eMemberList; private List<SpdmTaskMemberVo> eMemberList;
/** /**

View File

@@ -308,7 +308,7 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
if (StringUtils.isBlank(currentNodeTagId)) { if (StringUtils.isBlank(currentNodeTagId)) {
throw new RuntimeException("查询任务树异常"); return;
} }
String finalCurrentNodeTagId = currentNodeTagId; String finalCurrentNodeTagId = currentNodeTagId;
// 查询当前节点下任务 // 查询当前节点下任务

View File

@@ -68,6 +68,12 @@ public class TaskServiceImpl implements ITaskService {
log.error("type必须为0或1或2"); log.error("type必须为0或1或2");
return SdmResponse.failed("公司和工号都不能为空"); return SdmResponse.failed("公司和工号都不能为空");
} }
if (StringUtils.isNotBlank(req.getExeStatus())) {
req.setExeStatusList(Arrays.stream(req.getExeStatus().split(",")).toList());
}
if (StringUtils.isNotBlank(req.getAchieveStatus())) {
req.setAchieveStatusList(Arrays.stream(req.getAchieveStatus().split(",")).toList());
}
List<SpdmTaskVo> allTaskList = mapper.getTaskList(tenantId, req); List<SpdmTaskVo> allTaskList = mapper.getTaskList(tenantId, req);
if (CollectionUtils.isEmpty(allTaskList)) { if (CollectionUtils.isEmpty(allTaskList)) {
log.error("根据tenantId{},未查询到任务", tenantId); log.error("根据tenantId{},未查询到任务", tenantId);
@@ -102,27 +108,43 @@ public class TaskServiceImpl implements ITaskService {
log.info("未查询任务"); log.info("未查询任务");
return SdmResponse.success(new ArrayList<>()); return SdmResponse.success(new ArrayList<>());
} }
JSONObject jsonObject = new JSONObject();
jsonObject.put("currentPage", req.getCurrent());
jsonObject.put("pageSize", req.getSize());
List<String> taskIdList = taskList.stream().map(SpdmTaskVo::getUuid).toList(); List<String> taskIdList = taskList.stream().map(SpdmTaskVo::getUuid).toList();
List<SpdmTaskMemberVo> taskMemberVoList = mapper.getMemberList(taskIdList, null); List<SpdmTaskMemberVo> taskMemberVoList = mapper.getMemberList(taskIdList, null);
Map<String, List<SpdmTaskMemberVo>> memberMap = Map.of(); Map<String, List<SpdmTaskMemberVo>> memberMap = Map.of();
if (CollectionUtils.isNotEmpty(taskMemberVoList)) { if (CollectionUtils.isNotEmpty(taskMemberVoList)) {
if (ObjectUtils.isNotEmpty(req.getPMemberIdList())) { if (ObjectUtils.isNotEmpty(req.getPMemberList())) {
List<Long> pMemberIdList = Stream.of(req.getPMemberIdList().split(",")).map(Long::valueOf).toList(); List<Long> pMemberIdList = Stream.of(req.getPMemberList().split(",")).map(Long::valueOf).toList();
// 通过仿真负责人过滤 // 通过仿真负责人过滤
taskMemberVoList = taskMemberVoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && pMemberIdList.contains(member.getUserId())).collect(Collectors.toList()); taskMemberVoList = taskMemberVoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && pMemberIdList.contains(member.getUserId())).collect(Collectors.toList());
} }
if (StringUtils.isNotBlank(req.getEMemberIdList())) { if (StringUtils.isNotBlank(req.getEMemberList())) {
// 通过仿真执行人过滤 // 通过仿真执行人过滤
List<Long> eMemberIdList = Stream.of(req.getEMemberIdList().split(",")).map(Long::valueOf).toList(); List<Long> eMemberIdList = Stream.of(req.getEMemberList().split(",")).map(Long::valueOf).toList();
// 通过仿真负责人过滤 // 通过仿真负责人过滤
taskMemberVoList = taskMemberVoList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType()) && eMemberIdList.contains(member.getUserId())).collect(Collectors.toList()); taskMemberVoList = taskMemberVoList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType()) && eMemberIdList.contains(member.getUserId())).collect(Collectors.toList());
} }
if (CollectionUtils.isEmpty(taskMemberVoList)) {
log.error("taskMemberVoList为空");
jsonObject.put("total", 0);
jsonObject.put("data", new ArrayList<>());
return SdmResponse.success(jsonObject);
}
memberMap = taskMemberVoList.stream().collect(Collectors.groupingBy(SpdmTaskMemberVo::getTaskId)); memberMap = taskMemberVoList.stream().collect(Collectors.groupingBy(SpdmTaskMemberVo::getTaskId));
List<String> realTaskIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getTaskId).distinct().toList();
// 根据负责人信息过滤任务
taskList = taskList.stream().filter(task -> realTaskIdList.contains(task.getUuid())).toList();
if (CollectionUtils.isEmpty(taskList)) {
log.error("taskList为空");
jsonObject.put("total", 0);
jsonObject.put("data", new ArrayList<>());
return SdmResponse.success(jsonObject);
}
} }
List<SpdmTaskMemberVo> eachMemberList; List<SpdmTaskMemberVo> eachMemberList;
JSONObject jsonObject = new JSONObject();
jsonObject.put("currentPage", req.getCurrent());
jsonObject.put("pageSize", req.getSize());
List<String> tagList = idMapList.stream().map(TaskNodeTag::getValue).toList(); List<String> tagList = idMapList.stream().map(TaskNodeTag::getValue).toList();
List<String> nodeIdList = new ArrayList<>(); List<String> nodeIdList = new ArrayList<>();
List<String> eachNodeIdList; List<String> eachNodeIdList;

View File

@@ -6,7 +6,7 @@
<insert id="saveAttentionList"> <insert id="saveAttentionList">
insert into simulation_task_attention (task_id,identity,name,user_id,creator,create_time) values insert into simulation_task_attention (task_id,identity,name,user_id,creator,create_time) values
<foreach collection='attentionList' item='attention' index='index' separator=','> <foreach collection='attentionList' item='attention' index='index' separator=','>
(#{attention.taskId},#{attention.identity},#{attention.name},#{attention.userId},#{attention.creator},#{attention.createTime}) (#{attention.taskId},null,null,#{attention.userId},#{attention.creator},#{attention.createTime})
</foreach> </foreach>
</insert> </insert>
@@ -49,11 +49,22 @@
<if test="req.taskName != null and req.taskName != ''"> <if test="req.taskName != null and req.taskName != ''">
and task_name = #{req.taskName} and task_name = #{req.taskName}
</if> </if>
<if test="req.process != null and req.process != ''"> <if test="req.progress != null and req.progress != ''">
and process = #{req.process} and progress = #{req.progress}
</if> </if>
<if test="req.achieveStatus != null and req.achieveStatus != ''"> <if test="req.exeStatusList != null and req.exeStatusList.size > 0">
and achieve_status = #{req.achieveStatus} and exe_status in (
<foreach collection='req.exeStatusList' item='exeStatus' index='index' separator=','>
#{exeStatus}
</foreach>
)
</if>
<if test="req.achieveStatusList != null and req.achieveStatusList.size > 0">
and achieve_status in (
<foreach collection='req.achieveStatusList' item='achieveStatus' index='index' separator=','>
#{achieveStatus}
</foreach>
)
</if> </if>
<if test="req.finishTime != null and req.finishTime != ''"> <if test="req.finishTime != null and req.finishTime != ''">
and finish_time = #{req.finishTime} and finish_time = #{req.finishTime}