1、下发任务时,新增关注人参数,将关注人和下发的任务进行关联

2、修改项目列表中统计分析学科相关统计图功能
This commit is contained in:
2026-01-19 10:45:56 +08:00
parent 4c12c8e5c3
commit 5b936a1d6c
4 changed files with 125 additions and 23 deletions

View File

@@ -0,0 +1,3 @@
ALTER TABLE simulation_performance_extra MODIFY COLUMN valueType varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL;
ALTER TABLE simulation_performance_extra MODIFY COLUMN propertyValue varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL;
ALTER TABLE simulation_performance_extra MODIFY COLUMN propertyName varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL;

View File

@@ -276,7 +276,7 @@ public class TaskNode extends BaseEntity {
/**
* 关注人
*/
// @JsonProperty(value = "aMemberList")
// private List<CIDUserResp> aMemberList;
@JsonProperty(value = "aMemberList")
private String aMemberList;
}

View File

@@ -699,25 +699,24 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
response = SdmResponse.failed("新增任务失败");
return response;
}
// List<SpdmTaskAttentionReq> attentionList = new ArrayList<>();
// String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
// for (TaskNode taskNode : taskNodeList) {
// if (CollectionUtils.isEmpty(taskNode.getAMemberList())) {
// continue;
// }
// for (Long userId : taskNode.getAMemberList().stream().map(CIDUserResp::getUserId).toList()) {
// SpdmTaskAttentionReq spdmTaskAttentionReq = new SpdmTaskAttentionReq();
// spdmTaskAttentionReq.setTaskId(taskNode.getUuid());
// spdmTaskAttentionReq.setUserId(userId);
// spdmTaskAttentionReq.setCreateTime(curDateStr);
// spdmTaskAttentionReq.setCreator(jobNumber);
// attentionList.add(spdmTaskAttentionReq);
// }
// }
// if (CollectionUtils.isNotEmpty(attentionList)) {
// taskMapper.saveAttentionList(attentionList);
// }
List<SpdmTaskAttentionReq> attentionList = new ArrayList<>();
String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
for (TaskNode taskNode : taskNodeList) {
if (StringUtils.isBlank(taskNode.getAMemberList())) {
continue;
}
for (Long userId : Arrays.stream(taskNode.getAMemberList().split(",")).map(Long::valueOf).toList()) {
SpdmTaskAttentionReq spdmTaskAttentionReq = new SpdmTaskAttentionReq();
spdmTaskAttentionReq.setTaskId(taskNode.getUuid());
spdmTaskAttentionReq.setUserId(userId);
spdmTaskAttentionReq.setCreateTime(curDateStr);
spdmTaskAttentionReq.setCreator(jobNumber);
attentionList.add(spdmTaskAttentionReq);
}
}
if (CollectionUtils.isNotEmpty(attentionList)) {
taskMapper.saveAttentionList(attentionList);
}
taskNodeMap = taskNodeList.stream().collect(Collectors.groupingBy(
TaskNode::getUuid,
Collectors.collectingAndThen(

View File

@@ -1807,6 +1807,38 @@ public class TaskServiceImpl implements ITaskService {
return SdmResponse.success(resultResponse);
}
String resultTagType = req.getResultTagType();
if ("tag6".equals(resultTagType)) {
// 按tag分组统计任务状态
Map<String, CommonStatisticsVo> taskStatisticsMap = new HashMap<>();
List<CommonGetCompleteFromTaskVo> commonCompleteStatisticsFromTask = new ArrayList<>();
for (SpdmTaskVo taskVo : taskList) {
CommonGetCompleteFromTaskVo commonGetCompleteFromTaskVo = new CommonGetCompleteFromTaskVo();
commonGetCompleteFromTaskVo.setNodeName(taskVo.getDiscipline());
commonGetCompleteFromTaskVo.setExeStatus(taskVo.getExeStatus());
commonCompleteStatisticsFromTask.add(commonGetCompleteFromTaskVo);
}
// 统计每个tag的各种状态任务数量
for (CommonGetCompleteFromTaskVo item : commonCompleteStatisticsFromTask) {
String name = item.getNodeName();
CommonStatisticsVo stat = taskStatisticsMap.getOrDefault(name, new CommonStatisticsVo());
stat.setName(name);
Map<String, Integer> statusCount = stat.getStatusCount();
if (statusCount == null) {
statusCount = new HashMap<>();
stat.setStatusCount(statusCount);
}
String exeStatus = item.getExeStatus();
allExeStatus.add(exeStatus);
statusCount.put(exeStatus, statusCount.getOrDefault(exeStatus, 0) + 1);
taskStatisticsMap.put(name, stat);
}
// 转换为列表返回
List<CommonStatisticsVo> taskResult = new ArrayList<>(taskStatisticsMap.values());
JSONObject resultResponse = new JSONObject();
resultResponse.put("allExeStatus", allExeStatus);
resultResponse.put("result", taskResult);
return SdmResponse.success(resultResponse);
}
List<String> nodeIdList = new ArrayList<>();
for (SpdmTaskVo taskVo : taskList) {
try {
@@ -1914,8 +1946,45 @@ public class TaskServiceImpl implements ITaskService {
)
));
String resultTagType = req.getResultTagType();
List<String> nodeIdList = new ArrayList<>();
SpdmTaskVo eachTaskVo;
List<CommonGetCompleteFromPerformanceVo> commonCompleteStatisticsFromPerformance = new ArrayList<>();
if ("tag6".equals(resultTagType)) {
for (PerformanceNodePo performanceNodePo : performanceList) {
eachTaskVo = taskMap.get(performanceNodePo.getTaskId());
CommonGetCompleteFromPerformanceVo commonGetCompleteFromPerformanceVo = new CommonGetCompleteFromPerformanceVo();
commonGetCompleteFromPerformanceVo.setNodeName(eachTaskVo.getDiscipline());
commonGetCompleteFromPerformanceVo.setCompleteStatus(StringUtils.isNotBlank(performanceNodePo.getCompleteStatus()) ?
performanceNodePo.getCompleteStatus() : RunPerformanceStatusEnum.UNCOMPLETED.getCode());
commonCompleteStatisticsFromPerformance.add(commonGetCompleteFromPerformanceVo);
}
// 按tag分组统计指标状态
Map<String, CommonStatisticsVo> performanceStatisticsMap = new HashMap<>();
// 统计每个tag的各种状态指标数量
for (CommonGetCompleteFromPerformanceVo item : commonCompleteStatisticsFromPerformance) {
String nodeName = item.getNodeName();
CommonStatisticsVo stat = performanceStatisticsMap.getOrDefault(nodeName, new CommonStatisticsVo());
stat.setName(nodeName);
Map<String, Integer> statusCount = stat.getStatusCount();
if (statusCount == null) {
statusCount = new HashMap<>();
stat.setStatusCount(statusCount);
}
String completeStatus = item.getCompleteStatus();
allExeStatus.add(completeStatus);
statusCount.put(completeStatus, statusCount.getOrDefault(completeStatus, 0) + 1);
performanceStatisticsMap.put(nodeName, stat);
}
// 转换为列表返回
List<CommonStatisticsVo> performanceResult = new ArrayList<>(performanceStatisticsMap.values());
JSONObject resultResponse = new JSONObject();
resultResponse.put("allExeStatus", allExeStatus);
resultResponse.put("result", performanceResult);
return SdmResponse.success(resultResponse);
}
List<String> nodeIdList = new ArrayList<>();
for (PerformanceNodePo performanceNodePo : performanceList) {
eachTaskVo = taskMap.get(performanceNodePo.getTaskId());
if (ObjectUtils.isEmpty(eachTaskVo)) {
@@ -1947,7 +2016,6 @@ public class TaskServiceImpl implements ITaskService {
return SdmResponse.success(resultResponse);
}
Map<String, String> nodeMap = nodeList.stream().collect(Collectors.toMap(SpdmNodeVo::getUuid, SpdmNodeVo::getNodeName));
List<CommonGetCompleteFromPerformanceVo> commonCompleteStatisticsFromPerformance = new ArrayList<>();
String resultTagId;
String[] resultTagIdArr;
for (PerformanceNodePo performanceNodePo : performanceList) {
@@ -2688,6 +2756,38 @@ public class TaskServiceImpl implements ITaskService {
return SdmResponse.success(resultResponse);
}
String resultTagType = req.getResultTagType();
if ("tag6".equals(resultTagType)) {
// 按tag分组统计任务状态
Map<String, CommonStatisticsVo> taskStatisticsMap = new HashMap<>();
List<CommonGetCompleteFromTaskVo> commonCompleteStatisticsFromTask = new ArrayList<>();
for (SpdmTaskVo taskVo : taskList) {
CommonGetCompleteFromTaskVo commonGetCompleteFromTaskVo = new CommonGetCompleteFromTaskVo();
commonGetCompleteFromTaskVo.setNodeName(taskVo.getDiscipline());
commonGetCompleteFromTaskVo.setExeStatus(taskVo.getExeStatus());
commonCompleteStatisticsFromTask.add(commonGetCompleteFromTaskVo);
}
// 统计每个tag的各种状态任务数量
for (CommonGetCompleteFromTaskVo item : commonCompleteStatisticsFromTask) {
String name = item.getNodeName();
CommonStatisticsVo stat = taskStatisticsMap.getOrDefault(name, new CommonStatisticsVo());
stat.setName(name);
Map<String, Integer> statusCount = stat.getStatusCount();
if (statusCount == null) {
statusCount = new HashMap<>();
stat.setStatusCount(statusCount);
}
String exeStatus = item.getExeStatus();
allAchieveStatus.add(exeStatus);
statusCount.put(exeStatus, statusCount.getOrDefault(exeStatus, 0) + 1);
taskStatisticsMap.put(name, stat);
}
// 转换为列表返回
List<CommonStatisticsVo> taskResult = new ArrayList<>(taskStatisticsMap.values());
JSONObject resultResponse = new JSONObject();
resultResponse.put("allAchieveStatus", allAchieveStatus);
resultResponse.put("result", taskResult);
return SdmResponse.success(resultResponse);
}
List<String> nodeIdList = new ArrayList<>();
for (SpdmTaskVo taskVo : taskList) {
try {