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")));
+ }
+}