فهرست منبع

定时任务增加判断是否执行逻辑

weijianghai 1 روز پیش
والد
کامیت
e36f902984
22فایلهای تغییر یافته به همراه330 افزوده شده و 19 حذف شده
  1. 111 0
      scripts/check_data.sh
  2. 25 0
      src/main/java/com/nokia/finance/tasks/dao/common/JobConfigDao.java
  3. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/car/CarReportJob.java
  4. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/car/cxdp/CarCxdpJob.java
  5. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/car/procedure/CarBaseDataMonthProcJob.java
  6. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/car/procedure/CarFeeProcJob.java
  7. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/car/procedure/CarLiChengMonthProcJob.java
  8. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/car/procedure/CarPaiDanProcJob.java
  9. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarHighFuelConsumptionJob.java
  10. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarHighRepairJob.java
  11. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarInefficiencyPercentJob.java
  12. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarInefficiencyQxJob.java
  13. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarRentalRepairJob.java
  14. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarViolationUnprocessedJob.java
  15. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarWdyjJob.java
  16. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/house/HouseReportJob.java
  17. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/house/fcdp/HouseBuildingAreaStatJob.java
  18. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/house/fcdp/HouseBuildingLandCountJob.java
  19. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/house/fcdp/HouseRentalIncomeJob.java
  20. 9 1
      src/main/java/com/nokia/finance/tasks/jobs/house/procedure/HouseBuildingRepairProcJob.java
  21. 8 1
      src/main/java/com/nokia/finance/tasks/jobs/house/strategy/HouseBuildingIdleStrategyJob.java
  22. 32 0
      src/main/java/com/nokia/finance/tasks/pojo/po/common/JobConfigPo.java

+ 111 - 0
scripts/check_data.sh

@@ -0,0 +1,111 @@
+#!/bin/bash
+
+list_files() {
+  data_dir=$1
+  echo "${data_dir} 文件列表:"
+  ls -l "${data_dir}"
+}
+
+check_month_data() {
+  # 设置目标目录
+  data_dir1=$1
+  data_dir2=$2
+
+  # 获取上个月日期(格式:yyyymm)
+  last_month=$(date -d "1 month ago" +%Y%m)
+
+  # 存储提取到的所有日期
+  found_dates=()
+
+  # 遍历data目录下的所有文件
+  while IFS= read -r -d $'\0' file; do
+      filename=$(basename "$file")
+
+      # 使用正则匹配文件名中的6位日期(独立部分)
+      while IFS= read -r date_str; do
+          # 验证日期格式(月份01-12)
+          if [[ $date_str =~ ^([0-9]{4})(0[1-9]|1[0-2])$ ]]; then
+              found_dates+=("$date_str")
+              break  # 每个文件只取第一个合法日期
+          fi
+      done < <(echo "$filename" | grep -oP '(?<!\d)\d{6}(?!\d)')
+  done < <(find "${data_dir1}" -type f -print0)
+
+  # 检查是否包含上个月日期
+  contains_last_month=0
+  for date in "${found_dates[@]}"; do
+      if [[ "$date" == "$last_month" ]]; then
+          contains_last_month=1
+          break
+      fi
+  done
+
+  # 输出最终结果
+  if [ $contains_last_month -eq 0 ]; then
+    echo "${data_dir1} 缺失日期:"
+    echo "${last_month}"
+    list_files "${data_dir2}"
+    echo ''
+  fi
+}
+
+check_day_data() {
+  data_dir1=$1
+  data_dir2=$2
+  # 设置日期范围:上个月第一天至昨天
+  first_day_last_month=$(date -d "last month" +%Y%m01)
+  yesterday=$(date -d "yesterday" +%Y%m%d)
+
+  # 生成日期范围内的所有日期
+  all_dates=$(
+    current_date="$first_day_last_month"
+    while [ "$current_date" -lt "$yesterday" ]; do
+      echo "$current_date"
+      current_date=$(date -d "$current_date + 1 day" +%Y%m%d)
+    done
+  )
+
+  # 提取文件名中的所有日期(格式yyyymmdd)
+  file_dates=$(
+    find "${data_dir1}" -type f -name '*_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_*' \
+      | grep -oE '_([0-9]{8})_' \
+      | sed 's/_//g' \
+      | sort -u
+  )
+
+  # 找出缺失日期
+  missing_dates=$(comm -23 <(echo "$all_dates" | sort) <(echo "$file_dates" | sort))
+
+  # 输出结果
+  if [ -n "$missing_dates" ]; then
+    echo "${data_dir1} 缺失日期:"
+    echo "${missing_dates}"
+    list_files "${data_dir2}"
+    echo ''
+  fi
+}
+
+check_month_data '/data/history/rxftp/clbf' '/data/jzftp/rx/HE_M_DEMP_CLBF'
+check_month_data '/data/history/rxftp/wdycbjytjbjcs' '/data/jzftp/rx/HE_M_DEMP_WDYCBJYTJBJCS'
+check_month_data '/data/history/rxftp/wdycbjytjcccs' '/data/jzftp/rx/HE_M_DEMP_WDYCBJYTJCCCS'
+check_month_data '/data/history/rxftp/xslcytj' '/data/jzftp/rx/HE_M_DEMP_XSLCYTJ'
+check_month_data '/data/history/dsjftp/hebei_province' '/data/dsjftp/hebei_province'
+check_month_data '/data/history/dsjftp/ten_northern_provinces' '/data/dsjftp/ten_northern_provinces'
+check_month_data '/data/history/jzftp/E_M_MTC_HOUSELISTED' '/data/jzftp/E_M_MTC_HOUSELISTED'
+check_month_data '/data/history/jzftp/HE_M_MTC_HOUSE' '/data/jzftp/HE_M_MTC_HOUSE'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_CHARGE' '/data/jzftp/HE_M_MTC_VEHICLE_CHARGE'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_CLLQ' '/data/jzftp/HE_M_MTC_VEHICLE_CLLQ'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_DEBX' '/data/jzftp/HE_M_MTC_VEHICLE_DEBX'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_INSPECTION' '/data/jzftp/HE_M_MTC_VEHICLE_INSPECTION'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_INSURANCE' '/data/jzftp/HE_M_MTC_VEHICLE_INSURANCE'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_MAINTENANCE' '/data/jzftp/HE_M_MTC_VEHICLE_MAINTENANCE'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_OIL' '/data/jzftp/HE_M_MTC_VEHICLE_OIL'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_OTHER' '/data/jzftp/HE_M_MTC_VEHICLE_OTHER'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_RENT' '/data/jzftp/HE_M_MTC_VEHICLE_RENT'
+check_month_data '/data/history/jzftp/HE_M_MTC_VEHICLE_SCGY' '/data/jzftp/HE_M_MTC_VEHICLE_SCGY'
+
+check_day_data '/data/history/rxftp/cljbxx' '/data/jzftp/rx/HE_D_DEMP_CLJBXX'
+check_day_data '/data/history/rxftp/HE_D_DEMP_WDYCBJRTJBJCS' '/data/jzftp/rx/HE_D_DEMP_WDYCBJRTJBJCS'
+check_day_data '/data/history/rxftp/HE_D_DEMP_WDYCBJRTJCCCS' '/data/jzftp/rx/HE_D_DEMP_WDYCBJRTJCCCS'
+check_day_data '/data/history/rxftp/xslcrtj' '/data/jzftp/rx/HE_D_DEMP_XSLCRTJ'
+check_day_data '/data/history/rxftp/yjbjrtj' '/data/jzftp/rx/HE_D_DEMP_YJBJRTJ'

+ 25 - 0
src/main/java/com/nokia/finance/tasks/dao/common/JobConfigDao.java

@@ -0,0 +1,25 @@
+package com.nokia.finance.tasks.dao.common;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.nokia.finance.tasks.pojo.po.common.JobConfigPo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+/**
+ * <p>
+ * 定时任务配置 Mapper 接口
+ * </p>
+ *
+ */
+@Mapper
+public interface JobConfigDao extends BaseMapper<JobConfigPo> {
+    /**
+     * 判断任务是否禁用
+     *
+     * @param jobId 任务id
+     * @return true 禁用 false 未禁用
+     */
+    @Select("select exists(select 1 from common.job_config where id = #{jobId} and enabled = 0)")
+    boolean isDisabled(String jobId);
+
+}

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/CarReportJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.CarReportConfig;
 import com.nokia.finance.tasks.dao.car.CarReportDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.car_report.CarBglryQsPo;
 import com.nokia.finance.tasks.pojo.po.car_report.CarBglryUnitPo;
@@ -78,13 +79,15 @@ public class CarReportJob {
     private final CarReportDao carReportDao;
     private final FileService fileService;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
     public CarReportJob(CarReportConfig carReportConfig, CarReportDao carReportDao, FileService fileService,
-                        DataLogServiceImpl dataLogService) {
+                        DataLogServiceImpl dataLogService, JobConfigDao jobConfigDao) {
         this.carReportConfig = carReportConfig;
         this.carReportDao = carReportDao;
         this.fileService = fileService;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -93,6 +96,10 @@ public class CarReportJob {
     @Scheduled(cron = "0 30 0 13 * ?")
     @Transactional(timeout = 300, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarReportJob")) {
+            log.warn("跳过车辆报告定时任务");
+            return;
+        }
         runJob(LocalDate.now());
     }
 

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/cxdp/CarCxdpJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car.cxdp;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
 import com.nokia.finance.tasks.dao.car.CarCxdpDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -37,11 +38,13 @@ public class CarCxdpJob {
     private final JobConfig jobConfig;
     private final CarCxdpDao carCxdpDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    CarCxdpJob(JobConfig jobConfig, CarCxdpDao carCxdpDao, DataLogServiceImpl dataLogService) {
+    CarCxdpJob(JobConfig jobConfig, CarCxdpDao carCxdpDao, DataLogServiceImpl dataLogService, JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.carCxdpDao = carCxdpDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -50,6 +53,10 @@ public class CarCxdpJob {
     @Scheduled(cron = "0 14 0 15 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarCxdpJob")) {
+            log.warn("跳过车效大屏建设数据定时任务");
+            return;
+        }
         log.info("执行车效大屏建设数据定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/procedure/CarBaseDataMonthProcJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.car.procedure;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.dao.car.CarProcedureDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.dao.gdc.car.GdcCarProcedureDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
@@ -26,12 +27,14 @@ public class CarBaseDataMonthProcJob {
     private final CarProcedureDao carProcedureDao;
     private final GdcCarProcedureDao gdcCarProcedureDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
     public CarBaseDataMonthProcJob(CarProcedureDao carProcedureDao, GdcCarProcedureDao gdcCarProcedureDao,
-                                   DataLogServiceImpl dataLogService) {
+                                   DataLogServiceImpl dataLogService, JobConfigDao jobConfigDao) {
         this.carProcedureDao = carProcedureDao;
         this.gdcCarProcedureDao = gdcCarProcedureDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -40,6 +43,10 @@ public class CarBaseDataMonthProcJob {
     @Scheduled(cron = "0 0 0 10 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarBaseDataMonthProcJob")) {
+            log.warn("跳过车辆基本信息月数据加工定时任务");
+            return;
+        }
         log.info("执行车辆基本信息月数据加工定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/procedure/CarFeeProcJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.car.procedure;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.dao.car.CarProcedureDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.dao.gdc.car.GdcCarProcedureDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
@@ -26,12 +27,14 @@ public class CarFeeProcJob {
     private final CarProcedureDao carProcedureDao;
     private final GdcCarProcedureDao gdcCarProcedureDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
     public CarFeeProcJob(CarProcedureDao carProcedureDao, GdcCarProcedureDao gdcCarProcedureDao,
-                         DataLogServiceImpl dataLogService) {
+                         DataLogServiceImpl dataLogService, JobConfigDao jobConfigDao) {
         this.carProcedureDao = carProcedureDao;
         this.gdcCarProcedureDao = gdcCarProcedureDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -40,6 +43,10 @@ public class CarFeeProcJob {
     @Scheduled(cron = "0 2 0 13 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarFeeProcJob")) {
+            log.warn("跳过车辆费用数据加工定时任务");
+            return;
+        }
         log.info("执行车辆费用数据加工定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/procedure/CarLiChengMonthProcJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.car.procedure;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.dao.car.CarProcedureDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -24,10 +25,12 @@ import java.util.concurrent.CompletableFuture;
 public class CarLiChengMonthProcJob {
     private final CarProcedureDao carProcedureDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    public CarLiChengMonthProcJob(CarProcedureDao carProcedureDao, DataLogServiceImpl dataLogService) {
+    public CarLiChengMonthProcJob(CarProcedureDao carProcedureDao, DataLogServiceImpl dataLogService, JobConfigDao jobConfigDao) {
         this.carProcedureDao = carProcedureDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -36,6 +39,10 @@ public class CarLiChengMonthProcJob {
     @Scheduled(cron = "0 2 0 10 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarLiChengMonthProcJob")) {
+            log.warn("跳过车辆行驶里程月数据加工定时任务");
+            return;
+        }
         log.info("执行车辆行驶里程月数据加工定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/procedure/CarPaiDanProcJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.car.procedure;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.dao.car.CarProcedureDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.dao.gdc.car.GdcCarProcedureDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
@@ -26,12 +27,14 @@ public class CarPaiDanProcJob {
     private final CarProcedureDao carProcedureDao;
     private final GdcCarProcedureDao gdcCarProcedureDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
     public CarPaiDanProcJob(CarProcedureDao carProcedureDao, GdcCarProcedureDao gdcCarProcedureDao,
-                            DataLogServiceImpl dataLogService) {
+                            DataLogServiceImpl dataLogService, JobConfigDao jobConfigDao) {
         this.carProcedureDao = carProcedureDao;
         this.gdcCarProcedureDao = gdcCarProcedureDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -40,6 +43,10 @@ public class CarPaiDanProcJob {
     @Scheduled(cron = "0 4 0 10 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarPaiDanProcJob")) {
+            log.warn("跳过车辆派单数据加工定时任务");
+            return;
+        }
         log.info("执行车辆派单数据加工定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarHighFuelConsumptionJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car.strategy;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
 import com.nokia.finance.tasks.dao.car.CarStrategyDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -37,11 +38,14 @@ public class CarHighFuelConsumptionJob {
     private final JobConfig jobConfig;
     private final CarStrategyDao carStrategyDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    CarHighFuelConsumptionJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService) {
+    CarHighFuelConsumptionJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService,
+                              JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.carStrategyDao = carStrategyDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -50,6 +54,10 @@ public class CarHighFuelConsumptionJob {
     @Scheduled(cron = "0 8 0 15 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarHighFuelConsumptionJob")) {
+            log.warn("跳过高油耗车辆策略定时任务");
+            return;
+        }
         log.info("执行高油耗车辆策略定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarHighRepairJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car.strategy;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
 import com.nokia.finance.tasks.dao.car.CarStrategyDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -37,11 +38,14 @@ public class CarHighRepairJob {
     private final JobConfig jobConfig;
     private final CarStrategyDao carStrategyDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    CarHighRepairJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService) {
+    CarHighRepairJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService,
+                     JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.carStrategyDao = carStrategyDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
     /**
      * 执行任务
@@ -49,6 +53,10 @@ public class CarHighRepairJob {
     @Scheduled(cron = "0 6 0 15 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarHighRepairJob")) {
+            log.warn("跳过高修理车辆策略定时任务");
+            return;
+        }
         log.info("执行高修理车辆策略定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarInefficiencyPercentJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car.strategy;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
 import com.nokia.finance.tasks.dao.car.CarStrategyDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -37,11 +38,14 @@ public class CarInefficiencyPercentJob {
     private final JobConfig jobConfig;
     private final CarStrategyDao carStrategyDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    CarInefficiencyPercentJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService) {
+    CarInefficiencyPercentJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService,
+                              JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.carStrategyDao = carStrategyDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
     /**
      * 执行任务
@@ -49,6 +53,10 @@ public class CarInefficiencyPercentJob {
     @Scheduled(cron = "0 12 0 15 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarInefficiencyPercentJob")) {
+            log.warn("跳过车辆低效占比策略定时任务");
+            return;
+        }
         log.info("执行车辆低效占比策略定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarInefficiencyQxJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car.strategy;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
 import com.nokia.finance.tasks.dao.car.CarStrategyDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -37,11 +38,14 @@ public class CarInefficiencyQxJob {
     private final JobConfig jobConfig;
     private final CarStrategyDao carStrategyDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    CarInefficiencyQxJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService) {
+    CarInefficiencyQxJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService,
+                         JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.carStrategyDao = carStrategyDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
     /**
      * 执行任务
@@ -49,6 +53,10 @@ public class CarInefficiencyQxJob {
     @Scheduled(cron = "0 10 0 15 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarInefficiencyQxJob")) {
+            log.warn("跳过车辆低效区县策略定时任务");
+            return;
+        }
         log.info("执行车辆低效区县策略定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarRentalRepairJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car.strategy;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
 import com.nokia.finance.tasks.dao.car.CarStrategyDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -37,11 +38,14 @@ public class CarRentalRepairJob {
     private final JobConfig jobConfig;
     private final CarStrategyDao carStrategyDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    CarRentalRepairJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService) {
+    CarRentalRepairJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService,
+                       JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.carStrategyDao = carStrategyDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
     /**
      * 执行任务
@@ -49,6 +53,10 @@ public class CarRentalRepairJob {
     @Scheduled(cron = "0 4 0 15 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarRentalRepairJob")) {
+            log.warn("跳过租赁车辆产生维修费策略定时任务");
+            return;
+        }
         log.info("执行租赁车辆产生维修费策略定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarViolationUnprocessedJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car.strategy;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
 import com.nokia.finance.tasks.dao.car.CarStrategyDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -37,11 +38,14 @@ public class CarViolationUnprocessedJob {
     private final JobConfig jobConfig;
     private final CarStrategyDao carStrategyDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    CarViolationUnprocessedJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService) {
+    CarViolationUnprocessedJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService,
+                               JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.carStrategyDao = carStrategyDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -50,6 +54,10 @@ public class CarViolationUnprocessedJob {
     @Scheduled(cron = "0 2 0 15 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarViolationUnprocessedJob")) {
+            log.warn("跳过车辆违章未处理策略定时任务");
+            return;
+        }
         log.info("执行车辆违章未处理策略定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/car/strategy/CarWdyjJob.java

@@ -3,6 +3,7 @@ package com.nokia.finance.tasks.jobs.car.strategy;
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
 import com.nokia.finance.tasks.dao.car.CarStrategyDao;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
 import com.nokia.finance.tasks.service.common.DataLogServiceImpl;
@@ -37,11 +38,14 @@ public class CarWdyjJob {
     private final JobConfig jobConfig;
     private final CarStrategyDao carStrategyDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    CarWdyjJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService) {
+    CarWdyjJob(JobConfig jobConfig, CarStrategyDao carStrategyDao, DataLogServiceImpl dataLogService,
+               JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.carStrategyDao = carStrategyDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -50,6 +54,10 @@ public class CarWdyjJob {
     @Scheduled(cron = "0 0 0 15 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("CarWdyjJob")) {
+            log.warn("跳过违规车辆策略定时任务");
+            return;
+        }
         log.info("执行违规车辆策略定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/house/HouseReportJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.house;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.HouseReportConfig;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.dao.house.HouseReportDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
@@ -65,13 +66,15 @@ public class HouseReportJob {
     private final HouseReportDao houseReportDao;
     private final FileService fileService;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
     public HouseReportJob(HouseReportConfig houseReportConfig, HouseReportDao houseReportDao, FileService fileService,
-                          DataLogServiceImpl dataLogService) {
+                          DataLogServiceImpl dataLogService, JobConfigDao jobConfigDao) {
         this.houseReportConfig = houseReportConfig;
         this.houseReportDao = houseReportDao;
         this.fileService = fileService;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -80,6 +83,10 @@ public class HouseReportJob {
     @Scheduled(cron = "0 35 0 13 * ?")
     @Transactional(timeout = 300, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("HouseReportJob")) {
+            log.warn("跳过不动产报告定时任务");
+            return;
+        }
         runJob(LocalDate.now());
     }
 

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/house/fcdp/HouseBuildingAreaStatJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.house.fcdp;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.dao.house.HouseFcdpDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
@@ -37,11 +38,14 @@ public class HouseBuildingAreaStatJob {
     private final JobConfig jobConfig;
     private final HouseFcdpDao houseFcdpDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    HouseBuildingAreaStatJob(JobConfig jobConfig, HouseFcdpDao houseFcdpDao, DataLogServiceImpl dataLogService) {
+    HouseBuildingAreaStatJob(JobConfig jobConfig, HouseFcdpDao houseFcdpDao, DataLogServiceImpl dataLogService,
+                             JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.houseFcdpDao = houseFcdpDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -50,6 +54,10 @@ public class HouseBuildingAreaStatJob {
     @Scheduled(cron = "0 0 0 13 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("HouseBuildingAreaStatJob")) {
+            log.warn("跳过房产大屏建筑面积统计定时任务");
+            return;
+        }
         log.info("执行房产大屏建筑面积统计定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/house/fcdp/HouseBuildingLandCountJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.house.fcdp;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.dao.house.HouseFcdpDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
@@ -37,11 +38,14 @@ public class HouseBuildingLandCountJob {
     private final JobConfig jobConfig;
     private final HouseFcdpDao houseFcdpDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    HouseBuildingLandCountJob(JobConfig jobConfig, HouseFcdpDao houseFcdpDao, DataLogServiceImpl dataLogService) {
+    HouseBuildingLandCountJob(JobConfig jobConfig, HouseFcdpDao houseFcdpDao, DataLogServiceImpl dataLogService,
+                              JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.houseFcdpDao = houseFcdpDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
     /**
      * 执行任务
@@ -49,6 +53,10 @@ public class HouseBuildingLandCountJob {
     @Scheduled(cron = "0 2 0 13 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("HouseBuildingLandCountJob")) {
+            log.warn("跳过房产大屏建筑和土地数量统计定时任务");
+            return;
+        }
         log.info("执行房产大屏建筑和土地数量统计定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/house/fcdp/HouseRentalIncomeJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.house.fcdp;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.utils.FileUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.csv.CSVFormat;
@@ -28,9 +29,11 @@ import java.util.Map;
 @Service
 public class HouseRentalIncomeJob {
     private final JobConfig jobConfig;
+    private final JobConfigDao jobConfigDao;
 
-    HouseRentalIncomeJob(JobConfig jobConfig) {
+    HouseRentalIncomeJob(JobConfig jobConfig, JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
+        this.jobConfigDao = jobConfigDao;
     }
     /**
      * 执行任务
@@ -38,6 +41,10 @@ public class HouseRentalIncomeJob {
     @Scheduled(cron = "0 4 0 13 * ?")
 //    @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("HouseRentalIncomeJob")) {
+            log.warn("跳过房产大屏出租收入统计定时任务");
+            return;
+        }
         try {
             log.info("执行房产大屏出租收入统计定时任务");
             LocalDate localDateNow = LocalDate.now();

+ 9 - 1
src/main/java/com/nokia/finance/tasks/jobs/house/procedure/HouseBuildingRepairProcJob.java

@@ -1,6 +1,7 @@
 package com.nokia.finance.tasks.jobs.house.procedure;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.dao.house.HouseProcedureDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
@@ -24,10 +25,13 @@ import java.util.concurrent.CompletableFuture;
 public class HouseBuildingRepairProcJob {
     private final HouseProcedureDao houseProcedureDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
-    public HouseBuildingRepairProcJob(HouseProcedureDao houseProcedureDao, DataLogServiceImpl dataLogService) {
+    public HouseBuildingRepairProcJob(HouseProcedureDao houseProcedureDao, DataLogServiceImpl dataLogService,
+                                      JobConfigDao jobConfigDao) {
         this.houseProcedureDao = houseProcedureDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -36,6 +40,10 @@ public class HouseBuildingRepairProcJob {
     @Scheduled(cron = "0 0 0 13 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("HouseBuildingRepairProcJob")) {
+            log.warn("跳过不动产自有房产维修数据加工定时任务");
+            return;
+        }
         log.info("执行不动产自有房产维修数据加工定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 8 - 1
src/main/java/com/nokia/finance/tasks/jobs/house/strategy/HouseBuildingIdleStrategyJob.java

@@ -2,6 +2,7 @@ package com.nokia.finance.tasks.jobs.house.strategy;
 
 import com.nokia.finance.tasks.common.exception.MyRuntimeException;
 import com.nokia.finance.tasks.config.JobConfig;
+import com.nokia.finance.tasks.dao.common.JobConfigDao;
 import com.nokia.finance.tasks.dao.house.HouseStrategyDao;
 import com.nokia.finance.tasks.enums.DataStageEnum;
 import com.nokia.finance.tasks.pojo.po.common.DataLogPo;
@@ -37,12 +38,14 @@ public class HouseBuildingIdleStrategyJob {
     private final JobConfig jobConfig;
     private final HouseStrategyDao houseStrategyDao;
     private final DataLogServiceImpl dataLogService;
+    private final JobConfigDao jobConfigDao;
 
     HouseBuildingIdleStrategyJob(JobConfig jobConfig, HouseStrategyDao houseStrategyDao,
-                                 DataLogServiceImpl dataLogService) {
+                                 DataLogServiceImpl dataLogService, JobConfigDao jobConfigDao) {
         this.jobConfig = jobConfig;
         this.houseStrategyDao = houseStrategyDao;
         this.dataLogService = dataLogService;
+        this.jobConfigDao = jobConfigDao;
     }
 
     /**
@@ -51,6 +54,10 @@ public class HouseBuildingIdleStrategyJob {
     @Scheduled(cron = "0 6 0 13 * ?")
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void runJob() {
+        if (jobConfigDao.isDisabled("HouseBuildingIdleStrategyJob")) {
+            log.warn("跳过闲置建筑面积超过1000平米策略定时任务");
+            return;
+        }
         log.info("执行闲置建筑面积超过1000平米策略定时任务");
         List<DataLogPo> dataLogPoList = new ArrayList<>();
         DataLogPo dataLogPo = new DataLogPo();

+ 32 - 0
src/main/java/com/nokia/finance/tasks/pojo/po/common/JobConfigPo.java

@@ -0,0 +1,32 @@
+package com.nokia.finance.tasks.pojo.po.common;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * <p>
+ * 定时任务配置
+ * </p>
+ *
+ */
+@Data
+@TableName("common.job_config")
+public class JobConfigPo {
+
+    /**
+     * 任务id
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 任务名称
+     */
+    private String name;
+
+    /**
+     * 是否启用,0否1是
+     */
+    private Integer enabled;
+}