id修改和计数
This commit is contained in:
@@ -13,4 +13,8 @@ public class ProjectConstants {
|
|||||||
public static final int RED_LIGHTER = 1; //红色灯状态(结果异常)
|
public static final int RED_LIGHTER = 1; //红色灯状态(结果异常)
|
||||||
public static final int YELLOW_LIGHTER = 2;//黄色灯状态(结果不是特别理想)
|
public static final int YELLOW_LIGHTER = 2;//黄色灯状态(结果不是特别理想)
|
||||||
public static final int GREEN_LIGHTER = 3;//结果非常好
|
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 {
|
public class SysGroupMember extends BaseEntity {
|
||||||
|
|
||||||
private String groupName;
|
private String groupName;
|
||||||
private long groupId;
|
private Long groupId;
|
||||||
private String userId;
|
private String userId;
|
||||||
private String userName;
|
private String userName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class Tools {
|
|||||||
private static final String ALGORITHM = "AES";
|
private static final String ALGORITHM = "AES";
|
||||||
private static final int KEY_SIZE = 128;
|
private static final int KEY_SIZE = 128;
|
||||||
private static final int CACHE_SIZE = 1024;
|
private static final int CACHE_SIZE = 1024;
|
||||||
|
public static final String DATE_YYYY_MM_DD = "yyyy-MM-dd";
|
||||||
|
|
||||||
public static byte[] intToBytes(int value) {
|
public static byte[] intToBytes(int value) {
|
||||||
byte[] src = new byte[4];
|
byte[] src = new byte[4];
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ public class SimulationNodeController implements ISimuluationNodeFeignClient {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/getUserGroupProjectStatistics")
|
@GetMapping("/getUserGroupProjectStatistics")
|
||||||
@Operation(summary = "用户组项目统计", description = "用户组项目统计")
|
@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);
|
return nodeService.getUserGroupProjectStatistics(userGroupId,userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,4 +73,15 @@ public class SimulationTaskController {
|
|||||||
return taskService.list(req);
|
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<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);
|
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);
|
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);
|
void saveAttentionList(@Param("attentionList") List<SpdmTaskAttentionReq> attentionList);
|
||||||
|
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import lombok.Data;
|
|||||||
public class GetUserGroupTaskCompleteStatisticsReq {
|
public class GetUserGroupTaskCompleteStatisticsReq {
|
||||||
@Schema(description = "用户组ID")
|
@Schema(description = "用户组ID")
|
||||||
@NotNull(message = "用户组ID不能为空")
|
@NotNull(message = "用户组ID不能为空")
|
||||||
private Integer userGroupId;
|
private Long userGroupId;
|
||||||
|
|
||||||
@Schema(description = "用户ID")
|
@Schema(description = "用户ID")
|
||||||
private Integer userId;
|
private Long userId;
|
||||||
|
|
||||||
@Schema(description = "标签1")
|
@Schema(description = "标签1")
|
||||||
private String tag1;
|
private String tag1;
|
||||||
|
|||||||
@@ -26,6 +26,6 @@ public class SpdmDemandRelateMemberReq extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private Integer userId;
|
private Long userId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,6 @@ public class SpdmNodeRelateMemberReq extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private Integer userId;
|
private Long userId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ public class SpdmTaskAttentionReq extends BaseEntity {
|
|||||||
private String taskId;
|
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 jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
@@ -19,7 +20,7 @@ public class SpdmTaskListReq {
|
|||||||
private Integer size;
|
private Integer size;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务类型,0:所有 1:我执行的 2:我关注的
|
* 任务类型,0:我执行的 1:我关注的 2:所有
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "type不能为空")
|
@NotNull(message = "type不能为空")
|
||||||
private Integer type;
|
private Integer type;
|
||||||
@@ -77,5 +78,13 @@ public class SpdmTaskListReq {
|
|||||||
*/
|
*/
|
||||||
private String finishTime;
|
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
|
@Data
|
||||||
public class UserGroupDifficultyStatisticsVo {
|
public class UserGroupDifficultyStatisticsVo {
|
||||||
private Integer userId;
|
private Long userId;
|
||||||
private String userName;
|
private String userName;
|
||||||
private Map<Float, Integer> difficultyCount = new HashMap<>();
|
private Map<Float, Integer> difficultyCount = new HashMap<>();
|
||||||
private Integer totalTasks;
|
private Integer totalTasks;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class UserGroupDifficultyVo {
|
public class UserGroupDifficultyVo {
|
||||||
private float difficulty;
|
private float difficulty;
|
||||||
private Integer userId;
|
private Long userId;
|
||||||
private String nickname;
|
private String nickname;
|
||||||
private Integer groupId;
|
private Long groupId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class UserGroupProjectVo {
|
public class UserGroupProjectVo {
|
||||||
private String nodeId;
|
private String nodeId;
|
||||||
private Integer userId;
|
private Long userId;
|
||||||
private String nickname;
|
private String nickname;
|
||||||
private Integer groupId;
|
private Long groupId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class UserGroupTaskCompleteStatisticsVo {
|
public class UserGroupTaskCompleteStatisticsVo {
|
||||||
private Integer userId;
|
private Long userId;
|
||||||
private String userName;
|
private String userName;
|
||||||
private Map<String, Integer> statusCount = new HashMap<>();
|
private Map<String, Integer> statusCount = new HashMap<>();
|
||||||
private Integer totalTasks;
|
private Integer totalTasks;
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ import lombok.Data;
|
|||||||
public class UserGroupTaskCompleteVo {
|
public class UserGroupTaskCompleteVo {
|
||||||
private String exeStatus;
|
private String exeStatus;
|
||||||
private String nickname;
|
private String nickname;
|
||||||
private Integer userId;
|
private Long userId;
|
||||||
private Integer groupId;
|
private Long groupId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public interface INodeService extends IService<SimulationNode> {
|
|||||||
|
|
||||||
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByProjectIdAndType(Long chooseNodeId, String nextNodeType);
|
SdmResponse<List<AllNodeByProjectIdAndTypeResp>> getAllNodeByProjectIdAndType(Long chooseNodeId, String nextNodeType);
|
||||||
|
|
||||||
SdmResponse getUserGroupProjectStatistics(Integer userGroupId, Integer userId);
|
SdmResponse getUserGroupProjectStatistics(Long userGroupId, Long userId);
|
||||||
|
|
||||||
SdmResponse getUserGroupTaskCompleteStatistics(GetUserGroupTaskCompleteStatisticsReq req);
|
SdmResponse getUserGroupTaskCompleteStatistics(GetUserGroupTaskCompleteStatisticsReq req);
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ public interface ITaskService {
|
|||||||
|
|
||||||
SdmResponse list(SpdmTaskListReq req);
|
SdmResponse list(SpdmTaskListReq req);
|
||||||
|
|
||||||
|
SdmResponse countByStatus(SpdmTaskListReq req);
|
||||||
|
|
||||||
SdmResponse operation(String taskId, String exeStatus,String achieveStatus,Integer process,String finishTime);
|
SdmResponse operation(String taskId, String exeStatus,String achieveStatus,Integer process,String finishTime);
|
||||||
|
|
||||||
SdmResponse analysisTaskList(SpdmAnalysisTaskListReq req);
|
SdmResponse analysisTaskList(SpdmAnalysisTaskListReq req);
|
||||||
@@ -26,7 +28,7 @@ public interface ITaskService {
|
|||||||
|
|
||||||
SdmResponse analysisRunList(SpdmAnalysisRunListReq req);
|
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);
|
SdmResponse edit(ModifyTaskNode req);
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
|||||||
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
||||||
spdmDemandRelateMemberReq.setDemandId(uuid);
|
spdmDemandRelateMemberReq.setDemandId(uuid);
|
||||||
spdmDemandRelateMemberReq.setType(0);
|
spdmDemandRelateMemberReq.setType(0);
|
||||||
spdmDemandRelateMemberReq.setUserId(Integer.parseInt(userId));
|
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||||
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
||||||
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
||||||
allMemberList.add(spdmDemandRelateMemberReq);
|
allMemberList.add(spdmDemandRelateMemberReq);
|
||||||
@@ -103,7 +103,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
|||||||
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
||||||
spdmDemandRelateMemberReq.setDemandId(uuid);
|
spdmDemandRelateMemberReq.setDemandId(uuid);
|
||||||
spdmDemandRelateMemberReq.setType(1);
|
spdmDemandRelateMemberReq.setType(1);
|
||||||
spdmDemandRelateMemberReq.setUserId(Integer.parseInt(userId));
|
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||||
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
||||||
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
||||||
allMemberList.add(spdmDemandRelateMemberReq);
|
allMemberList.add(spdmDemandRelateMemberReq);
|
||||||
@@ -169,7 +169,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
|||||||
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
||||||
spdmDemandRelateMemberReq.setDemandId(uuid);
|
spdmDemandRelateMemberReq.setDemandId(uuid);
|
||||||
spdmDemandRelateMemberReq.setType(0);
|
spdmDemandRelateMemberReq.setType(0);
|
||||||
spdmDemandRelateMemberReq.setUserId(Integer.parseInt(userId));
|
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||||
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
||||||
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
||||||
allMemberList.add(spdmDemandRelateMemberReq);
|
allMemberList.add(spdmDemandRelateMemberReq);
|
||||||
@@ -182,7 +182,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
|||||||
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
SpdmDemandRelateMemberReq spdmDemandRelateMemberReq = new SpdmDemandRelateMemberReq();
|
||||||
spdmDemandRelateMemberReq.setDemandId(uuid);
|
spdmDemandRelateMemberReq.setDemandId(uuid);
|
||||||
spdmDemandRelateMemberReq.setType(1);
|
spdmDemandRelateMemberReq.setType(1);
|
||||||
spdmDemandRelateMemberReq.setUserId(Integer.parseInt(userId));
|
spdmDemandRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||||
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
spdmDemandRelateMemberReq.setCreateTime(curDateStr);
|
||||||
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
spdmDemandRelateMemberReq.setCreator(jobNumber);
|
||||||
allMemberList.add(spdmDemandRelateMemberReq);
|
allMemberList.add(spdmDemandRelateMemberReq);
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
|||||||
for (String userId : nodeManagerList.split(",")) {
|
for (String userId : nodeManagerList.split(",")) {
|
||||||
SpdmNodeRelateMemberReq spdmNodeRelateMemberReq = new SpdmNodeRelateMemberReq();
|
SpdmNodeRelateMemberReq spdmNodeRelateMemberReq = new SpdmNodeRelateMemberReq();
|
||||||
spdmNodeRelateMemberReq.setNodeId(addNode.getUuid());
|
spdmNodeRelateMemberReq.setNodeId(addNode.getUuid());
|
||||||
spdmNodeRelateMemberReq.setUserId(Integer.parseInt(userId));
|
spdmNodeRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||||
spdmNodeRelateMemberReq.setCreateTime(curDateStr);
|
spdmNodeRelateMemberReq.setCreateTime(curDateStr);
|
||||||
spdmNodeRelateMemberReq.setCreator(jobNumber);
|
spdmNodeRelateMemberReq.setCreator(jobNumber);
|
||||||
allNodeManagerList.add(spdmNodeRelateMemberReq);
|
allNodeManagerList.add(spdmNodeRelateMemberReq);
|
||||||
@@ -410,7 +410,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
|||||||
for (String userId : nodeManagerList.split(",")) {
|
for (String userId : nodeManagerList.split(",")) {
|
||||||
SpdmNodeRelateMemberReq spdmNodeRelateMemberReq = new SpdmNodeRelateMemberReq();
|
SpdmNodeRelateMemberReq spdmNodeRelateMemberReq = new SpdmNodeRelateMemberReq();
|
||||||
spdmNodeRelateMemberReq.setNodeId(editNode.getUuid());
|
spdmNodeRelateMemberReq.setNodeId(editNode.getUuid());
|
||||||
spdmNodeRelateMemberReq.setUserId(Integer.parseInt(userId));
|
spdmNodeRelateMemberReq.setUserId(Long.valueOf(userId));
|
||||||
spdmNodeRelateMemberReq.setCreateTime(curDateStr);
|
spdmNodeRelateMemberReq.setCreateTime(curDateStr);
|
||||||
spdmNodeRelateMemberReq.setCreator(jobNumber);
|
spdmNodeRelateMemberReq.setCreator(jobNumber);
|
||||||
allNodeManagerList.add(spdmNodeRelateMemberReq);
|
allNodeManagerList.add(spdmNodeRelateMemberReq);
|
||||||
@@ -696,19 +696,19 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SdmResponse getUserGroupProjectStatistics(Integer userGroupId, Integer userId) {
|
public SdmResponse getUserGroupProjectStatistics(Long userGroupId, Long userId) {
|
||||||
List<UserGroupProjectVo> userGroupProjectStatistics = this.baseMapper.getUserGroupProjectStatistics(userGroupId, userId);
|
List<UserGroupProjectVo> userGroupProjectStatistics = this.baseMapper.getUserGroupProjectStatistics(userGroupId, userId);
|
||||||
if(CollectionUtils.isEmpty(userGroupProjectStatistics)) {
|
if(CollectionUtils.isEmpty(userGroupProjectStatistics)) {
|
||||||
return SdmResponse.success(new ArrayList<>());
|
return SdmResponse.success(new ArrayList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按用户ID统计项目数量
|
// 按用户ID统计项目数量
|
||||||
Map<Integer, Integer> userProjectCountMap = new HashMap<>();
|
Map<Long, Integer> userProjectCountMap = new HashMap<>();
|
||||||
// 存储每个用户的详细信息,使用LinkedHashMap保持插入顺序
|
// 存储每个用户的详细信息,使用LinkedHashMap保持插入顺序
|
||||||
Map<Integer, UserGroupProjectVo> userId2UserGroupProjectVo = new LinkedHashMap<>();
|
Map<Long, UserGroupProjectVo> userId2UserGroupProjectVo = new LinkedHashMap<>();
|
||||||
|
|
||||||
for (UserGroupProjectVo vo : userGroupProjectStatistics) {
|
for (UserGroupProjectVo vo : userGroupProjectStatistics) {
|
||||||
Integer userIdKey = vo.getUserId();
|
Long userIdKey = vo.getUserId();
|
||||||
userProjectCountMap.put(userIdKey, userProjectCountMap.getOrDefault(userIdKey, 0) + 1);
|
userProjectCountMap.put(userIdKey, userProjectCountMap.getOrDefault(userIdKey, 0) + 1);
|
||||||
// 只保存第一个遇到的用户信息,或者可以考虑保存最新的
|
// 只保存第一个遇到的用户信息,或者可以考虑保存最新的
|
||||||
if (!userId2UserGroupProjectVo.containsKey(userIdKey)) {
|
if (!userId2UserGroupProjectVo.containsKey(userIdKey)) {
|
||||||
@@ -719,7 +719,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
|||||||
// 转换为List<Map<String, Object>>格式,便于前端展示
|
// 转换为List<Map<String, Object>>格式,便于前端展示
|
||||||
List<Map<String, Object>> userResult = new ArrayList<>();
|
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<>();
|
Map<String, Object> item = new HashMap<>();
|
||||||
item.put("userId", entry.getKey());
|
item.put("userId", entry.getKey());
|
||||||
item.put("userName", userId2UserGroupProjectVo.get(entry.getKey()).getNickname());
|
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);
|
List<UserGroupTaskCompleteVo> userGroupTaskCompleteStatistics = this.baseMapper.getUserGroupTaskCompleteStatistics(req);
|
||||||
|
|
||||||
// 按用户分组统计任务状态
|
// 按用户分组统计任务状态
|
||||||
Map<Integer, UserGroupTaskCompleteStatisticsVo> userStatisticsMap = new HashMap<>();
|
Map<Long, UserGroupTaskCompleteStatisticsVo> userStatisticsMap = new HashMap<>();
|
||||||
|
|
||||||
// 所有任务执行状态
|
// 所有任务执行状态
|
||||||
Set<String> allExeStatus = new HashSet<>();
|
Set<String> allExeStatus = new HashSet<>();
|
||||||
// 统计每个用户的各种状态任务数量
|
// 统计每个用户的各种状态任务数量
|
||||||
for (UserGroupTaskCompleteVo item : userGroupTaskCompleteStatistics) {
|
for (UserGroupTaskCompleteVo item : userGroupTaskCompleteStatistics) {
|
||||||
Integer userId = item.getUserId();
|
Long userId = item.getUserId();
|
||||||
String exeStatus = item.getExeStatus();
|
String exeStatus = item.getExeStatus();
|
||||||
|
|
||||||
allExeStatus.add(exeStatus);
|
allExeStatus.add(exeStatus);
|
||||||
@@ -774,14 +774,14 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
|||||||
List<UserGroupDifficultyVo> userGroupDifficultyStatistics = this.baseMapper.getUserGroupDifficultyStatistics(req);
|
List<UserGroupDifficultyVo> userGroupDifficultyStatistics = this.baseMapper.getUserGroupDifficultyStatistics(req);
|
||||||
|
|
||||||
// 按用户分组统计任务状态
|
// 按用户分组统计任务状态
|
||||||
Map<Integer, UserGroupDifficultyStatisticsVo> userStatisticsMap = new HashMap<>();
|
Map<Long, UserGroupDifficultyStatisticsVo> userStatisticsMap = new HashMap<>();
|
||||||
|
|
||||||
// 所有难度值
|
// 所有难度值
|
||||||
Set<Float> alldifficultyValue = new HashSet<>();
|
Set<Float> alldifficultyValue = new HashSet<>();
|
||||||
|
|
||||||
// 统计每个用户的各种状态任务数量
|
// 统计每个用户的各种状态任务数量
|
||||||
for (UserGroupDifficultyVo item : userGroupDifficultyStatistics) {
|
for (UserGroupDifficultyVo item : userGroupDifficultyStatistics) {
|
||||||
Integer userId = item.getUserId();
|
Long userId = item.getUserId();
|
||||||
Float difficulty = item.getDifficulty();
|
Float difficulty = item.getDifficulty();
|
||||||
alldifficultyValue.add(difficulty);
|
alldifficultyValue.add(difficulty);
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,11 @@ package com.sdm.project.service.impl;
|
|||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.sdm.common.common.SdmResponse;
|
import com.sdm.common.common.SdmResponse;
|
||||||
import com.sdm.common.common.ThreadLocalContext;
|
import com.sdm.common.common.ThreadLocalContext;
|
||||||
|
import com.sdm.common.entity.constants.ProjectConstants;
|
||||||
import com.sdm.common.entity.constants.SystemConstants;
|
import com.sdm.common.entity.constants.SystemConstants;
|
||||||
|
import com.sdm.common.utils.Tools;
|
||||||
import com.sdm.project.common.MemberTypeEnum;
|
import com.sdm.project.common.MemberTypeEnum;
|
||||||
|
import com.sdm.project.common.TaskExeStatusEnum;
|
||||||
import com.sdm.project.dao.SimulationDemandMapper;
|
import com.sdm.project.dao.SimulationDemandMapper;
|
||||||
import com.sdm.project.dao.SimulationNodeMapper;
|
import com.sdm.project.dao.SimulationNodeMapper;
|
||||||
import com.sdm.project.dao.SimulationProjectMapper;
|
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.GetAllRunResultByTaskIdResp;
|
||||||
import com.sdm.project.model.resp.RunResultResp;
|
import com.sdm.project.model.resp.RunResultResp;
|
||||||
import com.sdm.project.model.resp.TasKPerformanceResp;
|
import com.sdm.project.model.resp.TasKPerformanceResp;
|
||||||
|
import com.sdm.project.model.resp.TaskCountResp;
|
||||||
import com.sdm.project.model.vo.*;
|
import com.sdm.project.model.vo.*;
|
||||||
import com.sdm.project.service.ISimulationPerformanceService;
|
import com.sdm.project.service.ISimulationPerformanceService;
|
||||||
import com.sdm.project.service.ISimulationRunService;
|
import com.sdm.project.service.ISimulationRunService;
|
||||||
@@ -425,6 +429,125 @@ public class TaskServiceImpl implements ITaskService {
|
|||||||
return SdmResponse.success(jsonObject);
|
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
|
@Override
|
||||||
public SdmResponse operation(String taskId, String exeStatus, String achieveStatus, Integer process, String finishTime) {
|
public SdmResponse operation(String taskId, String exeStatus, String achieveStatus, Integer process, String finishTime) {
|
||||||
@@ -645,7 +768,7 @@ public class TaskServiceImpl implements ITaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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))) {
|
if (StringUtils.isBlank(taskId) || (CollectionUtils.isEmpty(addUserIdList) && CollectionUtils.isEmpty(cancelUserIdList))) {
|
||||||
return SdmResponse.failed("参数不正确");
|
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 curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
||||||
String jobNumber = ThreadLocalContext.getCommonHeader().getJobNumber();
|
String jobNumber = ThreadLocalContext.getCommonHeader().getJobNumber();
|
||||||
// 关注
|
// 关注
|
||||||
for (Integer userId : addUserIdList) {
|
for (Long userId : addUserIdList) {
|
||||||
SpdmTaskAttentionReq spdmTaskAttentionReq = new SpdmTaskAttentionReq();
|
SpdmTaskAttentionReq spdmTaskAttentionReq = new SpdmTaskAttentionReq();
|
||||||
spdmTaskAttentionReq.setTaskId(taskId);
|
spdmTaskAttentionReq.setTaskId(taskId);
|
||||||
spdmTaskAttentionReq.setUserId(userId);
|
spdmTaskAttentionReq.setUserId(userId);
|
||||||
|
|||||||
@@ -22,6 +22,9 @@
|
|||||||
<if test="task.progress != null and task.progress != ''">
|
<if test="task.progress != null and task.progress != ''">
|
||||||
progress = #{task.progress},
|
progress = #{task.progress},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="task.finishTime != null and task.finishTime != ''">
|
||||||
|
finish_time = #{finishTime},
|
||||||
|
</if>
|
||||||
<if test="task.updater != null and task.updater != ''">
|
<if test="task.updater != null and task.updater != ''">
|
||||||
updater = #{task.updater},
|
updater = #{task.updater},
|
||||||
</if>
|
</if>
|
||||||
@@ -77,6 +80,12 @@
|
|||||||
and STR_TO_DATE(end_time,'%Y-%m-%d') <= #{req.endTime}
|
and STR_TO_DATE(end_time,'%Y-%m-%d') <= #{req.endTime}
|
||||||
]]>
|
]]>
|
||||||
</if>
|
</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 != ''">
|
<if test="req.finishTime != null and req.finishTime != ''">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
and STR_TO_DATE(finish_time,'%Y-%m-%d') <= #{req.finishTime}
|
and STR_TO_DATE(finish_time,'%Y-%m-%d') <= #{req.finishTime}
|
||||||
|
|||||||
Reference in New Issue
Block a user