Compare commits

..

2 Commits

2 changed files with 87 additions and 58 deletions

View File

@@ -1,6 +1,7 @@
package com.sdm.project.model.req;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sdm.common.validator.annotation.EnumValue;
import com.sdm.project.common.TaskQryTypeEnum;
import com.sdm.project.model.bo.TaskNodeTag;
@@ -19,8 +20,71 @@ public class SpdmTaskCountReq {
@EnumValue(enumClass = TaskQryTypeEnum.class, message = "type任务类型无效")
private Integer type;
/**
* 任务名称
*/
private String taskName;
/**
* 任务状态
*/
private String exeStatus;
private List<String> exeStatusList;
/**
* 达成情况
*/
private String achieveStatus;
private List<String> achieveStatusList;
/**
* 任务进度
*/
private Integer progress;
/**
* 仿真负责人
*/
@JsonProperty(value = "pMemberList")
private String pMemberList;
/**
* 仿真执行人
*/
@JsonProperty(value = "eMemberList")
private String eMemberList;
private List<TaskNodeTag> idMap;
/**
* 计划开始时间
*/
private List<String> beginTime;
private String beginSTime;
private String beginETime;
/**
* 计划结束时间
*/
private List<String> endTime;
private String endSTime;
private String endETime;
/**
* 实际结束时间
*/
private List<String> finishTime;
private String finishSTime;
private String finishETime;
/**
* 今明任务 筛选计划结束时间为今明两天的
*/
@@ -30,4 +94,23 @@ public class SpdmTaskCountReq {
*/
private String todayTime;
/**
* 排序顺序 按创建时间 0-先序/1-倒序排序
*/
private Integer sortOrder;
private String demandId;
private Boolean convertTag = true;
private String approvalStatus;
private List<String> approvalStatusList;
private List<TaskNodeTag> nodeTypeMap;
private Long userId;
private List<String> filterDiscipline;
}

View File

@@ -1085,75 +1085,21 @@ public class TaskServiceImpl implements ITaskService {
TaskCountResp taskCountResp = new TaskCountResp();
List<String> taskIdList = taskList.stream().map(SpdmTaskVo::getUuid).toList();
List<SpdmTaskMemberVo> taskMemberVoList = mapper.getMemberList(taskIdList, null);
// List<String> realTaskIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getTaskId).distinct().toList();
// 根据负责人信息过滤任务
// taskList = taskList.stream().filter(task -> realTaskIdList.contains(task.getUuid())).toList();
List<SpdmTaskAttentionMemberVo> taskAttentionMemberVoList = mapper.getAttentionMemberList(taskIdList);
if (type == 2) {
// 过滤所有任务
Set<SpdmTaskVo> returnTaskSet = getSpdmTaskVos(taskList, userId, taskMemberVoList);
// 过滤今明任务
Set<SpdmTaskVo> todayReturnTaskSet = getSpdmTaskVos(todayTmrTaskList, userId, taskMemberVoList);
// 去重后的Set转List赋值回任务列表
taskList = new ArrayList<>(returnTaskSet);
todayTmrTaskList = new ArrayList<>(todayReturnTaskSet);
// 所有任务
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();
}
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();
}
List<String> myTaskIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
todayTmrTaskList = todayTmrTaskList.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();
}
List<String> myTaskIdList = taskMemberVoList.stream().map(SpdmTaskMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
todayTmrTaskList = todayTmrTaskList.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();
}
// 当前用户的主键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();
}
List<String> myTaskIdList = taskAttentionMemberVoList.stream().map(SpdmTaskAttentionMemberVo::getTaskId).toList();
taskList = taskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
todayTmrTaskList = todayTmrTaskList.stream().filter(task -> myTaskIdList.contains(task.getUuid())).toList();
countTask(taskList, todayTmrTaskList, taskCountResp);
}
taskList = filterTaskByType(taskList, req.getType(), userId, taskMemberVoList, taskAttentionMemberVoList);
todayTmrTaskList = filterTaskByType(todayTmrTaskList, req.getType(), userId, taskMemberVoList, taskAttentionMemberVoList);
countTask(taskList, todayTmrTaskList, taskCountResp);
}
return SdmResponse.success(taskCountResp);
}