id修改和计数
This commit is contained in:
@@ -13,4 +13,8 @@ public class ProjectConstants {
|
||||
public static final int RED_LIGHTER = 1; //红色灯状态(结果异常)
|
||||
public static final int YELLOW_LIGHTER = 2;//黄色灯状态(结果不是特别理想)
|
||||
public static final int GREEN_LIGHTER = 3;//结果非常好
|
||||
|
||||
// 任务管理→我执行的 筛选今明任务
|
||||
public static final String TODAY_TMR_TASKS = "todayTmrTasks";
|
||||
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
|
||||
public class SysGroupMember extends BaseEntity {
|
||||
|
||||
private String groupName;
|
||||
private long groupId;
|
||||
private Long groupId;
|
||||
private String userId;
|
||||
private String userName;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ public class Tools {
|
||||
private static final String ALGORITHM = "AES";
|
||||
private static final int KEY_SIZE = 128;
|
||||
private static final int CACHE_SIZE = 1024;
|
||||
public static final String DATE_YYYY_MM_DD = "yyyy-MM-dd";
|
||||
|
||||
public static byte[] intToBytes(int value) {
|
||||
byte[] src = new byte[4];
|
||||
|
||||
@@ -153,7 +153,7 @@ public class SimulationNodeController implements ISimuluationNodeFeignClient {
|
||||
*/
|
||||
@GetMapping("/getUserGroupProjectStatistics")
|
||||
@Operation(summary = "用户组项目统计", description = "用户组项目统计")
|
||||
public SdmResponse getUserGroupProjectStatistics(@Parameter(description = "用户组ID")@RequestParam( value = "userGroupId" )@NotNull(message = "用户组ID(userGroupId)为必传参数,请补充后重试") Integer userGroupId, @Parameter(description = "用户ID")@RequestParam( value = "userId", required = false) Integer userId) {
|
||||
public SdmResponse getUserGroupProjectStatistics(@Parameter(description = "用户组ID")@RequestParam( value = "userGroupId" )@NotNull(message = "用户组ID(userGroupId)为必传参数,请补充后重试") Long userGroupId, @Parameter(description = "用户ID")@RequestParam( value = "userId", required = false) Long userId) {
|
||||
return nodeService.getUserGroupProjectStatistics(userGroupId,userId);
|
||||
}
|
||||
|
||||
|
||||
@@ -73,4 +73,15 @@ public class SimulationTaskController {
|
||||
return taskService.list(req);
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务列表根据不同执行状态计数(我执行的、我关注的、所有)
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/count")
|
||||
@Operation(summary = "任务列表计数(我执行的、我关注的、所有)", description = "任务列表计数(我执行的、我关注的、所有)")
|
||||
public SdmResponse countByStatus(@RequestBody SpdmTaskListReq req) {
|
||||
return taskService.countByStatus(req);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public interface SimulationNodeMapper extends BaseMapper<SimulationNode> {
|
||||
|
||||
List<SpdmNodeVo> getNodeListByIds(@Param("nodeIdList") List<String> nodeIdList);
|
||||
|
||||
List<UserGroupProjectVo> getUserGroupProjectStatistics(@Param("userGroupId") Integer userGroupId, @Param("userId") Integer userId);
|
||||
List<UserGroupProjectVo> getUserGroupProjectStatistics(@Param("userGroupId") Long userGroupId, @Param("userId") Long userId);
|
||||
|
||||
List<UserGroupTaskCompleteVo> getUserGroupTaskCompleteStatistics(@Param("req") GetUserGroupTaskCompleteStatisticsReq req);
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ public interface SimulationTaskMapper extends BaseMapper<SimulationTask> {
|
||||
|
||||
List<SpdmAnalysisTaskVo> taskList(@Param("req") SpdmAnalysisTaskListReq req, @Param("tenantId") String tenantId, @Param("allNodeIdList") List<String> allNodeIdList, @Param("pos") int pos, @Param("limit") int limit);
|
||||
|
||||
void deleteAttentionByUserIdList(@Param("taskId") String taskId,@Param("userIdList") List<Integer> userIdList);
|
||||
void deleteAttentionByUserIdList(@Param("taskId") String taskId,@Param("userIdList") List<Long> userIdList);
|
||||
|
||||
void saveAttentionList(@Param("attentionList") List<SpdmTaskAttentionReq> attentionList);
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@ import lombok.Data;
|
||||
public class GetUserGroupTaskCompleteStatisticsReq {
|
||||
@Schema(description = "用户组ID")
|
||||
@NotNull(message = "用户组ID不能为空")
|
||||
private Integer userGroupId;
|
||||
private Long userGroupId;
|
||||
|
||||
@Schema(description = "用户ID")
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "标签1")
|
||||
private String tag1;
|
||||
|
||||
@@ -26,6 +26,6 @@ public class SpdmDemandRelateMemberReq extends BaseEntity {
|
||||
*/
|
||||
private String name;
|
||||
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
|
||||
}
|
||||
|
||||
@@ -21,6 +21,6 @@ public class SpdmNodeRelateMemberReq extends BaseEntity {
|
||||
*/
|
||||
private String name;
|
||||
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
|
||||
}
|
||||
|
||||
@@ -14,10 +14,10 @@ public class SpdmTaskAttentionReq extends BaseEntity {
|
||||
private String taskId;
|
||||
|
||||
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
|
||||
List<Integer> addUserIdList;
|
||||
List<Long> addUserIdList;
|
||||
|
||||
List<Integer> cancelUserIdList;
|
||||
List<Long> cancelUserIdList;
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.sdm.project.model.bo.TaskNodeTag;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@@ -19,7 +20,7 @@ public class SpdmTaskListReq {
|
||||
private Integer size;
|
||||
|
||||
/**
|
||||
* 任务类型,0:所有 1:我执行的 2:我关注的
|
||||
* 任务类型,0:我执行的 1:我关注的 2:所有
|
||||
*/
|
||||
@NotNull(message = "type不能为空")
|
||||
private Integer type;
|
||||
@@ -77,5 +78,13 @@ public class SpdmTaskListReq {
|
||||
*/
|
||||
private String finishTime;
|
||||
|
||||
/**
|
||||
* 今明任务 筛选计划结束时间为今明两天的
|
||||
*/
|
||||
private String todayTmrTasks;
|
||||
/**
|
||||
* 今天日期
|
||||
*/
|
||||
private String todayTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.sdm.project.model.resp;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TaskCountResp {
|
||||
@Schema(description = "总数")
|
||||
int total;
|
||||
|
||||
@Schema(description = "今明任务")
|
||||
int todayTmrTasks;
|
||||
|
||||
@Schema(description = "进行中")
|
||||
int inProgress;
|
||||
|
||||
@Schema(description = "已逾期")
|
||||
int postponed;
|
||||
|
||||
@Schema(description = "未开始")
|
||||
int noStarted;
|
||||
|
||||
@Schema(description = "已完成")
|
||||
int completed;
|
||||
|
||||
@Schema(description = "已关闭")
|
||||
int closed;
|
||||
|
||||
@Schema(description = "已暂停")
|
||||
int paused;
|
||||
|
||||
@Schema(description = "已驳回")
|
||||
int rejected;
|
||||
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class UserGroupDifficultyStatisticsVo {
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
private String userName;
|
||||
private Map<Float, Integer> difficultyCount = new HashMap<>();
|
||||
private Integer totalTasks;
|
||||
|
||||
@@ -5,7 +5,7 @@ import lombok.Data;
|
||||
@Data
|
||||
public class UserGroupDifficultyVo {
|
||||
private float difficulty;
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
private String nickname;
|
||||
private Integer groupId;
|
||||
private Long groupId;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import lombok.Data;
|
||||
@Data
|
||||
public class UserGroupProjectVo {
|
||||
private String nodeId;
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
private String nickname;
|
||||
private Integer groupId;
|
||||
private Long groupId;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class UserGroupTaskCompleteStatisticsVo {
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
private String userName;
|
||||
private Map<String, Integer> statusCount = new HashMap<>();
|
||||
private Integer totalTasks;
|
||||
|
||||
@@ -6,6 +6,6 @@ import lombok.Data;
|
||||
public class UserGroupTaskCompleteVo {
|
||||
private String exeStatus;
|
||||
private String nickname;
|
||||
private Integer userId;
|
||||
private Integer groupId;
|
||||
private Long userId;
|
||||
private Long groupId;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public interface INodeService extends IService<SimulationNode> {
|
||||
|
||||
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByProjectIdAndType(Long chooseNodeId, String nextNodeType);
|
||||
|
||||
SdmResponse getUserGroupProjectStatistics(Integer userGroupId, Integer userId);
|
||||
SdmResponse getUserGroupProjectStatistics(Long userGroupId, Long userId);
|
||||
|
||||
SdmResponse getUserGroupTaskCompleteStatistics(GetUserGroupTaskCompleteStatisticsReq req);
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@ public interface ITaskService {
|
||||
|
||||
SdmResponse list(SpdmTaskListReq req);
|
||||
|
||||
SdmResponse countByStatus(SpdmTaskListReq req);
|
||||
|
||||
SdmResponse operation(String taskId, String exeStatus,String achieveStatus,Integer process,String finishTime);
|
||||
|
||||
SdmResponse analysisTaskList(SpdmAnalysisTaskListReq req);
|
||||
@@ -26,7 +28,7 @@ public interface ITaskService {
|
||||
|
||||
SdmResponse analysisRunList(SpdmAnalysisRunListReq req);
|
||||
|
||||
SdmResponse attention(String taskId, List<Integer> addUserIdList,List<Integer> cancelUserIdList);
|
||||
SdmResponse attention(String taskId, List<Long> addUserIdList,List<Long> cancelUserIdList);
|
||||
|
||||
SdmResponse edit(ModifyTaskNode req);
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
||||
spdmDemandRelateMemberReq.setDemandId(uuid);
|
||||
spdmDemandRelateMemberReq.setType(0);
|
||||
spdmDemandRelateMemberReq.setUserId(Integer.parseInt(userId));
|
||||
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
||||
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
||||
allMemberList.add(spdmDemandRelateMemberReq);
|
||||
@@ -103,7 +103,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
||||
spdmDemandRelateMemberReq.setDemandId(uuid);
|
||||
spdmDemandRelateMemberReq.setType(1);
|
||||
spdmDemandRelateMemberReq.setUserId(Integer.parseInt(userId));
|
||||
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
||||
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
||||
allMemberList.add(spdmDemandRelateMemberReq);
|
||||
@@ -169,7 +169,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
||||
spdmDemandRelateMemberReq.setDemandId(uuid);
|
||||
spdmDemandRelateMemberReq.setType(0);
|
||||
spdmDemandRelateMemberReq.setUserId(Integer.parseInt(userId));
|
||||
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
||||
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
||||
allMemberList.add(spdmDemandRelateMemberReq);
|
||||
@@ -182,7 +182,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
||||
spdmDemandRelateMemberReq.setDemandId(uuid);
|
||||
spdmDemandRelateMemberReq.setType(1);
|
||||
spdmDemandRelateMemberReq.setUserId(Integer.parseInt(userId));
|
||||
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
||||
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
||||
allMemberList.add(spdmDemandRelateMemberReq);
|
||||
|
||||
@@ -303,7 +303,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
for (String userId : nodeManagerList.split(",")) {
|
||||
SpdmNodeRelateMemberReq spdmNodeRelateMemberReq = new SpdmNodeRelateMemberReq();
|
||||
spdmNodeRelateMemberReq.setNodeId(addNode.getUuid());
|
||||
spdmNodeRelateMemberReq.setUserId(Integer.parseInt(userId));
|
||||
spdmNodeRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||
spdmNodeRelateMemberReq.setCreateTime(curDateStr);
|
||||
spdmNodeRelateMemberReq.setCreator(jobNumber);
|
||||
allNodeManagerList.add(spdmNodeRelateMemberReq);
|
||||
@@ -410,7 +410,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
for (String userId : nodeManagerList.split(",")) {
|
||||
SpdmNodeRelateMemberReq spdmNodeRelateMemberReq = new SpdmNodeRelateMemberReq();
|
||||
spdmNodeRelateMemberReq.setNodeId(editNode.getUuid());
|
||||
spdmNodeRelateMemberReq.setUserId(Integer.parseInt(userId));
|
||||
spdmNodeRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||
spdmNodeRelateMemberReq.setCreateTime(curDateStr);
|
||||
spdmNodeRelateMemberReq.setCreator(jobNumber);
|
||||
allNodeManagerList.add(spdmNodeRelateMemberReq);
|
||||
@@ -696,19 +696,19 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse getUserGroupProjectStatistics(Integer userGroupId, Integer userId) {
|
||||
public SdmResponse getUserGroupProjectStatistics(Long userGroupId, Long userId) {
|
||||
List<UserGroupProjectVo> userGroupProjectStatistics = this.baseMapper.getUserGroupProjectStatistics(userGroupId, userId);
|
||||
if(CollectionUtils.isEmpty(userGroupProjectStatistics)) {
|
||||
return SdmResponse.success(new ArrayList<>());
|
||||
}
|
||||
|
||||
// 按用户ID统计项目数量
|
||||
Map<Integer, Integer> userProjectCountMap = new HashMap<>();
|
||||
Map<Long, Integer> userProjectCountMap = new HashMap<>();
|
||||
// 存储每个用户的详细信息,使用LinkedHashMap保持插入顺序
|
||||
Map<Integer, UserGroupProjectVo> userId2UserGroupProjectVo = new LinkedHashMap<>();
|
||||
Map<Long, UserGroupProjectVo> userId2UserGroupProjectVo = new LinkedHashMap<>();
|
||||
|
||||
for (UserGroupProjectVo vo : userGroupProjectStatistics) {
|
||||
Integer userIdKey = vo.getUserId();
|
||||
Long userIdKey = vo.getUserId();
|
||||
userProjectCountMap.put(userIdKey, userProjectCountMap.getOrDefault(userIdKey, 0) + 1);
|
||||
// 只保存第一个遇到的用户信息,或者可以考虑保存最新的
|
||||
if (!userId2UserGroupProjectVo.containsKey(userIdKey)) {
|
||||
@@ -719,7 +719,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
// 转换为List<Map<String, Object>>格式,便于前端展示
|
||||
List<Map<String, Object>> userResult = new ArrayList<>();
|
||||
// 添加用户项目统计
|
||||
for (Map.Entry<Integer, Integer> entry : userProjectCountMap.entrySet()) {
|
||||
for (Map.Entry<Long, Integer> entry : userProjectCountMap.entrySet()) {
|
||||
Map<String, Object> item = new HashMap<>();
|
||||
item.put("userId", entry.getKey());
|
||||
item.put("userName", userId2UserGroupProjectVo.get(entry.getKey()).getNickname());
|
||||
@@ -734,13 +734,13 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
List<UserGroupTaskCompleteVo> userGroupTaskCompleteStatistics = this.baseMapper.getUserGroupTaskCompleteStatistics(req);
|
||||
|
||||
// 按用户分组统计任务状态
|
||||
Map<Integer, UserGroupTaskCompleteStatisticsVo> userStatisticsMap = new HashMap<>();
|
||||
Map<Long, UserGroupTaskCompleteStatisticsVo> userStatisticsMap = new HashMap<>();
|
||||
|
||||
// 所有任务执行状态
|
||||
Set<String> allExeStatus = new HashSet<>();
|
||||
// 统计每个用户的各种状态任务数量
|
||||
for (UserGroupTaskCompleteVo item : userGroupTaskCompleteStatistics) {
|
||||
Integer userId = item.getUserId();
|
||||
Long userId = item.getUserId();
|
||||
String exeStatus = item.getExeStatus();
|
||||
|
||||
allExeStatus.add(exeStatus);
|
||||
@@ -774,14 +774,14 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
List<UserGroupDifficultyVo> userGroupDifficultyStatistics = this.baseMapper.getUserGroupDifficultyStatistics(req);
|
||||
|
||||
// 按用户分组统计任务状态
|
||||
Map<Integer, UserGroupDifficultyStatisticsVo> userStatisticsMap = new HashMap<>();
|
||||
Map<Long, UserGroupDifficultyStatisticsVo> userStatisticsMap = new HashMap<>();
|
||||
|
||||
// 所有难度值
|
||||
Set<Float> alldifficultyValue = new HashSet<>();
|
||||
|
||||
// 统计每个用户的各种状态任务数量
|
||||
for (UserGroupDifficultyVo item : userGroupDifficultyStatistics) {
|
||||
Integer userId = item.getUserId();
|
||||
Long userId = item.getUserId();
|
||||
Float difficulty = item.getDifficulty();
|
||||
alldifficultyValue.add(difficulty);
|
||||
|
||||
|
||||
@@ -3,8 +3,11 @@ package com.sdm.project.service.impl;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.common.ThreadLocalContext;
|
||||
import com.sdm.common.entity.constants.ProjectConstants;
|
||||
import com.sdm.common.entity.constants.SystemConstants;
|
||||
import com.sdm.common.utils.Tools;
|
||||
import com.sdm.project.common.MemberTypeEnum;
|
||||
import com.sdm.project.common.TaskExeStatusEnum;
|
||||
import com.sdm.project.dao.SimulationDemandMapper;
|
||||
import com.sdm.project.dao.SimulationNodeMapper;
|
||||
import com.sdm.project.dao.SimulationProjectMapper;
|
||||
@@ -23,6 +26,7 @@ import com.sdm.project.model.req.*;
|
||||
import com.sdm.project.model.resp.GetAllRunResultByTaskIdResp;
|
||||
import com.sdm.project.model.resp.RunResultResp;
|
||||
import com.sdm.project.model.resp.TasKPerformanceResp;
|
||||
import com.sdm.project.model.resp.TaskCountResp;
|
||||
import com.sdm.project.model.vo.*;
|
||||
import com.sdm.project.service.ISimulationPerformanceService;
|
||||
import com.sdm.project.service.ISimulationRunService;
|
||||
@@ -425,6 +429,125 @@ public class TaskServiceImpl implements ITaskService {
|
||||
return SdmResponse.success(jsonObject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse countByStatus(SpdmTaskListReq req) {
|
||||
String tenantId = ThreadLocalContext.getCompany();
|
||||
String jobNumber = ThreadLocalContext.getCommonHeader().getJobNumber();
|
||||
if (StringUtils.isBlank(tenantId) || StringUtils.isBlank(jobNumber)) {
|
||||
log.error("公司和工号都不能为空");
|
||||
return SdmResponse.failed("公司和工号都不能为空");
|
||||
}
|
||||
// 0:我执行的 1:我关注的 2:所有
|
||||
Integer type = req.getType();
|
||||
if (type != 0 && type != 1 && type != 2) {
|
||||
log.error("type必须为0或1或2");
|
||||
return SdmResponse.failed("公司和工号都不能为空");
|
||||
}
|
||||
|
||||
List<SpdmTaskVo> allTaskList = mapper.getTaskList(tenantId, req);
|
||||
// 今明任务
|
||||
req.setTodayTmrTasks(ProjectConstants.TODAY_TMR_TASKS);
|
||||
List<SpdmTaskVo> todayTmrTaskList = mapper.getTaskList(tenantId, req);
|
||||
if (CollectionUtils.isEmpty(allTaskList)) {
|
||||
log.error("根据tenantId:{},未查询到任务", tenantId);
|
||||
return SdmResponse.success(new ArrayList<>());
|
||||
}
|
||||
List<SpdmTaskVo> taskList = new ArrayList<>();
|
||||
List<TaskNodeTag> idMapList = req.getIdMap();
|
||||
if (CollectionUtils.isEmpty(idMapList)) {
|
||||
log.error("任务列表中的idMap不能为空");
|
||||
return SdmResponse.failed("任务列表中的idMap不能为空");
|
||||
}
|
||||
if (idMapList.stream().anyMatch(idMap -> StringUtils.isNotBlank(idMap.getKey()))) {
|
||||
List<TaskNodeTag> realIdMapList = idMapList.stream().filter(idMap -> StringUtils.isNotBlank(idMap.getKey())).toList();
|
||||
TaskNodeTag realTaskNodeTag = realIdMapList.get(realIdMapList.size() - 1);
|
||||
log.info("实际查询节点类型为:{}", realTaskNodeTag);
|
||||
String currentNodeTagId = "";
|
||||
for (SpdmTaskVo spdmTaskVo : allTaskList) {
|
||||
try {
|
||||
currentNodeTagId = getTagProperty(spdmTaskVo, realTaskNodeTag.getValue().replace("T", "t"));
|
||||
if (StringUtils.isNotBlank(currentNodeTagId) && currentNodeTagId.contains(realTaskNodeTag.getKey())) {
|
||||
taskList.add(spdmTaskVo);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
taskList = allTaskList;
|
||||
}
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
log.info("未查询到任务");
|
||||
return SdmResponse.success(new ArrayList<>());
|
||||
}
|
||||
|
||||
TaskCountResp taskCountResp = new TaskCountResp();
|
||||
List<String> taskIdList = taskList.stream().map(SpdmTaskVo::getUuid).toList();
|
||||
List<SpdmTaskMemberVo> taskMemberVoList = mapper.getMemberList(taskIdList, null);
|
||||
countTask(taskList, todayTmrTaskList, taskCountResp);
|
||||
|
||||
if (type == 0) {
|
||||
// 仿真执行人是当前用户
|
||||
if (CollectionUtils.isNotEmpty(taskMemberVoList)) {
|
||||
SpdmUserVo userByJobNumber = demandMapper.getUserByJobNumber(jobNumber);
|
||||
if (ObjectUtils.isEmpty(userByJobNumber)) {
|
||||
log.error("根据jobNumber:{},未查询到用户", jobNumber);
|
||||
return SdmResponse.success(new ArrayList<>());
|
||||
}
|
||||
taskMemberVoList = taskMemberVoList.stream().filter(taskMember -> MemberTypeEnum.EXECUTOR.getCode().equals(taskMember.getType())).toList();
|
||||
if (CollectionUtils.isEmpty(taskMemberVoList)) {
|
||||
log.error("任务列表中未查询到仿真执行人1");
|
||||
return SdmResponse.success(new ArrayList<>());
|
||||
}
|
||||
Long curUserId = userByJobNumber.getId();
|
||||
taskMemberVoList = taskMemberVoList.stream().filter(member -> curUserId.equals(member.getUserId())).toList();
|
||||
if (CollectionUtils.isEmpty(taskMemberVoList)) {
|
||||
log.error("任务列表中未查询到仿真执行人2");
|
||||
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 {
|
||||
SpdmUserVo userByJobNumber = demandMapper.getUserByJobNumber(jobNumber);
|
||||
if (ObjectUtils.isEmpty(userByJobNumber)) {
|
||||
log.error("根据jobNumber:{},未查询到用户", jobNumber);
|
||||
return SdmResponse.success(new ArrayList<>());
|
||||
}
|
||||
List<SpdmTaskAttentionMemberVo> taskAttentionMemberVoList = mapper.getAttentionMemberList(taskIdList);
|
||||
if (CollectionUtils.isEmpty(taskAttentionMemberVoList)) {
|
||||
log.error("未查询到关注人");
|
||||
return SdmResponse.success(new ArrayList<>());
|
||||
}
|
||||
// 当前用户的主键id
|
||||
Long curUserId = userByJobNumber.getId();
|
||||
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);
|
||||
}
|
||||
|
||||
private void countTask(List<SpdmTaskVo> taskList, List<SpdmTaskVo> todayTmrTaskList, TaskCountResp taskCountResp) {
|
||||
// 计数
|
||||
taskCountResp.setTotal(taskList.size());
|
||||
taskCountResp.setTodayTmrTasks(taskList.size());
|
||||
taskCountResp.setInProgress((int) taskList.stream().filter(i -> TaskExeStatusEnum.IN_PROGRESS.getCode().equals(i.getExeStatus())).count());
|
||||
taskCountResp.setPostponed((int) taskList.stream().filter(i -> TaskExeStatusEnum.POSTPONED.getCode().equals(i.getExeStatus())).count());
|
||||
taskCountResp.setNoStarted((int) taskList.stream().filter(i -> TaskExeStatusEnum.NO_STARTED.getCode().equals(i.getExeStatus())).count());
|
||||
taskCountResp.setCompleted((int) taskList.stream().filter(i -> TaskExeStatusEnum.COMPLETED.getCode().equals(i.getExeStatus())).count());
|
||||
taskCountResp.setClosed((int) taskList.stream().filter(i -> TaskExeStatusEnum.CLOSED.getCode().equals(i.getExeStatus())).count());
|
||||
taskCountResp.setPaused((int) taskList.stream().filter(i -> TaskExeStatusEnum.PAUSED.getCode().equals(i.getExeStatus())).count());
|
||||
taskCountResp.setRejected((int) taskList.stream().filter(i -> TaskExeStatusEnum.REJECTED.getCode().equals(i.getExeStatus())).count());
|
||||
taskCountResp.setTodayTmrTasks((int) taskList.stream().filter(todayTmrTaskList::contains).count());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SdmResponse operation(String taskId, String exeStatus, String achieveStatus, Integer process, String finishTime) {
|
||||
@@ -645,7 +768,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse attention(String taskId, List<Integer> addUserIdList, List<Integer> cancelUserIdList) {
|
||||
public SdmResponse attention(String taskId, List<Long> addUserIdList, List<Long> cancelUserIdList) {
|
||||
if (StringUtils.isBlank(taskId) || (CollectionUtils.isEmpty(addUserIdList) && CollectionUtils.isEmpty(cancelUserIdList))) {
|
||||
return SdmResponse.failed("参数不正确");
|
||||
}
|
||||
@@ -659,7 +782,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
||||
String jobNumber = ThreadLocalContext.getCommonHeader().getJobNumber();
|
||||
// 关注
|
||||
for (Integer userId : addUserIdList) {
|
||||
for (Long userId : addUserIdList) {
|
||||
SpdmTaskAttentionReq spdmTaskAttentionReq = new SpdmTaskAttentionReq();
|
||||
spdmTaskAttentionReq.setTaskId(taskId);
|
||||
spdmTaskAttentionReq.setUserId(userId);
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
<if test="task.progress != null and task.progress != ''">
|
||||
progress = #{task.progress},
|
||||
</if>
|
||||
<if test="task.finishTime != null and task.finishTime != ''">
|
||||
finish_time = #{finishTime},
|
||||
</if>
|
||||
<if test="task.updater != null and task.updater != ''">
|
||||
updater = #{task.updater},
|
||||
</if>
|
||||
@@ -77,6 +80,12 @@
|
||||
and STR_TO_DATE(end_time,'%Y-%m-%d') <= #{req.endTime}
|
||||
]]>
|
||||
</if>
|
||||
<if test="req.todayTmrTasks != null and req.todayTmrTasks != ''">
|
||||
<![CDATA[
|
||||
and STR_TO_DATE(end_time,'%Y-%m-%d') >= CURRENT_DATE()
|
||||
and STR_TO_DATE(end_time,'%Y-%m-%d') <= DATE_ADD(CURRENT_DATE(), INTERVAL 2 DAY) ;
|
||||
]]>
|
||||
</if>
|
||||
<if test="req.finishTime != null and req.finishTime != ''">
|
||||
<![CDATA[
|
||||
and STR_TO_DATE(finish_time,'%Y-%m-%d') <= #{req.finishTime}
|
||||
|
||||
Reference in New Issue
Block a user