id修改和计数

This commit is contained in:
2025-11-04 18:05:25 +08:00
parent 2375daa889
commit cd78c4368f
24 changed files with 233 additions and 39 deletions

View File

@@ -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";
}

View File

@@ -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;
}

View File

@@ -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];

View File

@@ -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 = "用户组IDuserGroupId为必传参数请补充后重试") Integer userGroupId, @Parameter(description = "用户ID")@RequestParam( value = "userId", required = false) Integer userId) {
public SdmResponse getUserGroupProjectStatistics(@Parameter(description = "用户组ID")@RequestParam( value = "userGroupId" )@NotNull(message = "用户组IDuserGroupId为必传参数请补充后重试") Long userGroupId, @Parameter(description = "用户ID")@RequestParam( value = "userId", required = false) Long userId) {
return nodeService.getUserGroupProjectStatistics(userGroupId,userId);
}

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;

View File

@@ -26,6 +26,6 @@ public class SpdmDemandRelateMemberReq extends BaseEntity {
*/
private String name;
private Integer userId;
private Long userId;
}

View File

@@ -21,6 +21,6 @@ public class SpdmNodeRelateMemberReq extends BaseEntity {
*/
private String name;
private Integer userId;
private Long userId;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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}