From dd12255974359b7bc18bef0f281effae594c13ab Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Fri, 8 Dec 2023 11:44:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E5=BA=A6=E7=A7=BB=E6=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pqs-system/system-boot/pom.xml | 7 +- ...pmsStatisticsSpecialMonitorTaskRunner.java | 113 ++++++++++++++++++ .../tasks/statisticReportTaskRunner.java | 32 +++++ 3 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/pmsStatisticsSpecialMonitorTaskRunner.java create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/statisticReportTaskRunner.java diff --git a/pqs-system/system-boot/pom.xml b/pqs-system/system-boot/pom.xml index b63fce7a2..8e36f7d67 100644 --- a/pqs-system/system-boot/pom.xml +++ b/pqs-system/system-boot/pom.xml @@ -63,6 +63,11 @@ prepare-api ${project.version} + + com.njcn + process-api + ${project.version} + @@ -85,7 +90,7 @@ com.spotify docker-maven-plugin - 1.0.0 + 1.2.2 build-image diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/pmsStatisticsSpecialMonitorTaskRunner.java b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/pmsStatisticsSpecialMonitorTaskRunner.java new file mode 100644 index 000000000..15a296832 --- /dev/null +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/pmsStatisticsSpecialMonitorTaskRunner.java @@ -0,0 +1,113 @@ +package com.njcn.system.timer.tasks; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.prepare.harmonic.api.newalgorithm.PmsStatisticsSpecialMonitorFeignClient; +import com.njcn.prepare.harmonic.pojo.param.LineParam; +import com.njcn.system.timer.TimerTaskRunner; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.Calendar; +import java.util.Date; +import java.util.Objects; + +/** + * 类的介绍:专项分析-台账统计定时任务 + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/12/08 11:23 + */ +@Component +@RequiredArgsConstructor +@Slf4j +public class pmsStatisticsSpecialMonitorTaskRunner implements TimerTaskRunner { + + private final PmsStatisticsSpecialMonitorFeignClient pmsStatisticsSpecialMonitorFeignClient; + + @Override + public void action() { + log.info(LocalDateTime.now()+"专项分析-台账统计调度开始"); + LineParam lineParam = new LineParam(); + lineParam.setType(Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH)); + lineParam.setDataDate(this.prepareTimeDeal(BizParamConstant.STAT_BIZ_MONTH)); + this.commDefineDate(BizParamConstant.STAT_BIZ_MONTH,lineParam); + pmsStatisticsSpecialMonitorFeignClient.pmsStatisticsSpecialMonitorHandler(lineParam); + } + + public String prepareTimeDeal(String command) { + if (StrUtil.isBlank(command)) { + log.error(LocalDateTime.now() + "xxl调度任务参数未设置"); + return null; + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + if (Objects.equals(BizParamConstant.STAT_BIZ_DAY, command)) { + calendar.add(Calendar.DAY_OF_MONTH, -1); + } else if (Objects.equals(BizParamConstant.STAT_BIZ_MONTH, command)) { + calendar.set(Calendar.DAY_OF_MONTH, 1); + } else if (Objects.equals(BizParamConstant.STAT_BIZ_QUARTER, command)) { + int nowMonth = calendar.get(Calendar.MONTH); + calendar.set(Calendar.MONTH, nowMonth - (nowMonth % 3)); + calendar.set(Calendar.DAY_OF_MONTH, 1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + } else if (Objects.equals(BizParamConstant.STAT_BIZ_YEAR, command)) { + calendar.set(Calendar.DAY_OF_YEAR, 1); + } + log.info("job调度时间:" + sdf.format(calendar.getTime())); + return sdf.format(calendar.getTime()); + } + + /** + * 根据xxl-job的参数,生成一个任务的起始时间和结束时间 + * + * @author cdf + * @date 2023/9/20 + */ + public void commDefineDate(String command, LineParam lineParam) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String begin; + String end; + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_MONTH, -1); + Date temDate = calendar.getTime(); + switch (command) { + case BizParamConstant.STAT_BIZ_DAY: + begin = sdf.format(DateUtil.beginOfDay(temDate)); + end = sdf.format(DateUtil.endOfDay(temDate)); + break; + case BizParamConstant.STAT_BIZ_WEEK: + begin = sdf.format(DateUtil.beginOfWeek(temDate)); + end = sdf.format(DateUtil.endOfWeek(temDate)); + break; + case BizParamConstant.STAT_BIZ_MONTH: + begin = sdf.format(DateUtil.beginOfMonth(temDate)); + end = sdf.format(DateUtil.endOfMonth(temDate)); + break; + case BizParamConstant.STAT_BIZ_QUARTER: + begin = sdf.format(DateUtil.beginOfQuarter(temDate)); + end = sdf.format(DateUtil.endOfQuarter(temDate)); + break; + case BizParamConstant.STAT_BIZ_YEAR: + begin = sdf.format(DateUtil.beginOfYear(temDate)); + end = sdf.format(DateUtil.endOfYear(temDate)); + break; + default: + begin = sdf.format(DateUtil.beginOfDay(temDate)); + end = sdf.format(DateUtil.endOfDay(temDate)); + break; + } + lineParam.setBeginTime(begin); + lineParam.setEndTime(end); + lineParam.setDataDate(begin.substring(0, 10)); + } + +} diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/statisticReportTaskRunner.java b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/statisticReportTaskRunner.java new file mode 100644 index 000000000..7775ca1b6 --- /dev/null +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/statisticReportTaskRunner.java @@ -0,0 +1,32 @@ +package com.njcn.system.timer.tasks; + +import com.njcn.process.api.SupvStatisticReportMFeignClient; +import com.njcn.system.timer.TimerTaskRunner; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * 类的介绍:第二技术监督月上送报告统计-定时任务 + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/12/08 11:35 + */ +@Component +@RequiredArgsConstructor +@Slf4j +public class statisticReportTaskRunner implements TimerTaskRunner { + private final SupvStatisticReportMFeignClient supvStatisticReportMFeignClient; + + @Override + public void action() { + log.info(LocalDateTime.now()+"技术监督计划问题月报统计调用成功"); + LocalDate yesterday = LocalDate.now().plusDays(-1); + supvStatisticReportMFeignClient.statisticReport(yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + } +}