diff --git a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/dataobject/DashboardLineResponseDO.java b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/dataobject/DashboardLineResponseDO.java index e1ee25b1..0dfd1b2e 100644 --- a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/dataobject/DashboardLineResponseDO.java +++ b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/dataobject/DashboardLineResponseDO.java @@ -64,4 +64,9 @@ public class DashboardLineResponseDO { */ private Long cancelNum; + /** + * 定时-成功数 + */ + private Long success; + } diff --git a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/JobSummaryMapper.java b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/JobSummaryMapper.java index 757edbe7..3608d072 100644 --- a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/JobSummaryMapper.java +++ b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/JobSummaryMapper.java @@ -28,6 +28,7 @@ public interface JobSummaryMapper extends BaseMapper { IPage jobTaskList(@Param("namespaceId") String namespaceId, Page page); List jobLineList(@Param("namespaceId") String namespaceId, + @Param("groupName") String groupName, @Param("type") String type, @Param("from") LocalDateTime from, @Param("to") LocalDateTime to); diff --git a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/RetrySummaryMapper.java b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/RetrySummaryMapper.java index c93e1661..8dc259e3 100644 --- a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/RetrySummaryMapper.java +++ b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/RetrySummaryMapper.java @@ -32,6 +32,7 @@ public interface RetrySummaryMapper extends BaseMapper { IPage retryTaskList(@Param("namespaceId") String namespaceId, Page page); List retryLineList(@Param("namespaceId") String namespaceId, + @Param("groupName") String groupName, @Param("type") String type, @Param("from") LocalDateTime from, @Param("to") LocalDateTime to); diff --git a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/JobSummaryMapper.xml b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/JobSummaryMapper.xml index 655c712e..6c1e8071 100644 --- a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/JobSummaryMapper.xml +++ b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/JobSummaryMapper.xml @@ -93,14 +93,19 @@ AS createDt, - ifnull(SUM(success_num), 0) AS successNum, + ifnull(SUM(success_num), 0) AS success, ifnull(SUM(fail_num), 0) AS failNum, ifnull(SUM(stop_num), 0) AS stopNum, ifnull(SUM(cancel_num), 0) AS cancelNum, ifnull(SUM(fail_num + stop_num + cancel_num), 0) AS fail, ifnull(SUM(success_num + fail_num + stop_num + cancel_num), 0) AS total FROM job_summary - WHERE namespace_id = #{namespaceId} AND trigger_at BETWEEN #{from} AND #{to} + + + AND group_name = #{groupName} + + AND namespace_id = #{namespaceId} AND trigger_at BETWEEN #{from} AND #{to} + GROUP BY createDt diff --git a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/RetrySummaryMapper.xml b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/RetrySummaryMapper.xml index 7091f203..c0abcbcf 100644 --- a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/RetrySummaryMapper.xml +++ b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/RetrySummaryMapper.xml @@ -57,7 +57,11 @@ rs.finish_num = tt.finish_num, rs.max_count_num = tt.max_count_num, rs.suspend_num = tt.suspend_num - WHERE rs.scene_name = tt.scene_name AND rs.trigger_at = tt.trigger_at + WHERE + rs.namespace_id = tt.namespace_id + AND rs.group_name = tt.group_name + AND rs.scene_name = tt.scene_name + AND rs.trigger_at = tt.trigger_at diff --git a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/SystemProperties.java b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/SystemProperties.java index c147b785..b07bcd35 100644 --- a/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/SystemProperties.java +++ b/easy-retry-server/easy-retry-server-common/src/main/java/com/aizuda/easy/retry/server/common/config/SystemProperties.java @@ -114,5 +114,9 @@ public class SystemProperties { } + /** + * Dashboard 任务容错天数 + */ + private int summaryDay = 7; } diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/schedule/JobSummarySchedule.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/schedule/JobSummarySchedule.java index 186ae465..b43f70d8 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/schedule/JobSummarySchedule.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/schedule/JobSummarySchedule.java @@ -4,6 +4,7 @@ import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum; import com.aizuda.easy.retry.common.core.log.LogUtils; import com.aizuda.easy.retry.common.core.util.JsonUtil; import com.aizuda.easy.retry.server.common.Lifecycle; +import com.aizuda.easy.retry.server.common.config.SystemProperties; import com.aizuda.easy.retry.server.common.dto.JobTaskBatchReason; import com.aizuda.easy.retry.server.common.schedule.AbstractSchedule; import com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobBatchSummaryResponseDO; @@ -35,6 +36,8 @@ public class JobSummarySchedule extends AbstractSchedule implements Lifecycle { private JobTaskBatchMapper jobTaskBatchMapper; @Autowired private JobSummaryMapper jobSummaryMapper; + @Autowired + private SystemProperties systemProperties; @Override public String lockName() { @@ -54,21 +57,24 @@ public class JobSummarySchedule extends AbstractSchedule implements Lifecycle { @Override protected void doExecute() { try { - // 定时按日实时查询统计数据(00:00:00 - 23:59:59) - LocalDateTime todayFrom = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); - LocalDateTime todayTo = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); - List summaryResponseDOList = jobTaskBatchMapper.summaryJobBatchList(todayFrom, todayTo); - if (summaryResponseDOList == null || summaryResponseDOList.size() < 1) { - return; - } + for (int i = 0; i < systemProperties.getSummaryDay(); i++) { - // insertOrUpdate - List jobSummaryList = jobSummaryList(todayFrom, summaryResponseDOList); - int total = jobSummaryMapper.updateBatchTriggerAtById(jobSummaryList); - if (total < 1) { - jobSummaryMapper.insertBatchJobSummary(jobSummaryList); + // 定时按日实时查询统计数据(00:00:00 - 23:59:59) + LocalDateTime todayFrom = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).plusDays(-i); + LocalDateTime todayTo = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).plusDays(-i); + List summaryResponseDOList = jobTaskBatchMapper.summaryJobBatchList(todayFrom, todayTo); + if (summaryResponseDOList == null || summaryResponseDOList.size() < 1) { + continue; + } + + // insertOrUpdate + List jobSummaryList = jobSummaryList(todayFrom, summaryResponseDOList); + int total = jobSummaryMapper.updateBatchTriggerAtById(jobSummaryList); + if (total < 1) { + jobSummaryMapper.insertBatchJobSummary(jobSummaryList); + } + LogUtils.debug(log, "job summary dashboard success todayFrom:[{}] todayTo:[{}] total:[{}]", todayFrom, todayTo, total); } - LogUtils.debug(log, "job summary dashboard success todayFrom:[{}] todayTo:[{}] total:[{}]", todayFrom, todayTo, total); } catch (Exception e) { LogUtils.error(log, "job summary dashboard log error", e); } diff --git a/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetrySummarySchedule.java b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetrySummarySchedule.java index d69cc709..c28e3145 100644 --- a/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetrySummarySchedule.java +++ b/easy-retry-server/easy-retry-server-retry-task/src/main/java/com/aizuda/easy/retry/server/retry/task/support/schedule/RetrySummarySchedule.java @@ -2,6 +2,7 @@ package com.aizuda.easy.retry.server.retry.task.support.schedule; import com.aizuda.easy.retry.common.core.log.LogUtils; import com.aizuda.easy.retry.server.common.Lifecycle; +import com.aizuda.easy.retry.server.common.config.SystemProperties; import com.aizuda.easy.retry.server.common.schedule.AbstractSchedule; import com.aizuda.easy.retry.template.datasource.persistence.dataobject.DashboardRetryResponseDO; import com.aizuda.easy.retry.template.datasource.persistence.mapper.RetrySummaryMapper; @@ -33,6 +34,8 @@ public class RetrySummarySchedule extends AbstractSchedule implements Lifecycle private RetryTaskLogMapper retryTaskLogMapper; @Autowired private RetrySummaryMapper retrySummaryMapper; + @Autowired + private SystemProperties systemProperties; @Override public String lockName() { @@ -52,21 +55,24 @@ public class RetrySummarySchedule extends AbstractSchedule implements Lifecycle @Override protected void doExecute() { try { - // 重试按日实时查询统计数据(00:00:00 - 23:59:59) - LocalDateTime todayFrom = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); - LocalDateTime todayTo = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); - List dashboardRetryResponseDOList = retryTaskLogMapper.retrySummaryRetryTaskLogList(todayFrom, todayTo); - if (dashboardRetryResponseDOList == null || dashboardRetryResponseDOList.size() < 1) { - return; - } + for (int i = 0; i < systemProperties.getSummaryDay(); i++) { - // insertOrUpdate - List retrySummaryList = retrySummaryList(todayFrom, dashboardRetryResponseDOList); - int total = retrySummaryMapper.updateBatchSceneNameById(retrySummaryList); - if (total < 1) { - retrySummaryMapper.insertBatchRetrySummary(retrySummaryList); + // 重试按日实时查询统计数据(00:00:00 - 23:59:59) + LocalDateTime todayFrom = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).plusDays(-i); + LocalDateTime todayTo = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).plusDays(-i); + List dashboardRetryResponseDOList = retryTaskLogMapper.retrySummaryRetryTaskLogList(todayFrom, todayTo); + if (dashboardRetryResponseDOList == null || dashboardRetryResponseDOList.size() < 1) { + continue; + } + + // insertOrUpdate + List retrySummaryList = retrySummaryList(todayFrom, dashboardRetryResponseDOList); + int total = retrySummaryMapper.updateBatchSceneNameById(retrySummaryList); + if (total < 1) { + retrySummaryMapper.insertBatchRetrySummary(retrySummaryList); + } + LogUtils.debug(log, "retry summary dashboard success todayFrom:[{}] todayTo:[{}] total:[{}]", todayFrom, todayTo, total); } - LogUtils.debug(log, "retry summary dashboard success todayFrom:[{}] todayTo:[{}] total:[{}]", todayFrom, todayTo, total); } catch (Exception e) { LogUtils.error(log, "retry summary dashboard log error", e); } diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java index e4ccbd88..82ab0952 100644 --- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java +++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/enums/DateTypeEnum.java @@ -36,6 +36,7 @@ public enum DateTypeEnum { .setFailNum(0L) .setMaxCountNum(0L) .setRunningNum(0L) + .setSuccess(0L) .setSuccessNum(0L) .setSuspendNum(0L) .setStopNum(0L) @@ -70,6 +71,7 @@ public enum DateTypeEnum { .setFailNum(0L) .setMaxCountNum(0L) .setRunningNum(0L) + .setSuccess(0L) .setSuccessNum(0L) .setSuspendNum(0L) .setStopNum(0L) @@ -105,6 +107,7 @@ public enum DateTypeEnum { .setFailNum(0L) .setMaxCountNum(0L) .setRunningNum(0L) + .setSuccess(0L) .setSuccessNum(0L) .setSuspendNum(0L) .setStopNum(0L) @@ -127,6 +130,28 @@ public enum DateTypeEnum { * 年 */ YEAR(dashboardLineResponseVOList -> { + Map dispatchQuantityResponseVOMap = dashboardLineResponseVOList.stream().collect(Collectors.toMap(DashboardLineResponseVO::getCreateDt, i -> i)); + for (int i = 0; i < 12; i++) { + + String format = LocalDateTime.of(LocalDate.now().minusMonths(i), LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM")); + DashboardLineResponseVO dashboardLineResponseVO = dispatchQuantityResponseVOMap.get(format); + if (Objects.isNull(dashboardLineResponseVO)) { + dashboardLineResponseVO = new DashboardLineResponseVO() + .setTotal(0L) + .setTotalNum(0L) + .setFail(0L) + .setFailNum(0L) + .setMaxCountNum(0L) + .setRunningNum(0L) + .setSuccess(0L) + .setSuccessNum(0L) + .setSuspendNum(0L) + .setStopNum(0L) + .setCancelNum(0L) + .setCreateDt(format); + dashboardLineResponseVOList.add(dashboardLineResponseVO); + } + } }, (startTime) -> { return LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.firstDayOfYear()), LocalTime.MIN.withNano(0)); }, (endTime) -> { diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/DashboardLineResponseVO.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/DashboardLineResponseVO.java index 88ff7a3a..8f1cbf36 100644 --- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/DashboardLineResponseVO.java +++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/response/DashboardLineResponseVO.java @@ -66,4 +66,9 @@ public class DashboardLineResponseVO { */ private Long cancelNum; + /** + * 定时-成功数 + */ + private Long success; + } diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java index 27ccd1e1..a4eb0b15 100644 --- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java +++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/DashBoardServiceImpl.java @@ -105,7 +105,7 @@ public class DashBoardServiceImpl implements DashBoardService { DateTypeEnum dateTypeEnum = DateTypeEnum.valueOf(type); LocalDateTime startDateTime = dateTypeEnum.getStartTime().apply(StrUtil.isNotBlank(startTime) ? LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null); LocalDateTime endDateTime = dateTypeEnum.getEndTime().apply(StrUtil.isNotBlank(endTime) ? LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null); - List dashboardRetryLinkeResponseDOList = retrySummaryMapper.retryLineList(namespaceId, type, startDateTime, endDateTime); + List dashboardRetryLinkeResponseDOList = retrySummaryMapper.retryLineList(namespaceId, groupName, type, startDateTime, endDateTime); List dashboardLineResponseVOList = DispatchQuantityResponseVOConverter.INSTANCE.toDashboardLineResponseVO(dashboardRetryLinkeResponseDOList); dateTypeEnum.getConsumer().accept(dashboardLineResponseVOList); dashboardLineResponseVOList.sort(Comparator.comparing(a -> a.getCreateDt())); @@ -133,7 +133,7 @@ public class DashBoardServiceImpl implements DashBoardService { DateTypeEnum dateTypeEnum = DateTypeEnum.valueOf(type); LocalDateTime startDateTime = dateTypeEnum.getStartTime().apply(StrUtil.isNotBlank(startTime) ? LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null); LocalDateTime endDateTime = dateTypeEnum.getEndTime().apply(StrUtil.isNotBlank(endTime) ? LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null); - List dashboardLineResponseDOList = jobSummaryMapper.jobLineList(namespaceId, type, startDateTime, endDateTime); + List dashboardLineResponseDOList = jobSummaryMapper.jobLineList(namespaceId, groupName, type, startDateTime, endDateTime); List dashboardLineResponseVOList = DispatchQuantityResponseVOConverter.INSTANCE.toDashboardLineResponseVO(dashboardLineResponseDOList); dateTypeEnum.getConsumer().accept(dashboardLineResponseVOList); dashboardLineResponseVOList.sort(Comparator.comparing(a -> a.getCreateDt())); diff --git a/frontend/src/views/dashboard/Analysis.vue b/frontend/src/views/dashboard/Analysis.vue index 96941836..31a1475d 100644 --- a/frontend/src/views/dashboard/Analysis.vue +++ b/frontend/src/views/dashboard/Analysis.vue @@ -81,7 +81,7 @@ {{ $t('dashboard.analysis.all-year') }}
- +
{{ item }} diff --git a/frontend/src/views/dashboard/JobAnalysis.vue b/frontend/src/views/dashboard/JobAnalysis.vue index 6ab77079..0488b6c2 100644 --- a/frontend/src/views/dashboard/JobAnalysis.vue +++ b/frontend/src/views/dashboard/JobAnalysis.vue @@ -118,7 +118,7 @@ export default { this.rankList = res.data.rankList this.taskList = res.data.taskList res.data.dashboardLineResponseDOList.forEach(res => { - this.successNum += res.successNum + this.successNum += res.success this.failNum += res.failNum this.stopNum += res.stopNum this.cancelNum += res.cancelNum