diff --git a/project/src/main/java/com/sdm/project/controller/SimulationNodeController.java b/project/src/main/java/com/sdm/project/controller/SimulationNodeController.java index 10fe395a..add55fb7 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationNodeController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationNodeController.java @@ -169,10 +169,19 @@ public class SimulationNodeController implements ISimuluationNodeFeignClient { * 用户组难度系数统计 * */ - @GetMapping("/getUserGroupDifficultyStatistics") + @PostMapping("/getUserGroupDifficultyStatistics") @Operation(summary = "用户组难度系数统计", description = "用户组难度系数统计") public SdmResponse getUserGroupDifficultyStatistics(@RequestBody @Validated GetUserGroupTaskCompleteStatisticsReq req) { return nodeService.getUserGroupDifficultyStatistics(req); } + /** + * 通用完成统计查询 + */ + @PostMapping("/getCommonCompleteStatistics") + @Operation(summary = "任务/指标 完成情况统计请求参数(工位、学科)", description = "任务/指标 完成情况统计请求参数(工位、学科)") + public SdmResponse getCommonCompleteStatistics(@RequestBody @Validated CommonGetCompleteStatisticsReq req) { + return nodeService.getCommonCompleteStatistics(req); + } + } diff --git a/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java index ef784b24..3174e6ac 100644 --- a/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java +++ b/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java @@ -79,4 +79,8 @@ public interface SimulationNodeMapper extends BaseMapper { List getUserGroupDifficultyStatistics(@Param("req") GetUserGroupTaskCompleteStatisticsReq req); + List getCommonCompleteStatisticsFromTask(@Param("req") CommonGetCompleteStatisticsReq req); + + List getCommonCompleteStatisticsFromPerformance(@Param("req")CommonGetCompleteStatisticsReq req); + } diff --git a/project/src/main/java/com/sdm/project/model/req/CommonGetCompleteStatisticsReq.java b/project/src/main/java/com/sdm/project/model/req/CommonGetCompleteStatisticsReq.java new file mode 100644 index 00000000..11b081c7 --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/req/CommonGetCompleteStatisticsReq.java @@ -0,0 +1,50 @@ +package com.sdm.project.model.req; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * 任务/指标 完成情况统计请求参数(工位、学科) + */ +@Data +@Schema(description = "任务/指标 完成情况统计请求参数(工位、学科)") +public class CommonGetCompleteStatisticsReq { + @Schema(description = "查询统计类型 task/performance") + @NotNull + private String queryType; + + @Schema(description = "数据返回Tag类型: tag1、tag2,tag3,tag4,tag5,tag6,tag7,tag8,tag9,tag10") + @NotNull + private String resultTagType; + + @Schema(description = "标签1") + private String tag1; + + @Schema(description = "标签2") + private String tag2; + + @Schema(description = "标签3") + private String tag3; + + @Schema(description = "标签4") + private String tag4; + + @Schema(description = "标签5") + private String tag5; + + @Schema(description = "标签6") + private String tag6; + + @Schema(description = "标签7") + private String tag7; + + @Schema(description = "标签8") + private String tag8; + + @Schema(description = "标签9") + private String tag9; + + @Schema(description = "标签10") + private String tag10; +} diff --git a/project/src/main/java/com/sdm/project/model/vo/CommonCompleteStatisticsVo.java b/project/src/main/java/com/sdm/project/model/vo/CommonCompleteStatisticsVo.java new file mode 100644 index 00000000..efcdc14e --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/vo/CommonCompleteStatisticsVo.java @@ -0,0 +1,12 @@ +package com.sdm.project.model.vo; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +@Data +public class CommonCompleteStatisticsVo { + private String name; + private Map statusCount = new HashMap<>(); +} \ No newline at end of file diff --git a/project/src/main/java/com/sdm/project/model/vo/CommonGetCompleteFromPerformanceVo.java b/project/src/main/java/com/sdm/project/model/vo/CommonGetCompleteFromPerformanceVo.java new file mode 100644 index 00000000..b6940ae5 --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/vo/CommonGetCompleteFromPerformanceVo.java @@ -0,0 +1,10 @@ +package com.sdm.project.model.vo; + +import lombok.Data; + +@Data +public class CommonGetCompleteFromPerformanceVo { + private String tag; + private String nodeName; + private String completeStatus; +} diff --git a/project/src/main/java/com/sdm/project/model/vo/CommonGetCompleteFromTaskVo.java b/project/src/main/java/com/sdm/project/model/vo/CommonGetCompleteFromTaskVo.java new file mode 100644 index 00000000..b106fa4c --- /dev/null +++ b/project/src/main/java/com/sdm/project/model/vo/CommonGetCompleteFromTaskVo.java @@ -0,0 +1,10 @@ +package com.sdm.project.model.vo; + +import lombok.Data; + +@Data +public class CommonGetCompleteFromTaskVo { + private String tag; + private String nodeName; + private String exeStatus; +} diff --git a/project/src/main/java/com/sdm/project/service/INodeService.java b/project/src/main/java/com/sdm/project/service/INodeService.java index 8a50f421..15ffe571 100644 --- a/project/src/main/java/com/sdm/project/service/INodeService.java +++ b/project/src/main/java/com/sdm/project/service/INodeService.java @@ -37,4 +37,6 @@ public interface INodeService extends IService { //用户组难度系数统计 SdmResponse getUserGroupDifficultyStatistics(GetUserGroupTaskCompleteStatisticsReq req); + SdmResponse getCommonCompleteStatistics(CommonGetCompleteStatisticsReq req); + } diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java index 896e1949..42d5185c 100644 --- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java @@ -787,4 +787,67 @@ public class NodeServiceImpl extends ServiceImpl commonCompleteStatisticsFromTask = this.baseMapper.getCommonCompleteStatisticsFromTask(req); + + // 按tag分组统计任务状态 + Map taskStatisticsMap = new HashMap<>(); + + // 统计每个tag的各种状态任务数量 + for (CommonGetCompleteFromTaskVo item : commonCompleteStatisticsFromTask) { + String name = item.getNodeName(); + + CommonCompleteStatisticsVo stat = taskStatisticsMap.getOrDefault(name, new CommonCompleteStatisticsVo()); + stat.setName(name); + + Map statusCount = stat.getStatusCount(); + if (statusCount == null) { + statusCount = new HashMap<>(); + stat.setStatusCount(statusCount); + } + + String exeStatus = item.getExeStatus(); + statusCount.put(exeStatus, statusCount.getOrDefault(exeStatus, 0) + 1); + taskStatisticsMap.put(name, stat); + } + + // 转换为列表返回 + List taskResult = new ArrayList<>(taskStatisticsMap.values()); + return SdmResponse.success(taskResult); + } else if ("performance".equals(req.getQueryType())) { + // 处理指标完成情况统计 + List commonCompleteStatisticsFromPerformance = this.baseMapper.getCommonCompleteStatisticsFromPerformance(req); + + // 按tag分组统计指标状态 + Map performanceStatisticsMap = new HashMap<>(); + + // 统计每个tag的各种状态指标数量 + for (CommonGetCompleteFromPerformanceVo item : commonCompleteStatisticsFromPerformance) { + String nodeName = item.getNodeName(); + + CommonCompleteStatisticsVo stat = performanceStatisticsMap.getOrDefault(nodeName, new CommonCompleteStatisticsVo()); + stat.setName(nodeName); + + Map statusCount = stat.getStatusCount(); + if (statusCount == null) { + statusCount = new HashMap<>(); + stat.setStatusCount(statusCount); + } + + String completeStatus = item.getCompleteStatus(); + statusCount.put(completeStatus, statusCount.getOrDefault(completeStatus, 0) + 1); + + performanceStatisticsMap.put(nodeName, stat); + } + + // 转换为列表返回 + List performanceResult = new ArrayList<>(performanceStatisticsMap.values()); + return SdmResponse.success(performanceResult); + } + return SdmResponse.success(new ArrayList<>()); + } } diff --git a/project/src/main/resources/logback.xml b/project/src/main/resources/logback.xml index 771194df..17119d97 100644 --- a/project/src/main/resources/logback.xml +++ b/project/src/main/resources/logback.xml @@ -39,7 +39,7 @@ - + diff --git a/project/src/main/resources/mapper/SimulationNodeMapper.xml b/project/src/main/resources/mapper/SimulationNodeMapper.xml index 553bf776..ca0a5f15 100644 --- a/project/src/main/resources/mapper/SimulationNodeMapper.xml +++ b/project/src/main/resources/mapper/SimulationNodeMapper.xml @@ -347,7 +347,7 @@ + + + + \ No newline at end of file