数据统计
This commit is contained in:
@@ -169,10 +169,19 @@ public class SimulationNodeController implements ISimuluationNodeFeignClient {
|
|||||||
* 用户组难度系数统计
|
* 用户组难度系数统计
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getUserGroupDifficultyStatistics")
|
@PostMapping("/getUserGroupDifficultyStatistics")
|
||||||
@Operation(summary = "用户组难度系数统计", description = "用户组难度系数统计")
|
@Operation(summary = "用户组难度系数统计", description = "用户组难度系数统计")
|
||||||
public SdmResponse getUserGroupDifficultyStatistics(@RequestBody @Validated GetUserGroupTaskCompleteStatisticsReq req) {
|
public SdmResponse getUserGroupDifficultyStatistics(@RequestBody @Validated GetUserGroupTaskCompleteStatisticsReq req) {
|
||||||
return nodeService.getUserGroupDifficultyStatistics(req);
|
return nodeService.getUserGroupDifficultyStatistics(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用完成统计查询
|
||||||
|
*/
|
||||||
|
@PostMapping("/getCommonCompleteStatistics")
|
||||||
|
@Operation(summary = "任务/指标 完成情况统计请求参数(工位、学科)", description = "任务/指标 完成情况统计请求参数(工位、学科)")
|
||||||
|
public SdmResponse getCommonCompleteStatistics(@RequestBody @Validated CommonGetCompleteStatisticsReq req) {
|
||||||
|
return nodeService.getCommonCompleteStatistics(req);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,4 +79,8 @@ public interface SimulationNodeMapper extends BaseMapper<SimulationNode> {
|
|||||||
|
|
||||||
List<UserGroupDifficultyVo> getUserGroupDifficultyStatistics(@Param("req") GetUserGroupTaskCompleteStatisticsReq req);
|
List<UserGroupDifficultyVo> getUserGroupDifficultyStatistics(@Param("req") GetUserGroupTaskCompleteStatisticsReq req);
|
||||||
|
|
||||||
|
List<CommonGetCompleteFromTaskVo> getCommonCompleteStatisticsFromTask(@Param("req") CommonGetCompleteStatisticsReq req);
|
||||||
|
|
||||||
|
List<CommonGetCompleteFromPerformanceVo> getCommonCompleteStatisticsFromPerformance(@Param("req")CommonGetCompleteStatisticsReq req);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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<String, Integer> statusCount = new HashMap<>();
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -37,4 +37,6 @@ public interface INodeService extends IService<SimulationNode> {
|
|||||||
//用户组难度系数统计
|
//用户组难度系数统计
|
||||||
SdmResponse getUserGroupDifficultyStatistics(GetUserGroupTaskCompleteStatisticsReq req);
|
SdmResponse getUserGroupDifficultyStatistics(GetUserGroupTaskCompleteStatisticsReq req);
|
||||||
|
|
||||||
|
SdmResponse getCommonCompleteStatistics(CommonGetCompleteStatisticsReq req);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -787,4 +787,67 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
|||||||
|
|
||||||
return SdmResponse.success(result);
|
return SdmResponse.success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SdmResponse getCommonCompleteStatistics(CommonGetCompleteStatisticsReq req) {
|
||||||
|
if ("task".equals(req.getQueryType())) {
|
||||||
|
// 处理任务完成情况统计
|
||||||
|
List<CommonGetCompleteFromTaskVo> commonCompleteStatisticsFromTask = this.baseMapper.getCommonCompleteStatisticsFromTask(req);
|
||||||
|
|
||||||
|
// 按tag分组统计任务状态
|
||||||
|
Map<String, CommonCompleteStatisticsVo> taskStatisticsMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 统计每个tag的各种状态任务数量
|
||||||
|
for (CommonGetCompleteFromTaskVo item : commonCompleteStatisticsFromTask) {
|
||||||
|
String name = item.getNodeName();
|
||||||
|
|
||||||
|
CommonCompleteStatisticsVo stat = taskStatisticsMap.getOrDefault(name, new CommonCompleteStatisticsVo());
|
||||||
|
stat.setName(name);
|
||||||
|
|
||||||
|
Map<String, Integer> 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<CommonCompleteStatisticsVo> taskResult = new ArrayList<>(taskStatisticsMap.values());
|
||||||
|
return SdmResponse.success(taskResult);
|
||||||
|
} else if ("performance".equals(req.getQueryType())) {
|
||||||
|
// 处理指标完成情况统计
|
||||||
|
List<CommonGetCompleteFromPerformanceVo> commonCompleteStatisticsFromPerformance = this.baseMapper.getCommonCompleteStatisticsFromPerformance(req);
|
||||||
|
|
||||||
|
// 按tag分组统计指标状态
|
||||||
|
Map<String, CommonCompleteStatisticsVo> performanceStatisticsMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 统计每个tag的各种状态指标数量
|
||||||
|
for (CommonGetCompleteFromPerformanceVo item : commonCompleteStatisticsFromPerformance) {
|
||||||
|
String nodeName = item.getNodeName();
|
||||||
|
|
||||||
|
CommonCompleteStatisticsVo stat = performanceStatisticsMap.getOrDefault(nodeName, new CommonCompleteStatisticsVo());
|
||||||
|
stat.setName(nodeName);
|
||||||
|
|
||||||
|
Map<String, Integer> 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<CommonCompleteStatisticsVo> performanceResult = new ArrayList<>(performanceStatisticsMap.values());
|
||||||
|
return SdmResponse.success(performanceResult);
|
||||||
|
}
|
||||||
|
return SdmResponse.success(new ArrayList<>());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!-- 日志输出级别 -->
|
<!-- 日志输出级别 -->
|
||||||
<root level="INFO">
|
<root level="DEBUG">
|
||||||
<appender-ref ref="STDOUT" />
|
<appender-ref ref="STDOUT" />
|
||||||
<appender-ref ref="FILE" />
|
<appender-ref ref="FILE" />
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -347,7 +347,7 @@
|
|||||||
<select id="getUserGroupTaskCompleteStatistics"
|
<select id="getUserGroupTaskCompleteStatistics"
|
||||||
parameterType="com.sdm.project.model.req.GetUserGroupTaskCompleteStatisticsReq"
|
parameterType="com.sdm.project.model.req.GetUserGroupTaskCompleteStatisticsReq"
|
||||||
resultType="com.sdm.project.model.vo.UserGroupTaskCompleteVo">
|
resultType="com.sdm.project.model.vo.UserGroupTaskCompleteVo">
|
||||||
select exe_status as exeStatus,
|
select task.exe_status as exeStatus,
|
||||||
task_member.user_id as userId,
|
task_member.user_id as userId,
|
||||||
su.nickname,
|
su.nickname,
|
||||||
sur.groupId
|
sur.groupId
|
||||||
@@ -400,7 +400,7 @@
|
|||||||
parameterType="com.sdm.project.model.req.GetUserGroupTaskCompleteStatisticsReq"
|
parameterType="com.sdm.project.model.req.GetUserGroupTaskCompleteStatisticsReq"
|
||||||
resultType="com.sdm.project.model.vo.UserGroupDifficultyVo">
|
resultType="com.sdm.project.model.vo.UserGroupDifficultyVo">
|
||||||
select
|
select
|
||||||
task.difficulty,
|
task.difficult,
|
||||||
task_member.user_id as userId,
|
task_member.user_id as userId,
|
||||||
su.nickname,
|
su.nickname,
|
||||||
sur.groupId
|
sur.groupId
|
||||||
@@ -449,4 +449,93 @@
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getCommonCompleteStatisticsFromTask"
|
||||||
|
parameterType="com.sdm.project.model.req.CommonGetCompleteStatisticsReq"
|
||||||
|
resultType="com.sdm.project.model.vo.CommonGetCompleteFromTaskVo">
|
||||||
|
select
|
||||||
|
task.${req.resultTagType} as tag,
|
||||||
|
node.nodeName,
|
||||||
|
task.exe_status as exeStatus
|
||||||
|
from simulation_task task
|
||||||
|
left join simulation_node node on task.${req.resultTagType} = node.uuid
|
||||||
|
<where>
|
||||||
|
1=1 and task.exe_status is not null
|
||||||
|
<if test="req.tag1 != null and req.tag1 !='' ">
|
||||||
|
and task.tag1 = #{req.tag1}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag2 != null">
|
||||||
|
and task.tag2 = #{req.tag2}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag3 != null">
|
||||||
|
and task.tag3 = #{req.tag3}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag4 != null">
|
||||||
|
and task.tag4 = #{req.tag4}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag5 != null">
|
||||||
|
and task.tag5 = #{req.tag5}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag6 != null">
|
||||||
|
and task.tag6 = #{req.tag6}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag7 != null">
|
||||||
|
and task.tag7 = #{req.tag7}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag8 != null">
|
||||||
|
and task.tag8 = #{req.tag8}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag9 != null">
|
||||||
|
and task.tag9 = #{req.tag9}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag10 != null">
|
||||||
|
and task.tag10 = #{req.tag10}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="getCommonCompleteStatisticsFromPerformance"
|
||||||
|
parameterType="com.sdm.project.model.req.CommonGetCompleteStatisticsReq"
|
||||||
|
resultType="com.sdm.project.model.vo.CommonGetCompleteFromPerformanceVo">
|
||||||
|
select
|
||||||
|
task.${req.resultTagType} as tag,
|
||||||
|
node.nodeName,
|
||||||
|
performance.completeStatus
|
||||||
|
from simulation_performance performance
|
||||||
|
left join simulation_task task on performance.taskId = task.uuid
|
||||||
|
left join simulation_node node on task.${req.resultTagType} = node.uuid
|
||||||
|
<where>
|
||||||
|
performance.completeStatus is not null
|
||||||
|
<if test="req.tag1 != null and req.tag1 !='' ">
|
||||||
|
and task.tag1 = #{req.tag1}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag2 != null">
|
||||||
|
and task.tag2 = #{req.tag2}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag3 != null">
|
||||||
|
and task.tag3 = #{req.tag3}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag4 != null">
|
||||||
|
and task.tag4 = #{req.tag4}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag5 != null">
|
||||||
|
and task.tag5 = #{req.tag5}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag6 != null">
|
||||||
|
and task.tag6 = #{req.tag6}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag7 != null">
|
||||||
|
and task.tag7 = #{req.tag7}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag8 != null">
|
||||||
|
and task.tag8 = #{req.tag8}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag9 != null">
|
||||||
|
and task.tag9 = #{req.tag9}
|
||||||
|
</if>
|
||||||
|
<if test="req.tag10 != null">
|
||||||
|
and task.tag10 = #{req.tag10}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user