任务管理计数查询修改

This commit is contained in:
2025-11-06 09:19:49 +08:00
parent 438198f039
commit 78bed19da9
4 changed files with 87 additions and 60 deletions

View File

@@ -4,6 +4,7 @@ import com.sdm.common.common.SdmResponse;
import com.sdm.project.model.bo.ModifyProjectNode;
import com.sdm.project.model.bo.ModifyTaskNode;
import com.sdm.project.model.req.SpdmTaskAttentionReq;
import com.sdm.project.model.req.SpdmTaskCountReq;
import com.sdm.project.model.req.SpdmTaskListReq;
import com.sdm.project.service.ITaskService;
import io.swagger.v3.oas.annotations.Operation;
@@ -80,7 +81,7 @@ public class SimulationTaskController {
*/
@PostMapping("/count")
@Operation(summary = "任务列表计数(我执行的、我关注的、所有)", description = "任务列表计数(我执行的、我关注的、所有)")
public SdmResponse countByStatus(@Validated @RequestBody SpdmTaskListReq req) {
public SdmResponse countByStatus(@Validated @RequestBody SpdmTaskCountReq req) {
return taskService.countByStatus(req);
}

View File

@@ -0,0 +1,33 @@
package com.sdm.project.model.req;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.sdm.common.validator.annotation.EnumValue;
import com.sdm.project.common.TaskQryTypeEnum;
import com.sdm.project.model.bo.TaskNodeTag;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class SpdmTaskCountReq {
/**
* 任务类型0我执行的 1我关注的 2所有 3-我分发的
*/
@NotNull(message = "type不能为空")
@EnumValue(enumClass = TaskQryTypeEnum.class, message = "type任务类型无效")
private Integer type;
private List<TaskNodeTag> idMap;
/**
* 今明任务 筛选计划结束时间为今明两天的
*/
private String todayTmrTasks;
/**
* 今天日期
*/
private String todayTime;
}

View File

@@ -2,10 +2,7 @@ package com.sdm.project.service;
import com.sdm.common.common.SdmResponse;
import com.sdm.project.model.bo.ModifyTaskNode;
import com.sdm.project.model.req.SpdmAnalysisPerformanceListReq;
import com.sdm.project.model.req.SpdmAnalysisRunListReq;
import com.sdm.project.model.req.SpdmAnalysisTaskListReq;
import com.sdm.project.model.req.SpdmTaskListReq;
import com.sdm.project.model.req.*;
import com.sdm.project.model.resp.GetAllRunResultByTaskIdResp;
import com.sdm.project.model.resp.RunResultResp;
import org.springframework.stereotype.Service;
@@ -18,7 +15,7 @@ public interface ITaskService {
SdmResponse list(SpdmTaskListReq req);
SdmResponse countByStatus(SpdmTaskListReq req);
SdmResponse countByStatus(SpdmTaskCountReq req);
SdmResponse operation(String taskId, String exeStatus,String achieveStatus,Integer process,String finishTime);

View File

@@ -474,7 +474,7 @@ public class TaskServiceImpl implements ITaskService {
}
@Override
public SdmResponse countByStatus(SpdmTaskListReq req) {
public SdmResponse countByStatus(SpdmTaskCountReq req) {
String tenantId = ThreadLocalContext.getCompany();
// String jobNumber = ThreadLocalContext.getCommonHeader().getJobNumber();
Long userId = ThreadLocalContext.getUserId();
@@ -485,10 +485,12 @@ public class TaskServiceImpl implements ITaskService {
// 0我执行的 1我关注的 2所有 3我分发的
Integer type = req.getType();
List<SpdmTaskVo> allTaskList = mapper.getTaskList(tenantId, req);
SpdmTaskListReq qry = new SpdmTaskListReq();
BeanUtils.copyProperties(req, qry);
List<SpdmTaskVo> allTaskList = mapper.getTaskList(tenantId, qry);
// 今明任务
req.setTodayTmrTasks(ProjectConstants.TODAY_TMR_TASKS);
List<SpdmTaskVo> todayTmrTaskList = mapper.getTaskList(tenantId, req);
List<SpdmTaskVo> todayTmrTaskList = mapper.getTaskList(tenantId, qry);
if (CollectionUtils.isEmpty(allTaskList)) {
log.error("根据tenantId{},未查询到任务", tenantId);
return SdmResponse.success(new ArrayList<>());
@@ -530,64 +532,58 @@ public class TaskServiceImpl implements ITaskService {
// 根据负责人信息过滤任务
taskList = taskList.stream().filter(task -> realTaskIdList.contains(task.getUuid())).toList();
countTask(taskList, todayTmrTaskList, taskCountResp);
if (type == 0) {
// 仿真执行人是当前用户
if (CollectionUtils.isNotEmpty(taskMemberVoList)) {
SdmResponse<CIDUserResp> cidUserResp = sysUserFeignClient.queryUserDetail(UserQueryReq.builder().userId(userId).build());
if (ObjectUtils.isEmpty(cidUserResp.getData())) {
log.error("根据jobNumber{},未查询到用户", userId);
return SdmResponse.success(new ArrayList<>());
}
taskMemberVoList = taskMemberVoList.stream().filter(taskMember -> MemberTypeEnum.EXECUTOR.getCode().equals(taskMember.getType()) && userId.equals(taskMember.getUserId())).toList();
if (CollectionUtils.isEmpty(taskMemberVoList)) {
log.error("任务列表中未查询到仿真执行人");
return SdmResponse.success(new ArrayList<>());
}
List<String> myTaskIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
countTask(taskList, todayTmrTaskList, taskCountResp);
}
} else if (type == 3) {
// 仿真负责人是当前用户
if (CollectionUtils.isNotEmpty(taskMemberVoList)) {
SdmResponse<CIDUserResp> cidUserResp = sysUserFeignClient.queryUserDetail(UserQueryReq.builder().userId(userId).build());
if (ObjectUtils.isEmpty(cidUserResp.getData())) {
log.error("根据jobNumber{},未查询到用户", userId);
return SdmResponse.success(new ArrayList<>());
}
taskMemberVoList = taskMemberVoList.stream().filter(taskMember -> MemberTypeEnum.PRINCIPAL.getCode().equals(taskMember.getType()) && userId.equals(taskMember.getUserId())).toList();
if (CollectionUtils.isEmpty(taskMemberVoList)) {
log.error("任务列表中未查询到仿真负责人");
return SdmResponse.success(new ArrayList<>());
}
List<String> myTaskIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
countTask(taskList, todayTmrTaskList, taskCountResp);
}
if (type == 2) {
// 所有任务
countTask(taskList, todayTmrTaskList, taskCountResp);
} else {
// 我分发的、我执行的、我关注的 需要查询当前登陆人信息
SdmResponse<CIDUserResp> cidUserResp = sysUserFeignClient.queryUserDetail(UserQueryReq.builder().userId(userId).build());
if (ObjectUtils.isEmpty(cidUserResp.getData())) {
log.error("根据jobNumber{},未查询到用户", userId);
return SdmResponse.success(new ArrayList<>());
}
CIDUserResp cidUser = cidUserResp.getData();
List<SpdmTaskAttentionMemberVo> taskAttentionMemberVoList = mapper.getAttentionMemberList(taskIdList);
if (CollectionUtils.isEmpty(taskAttentionMemberVoList)) {
log.error("未查询到关注人");
return SdmResponse.success(new ArrayList<>());
if (type == 0) {
// 仿真执行人是当前用户
if (CollectionUtils.isNotEmpty(taskMemberVoList)) {
taskMemberVoList = taskMemberVoList.stream().filter(taskMember -> MemberTypeEnum.EXECUTOR.getCode().equals(taskMember.getType()) && userId.equals(taskMember.getUserId())).toList();
if (CollectionUtils.isEmpty(taskMemberVoList)) {
log.error("任务列表中未查询到仿真执行人");
return SdmResponse.success(new ArrayList<>());
}
List<String> myTaskIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
countTask(taskList, todayTmrTaskList, taskCountResp);
}
} else if (type == 3) {
// 仿真负责人是当前用户
if (CollectionUtils.isNotEmpty(taskMemberVoList)) {
taskMemberVoList = taskMemberVoList.stream().filter(taskMember -> MemberTypeEnum.PRINCIPAL.getCode().equals(taskMember.getType()) && userId.equals(taskMember.getUserId())).toList();
if (CollectionUtils.isEmpty(taskMemberVoList)) {
log.error("任务列表中未查询到仿真负责人");
return SdmResponse.success(new ArrayList<>());
}
List<String> myTaskIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
countTask(taskList, todayTmrTaskList, taskCountResp);
}
} else {
CIDUserResp cidUser = cidUserResp.getData();
List<SpdmTaskAttentionMemberVo> taskAttentionMemberVoList = mapper.getAttentionMemberList(taskIdList);
if (CollectionUtils.isEmpty(taskAttentionMemberVoList)) {
log.error("未查询到关注人");
return SdmResponse.success(new ArrayList<>());
}
// 当前用户的主键id
Long curUserId = cidUser.getUserId();
taskAttentionMemberVoList = taskAttentionMemberVoList.stream().filter(member -> curUserId.equals(member.getUserId())).toList();
if (CollectionUtils.isEmpty(taskAttentionMemberVoList)) {
log.error("任务列表中未查询到仿真执行人3");
return SdmResponse.success(new ArrayList<>());
}
List<String> myTaskIdList = taskAttentionMemberVoList.stream().map(SpdmTaskAttentionMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
countTask(taskList, todayTmrTaskList, taskCountResp);
}
// 当前用户的主键id
Long curUserId = cidUser.getUserId();
taskAttentionMemberVoList = taskAttentionMemberVoList.stream().filter(member -> curUserId.equals(member.getUserId())).toList();
if (CollectionUtils.isEmpty(taskAttentionMemberVoList)) {
log.error("任务列表中未查询到仿真执行人3");
return SdmResponse.success(new ArrayList<>());
}
List<String> myTaskIdList = taskAttentionMemberVoList.stream().map(SpdmTaskAttentionMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
countTask(taskList, todayTmrTaskList, taskCountResp);
}
return SdmResponse.success(taskCountResp);
}