|
|
@@ -75,14 +75,19 @@ public class DailyExamWrongAnalysisController {
|
|
75
|
75
|
* 总体问题分布(按大类统计错题数)
|
|
76
|
76
|
* 站长/管理员/质检科:全站;大队长:本大队;主管:本主管室;班组长:本班组
|
|
77
|
77
|
*
|
|
78
|
|
- * @param param dateRangeQueryType=YEAR|QUARTER|MONTH,year,quarter,month
|
|
|
78
|
+ * @param timeType year/month/custom,默认 month
|
|
|
79
|
+ * @param startDate 自定义开始日期 yyyy-MM-dd
|
|
|
80
|
+ * @param endDate 自定义结束日期 yyyy-MM-dd
|
|
79
|
81
|
*/
|
|
80
|
82
|
@GetMapping("/overview")
|
|
81
|
|
- public HttpResult<Map<String, Object>> getOverview(SysAnalysisReportParamDto param) {
|
|
|
83
|
+ public HttpResult<Map<String, Object>> getOverview(
|
|
|
84
|
+ @RequestParam(required = false, defaultValue = "month") String timeType,
|
|
|
85
|
+ @RequestParam(required = false) String startDate,
|
|
|
86
|
+ @RequestParam(required = false) String endDate) {
|
|
82
|
87
|
|
|
83
|
88
|
try {
|
|
84
|
89
|
RoleInfo role = getRoleInfo();
|
|
85
|
|
- LocalDate[] range = resolveDateRange(param);
|
|
|
90
|
+ LocalDate[] range = resolveDateRange(timeType, startDate, endDate);
|
|
86
|
91
|
|
|
87
|
92
|
List<DailyTaskDetail> errorDetails = getErrorDetails(role, range[0], range[1]);
|
|
88
|
93
|
|
|
|
@@ -128,10 +133,15 @@ public class DailyExamWrongAnalysisController {
|
|
128
|
133
|
/**
|
|
129
|
134
|
* 问题分布对比雷达图(仅站长可见,各大队在各大类的错题数对比)
|
|
130
|
135
|
*
|
|
131
|
|
- * @param param dateRangeQueryType=YEAR|QUARTER|MONTH,year,quarter,month
|
|
|
136
|
+ * @param timeType year/month/custom,默认 month
|
|
|
137
|
+ * @param startDate 自定义开始日期
|
|
|
138
|
+ * @param endDate 自定义结束日期
|
|
132
|
139
|
*/
|
|
133
|
140
|
@GetMapping("/radar")
|
|
134
|
|
- public HttpResult<Map<String, Object>> getRadar(SysAnalysisReportParamDto param) {
|
|
|
141
|
+ public HttpResult<Map<String, Object>> getRadar(
|
|
|
142
|
+ @RequestParam(required = false, defaultValue = "month") String timeType,
|
|
|
143
|
+ @RequestParam(required = false) String startDate,
|
|
|
144
|
+ @RequestParam(required = false) String endDate) {
|
|
135
|
145
|
|
|
136
|
146
|
try {
|
|
137
|
147
|
RoleInfo role = getRoleInfo();
|
|
|
@@ -141,7 +151,7 @@ public class DailyExamWrongAnalysisController {
|
|
141
|
151
|
return HttpResult.success(noShow);
|
|
142
|
152
|
}
|
|
143
|
153
|
|
|
144
|
|
- LocalDate[] range = resolveDateRange(param);
|
|
|
154
|
+ LocalDate[] range = resolveDateRange(timeType, startDate, endDate);
|
|
145
|
155
|
|
|
146
|
156
|
// 查询所有大类,作为雷达图的维度
|
|
147
|
157
|
BaseCheckCategory level1Query = new BaseCheckCategory();
|
|
|
@@ -657,7 +667,30 @@ public class DailyExamWrongAnalysisController {
|
|
657
|
667
|
}
|
|
658
|
668
|
|
|
659
|
669
|
/**
|
|
660
|
|
- * 根据 SysAnalysisReportParamDto 计算起止日期
|
|
|
670
|
+ * 根据 timeType 计算起止日期(供 overview/radar 使用)
|
|
|
671
|
+ */
|
|
|
672
|
+ private LocalDate[] resolveDateRange(String timeType, String startDate, String endDate) {
|
|
|
673
|
+ LocalDate today = LocalDate.now();
|
|
|
674
|
+ LocalDate start;
|
|
|
675
|
+ LocalDate end = today;
|
|
|
676
|
+ switch (timeType == null ? "month" : timeType) {
|
|
|
677
|
+ case "year":
|
|
|
678
|
+ start = today.withDayOfYear(1);
|
|
|
679
|
+ end = today.withMonth(12).withDayOfMonth(31);
|
|
|
680
|
+ break;
|
|
|
681
|
+ case "custom":
|
|
|
682
|
+ start = (startDate != null) ? LocalDate.parse(startDate) : today.withDayOfMonth(1);
|
|
|
683
|
+ end = (endDate != null) ? LocalDate.parse(endDate) : today;
|
|
|
684
|
+ break;
|
|
|
685
|
+ default: // month
|
|
|
686
|
+ start = today.withDayOfMonth(1);
|
|
|
687
|
+ break;
|
|
|
688
|
+ }
|
|
|
689
|
+ return new LocalDate[]{start, end};
|
|
|
690
|
+ }
|
|
|
691
|
+
|
|
|
692
|
+ /**
|
|
|
693
|
+ * 根据 SysAnalysisReportParamDto 计算起止日期(供 category-detail 使用)
|
|
661
|
694
|
* YEAR → 全年;QUARTER → 指定季度;MONTH → 指定月份;默认 → 当月
|
|
662
|
695
|
*/
|
|
663
|
696
|
private LocalDate[] resolveDateRange(SysAnalysisReportParamDto param) {
|