Browse Source

feat: 添加策略输出路径

weijianghai 8 months ago
parent
commit
98dcc4fc7e

+ 4 - 0
src/main/java/com/nokia/finance/tasks/config/JobConfig.java

@@ -240,4 +240,8 @@ public class JobConfig {
      * 河北成本管理系统车辆服务费数据归档路径
      */
     private String carFuWuFeiHistoryPath;
+    /**
+     * 策略输出临时路径
+     */
+    private String tempOutputDir;
 }

+ 36 - 2
src/main/java/com/nokia/finance/tasks/dao/car/CarProcedureDao.java

@@ -2192,7 +2192,22 @@ from
 ),
 t301 as (
 select
-    *
+    *,
+    extract(year
+from
+    age(to_date(year_month::varchar,
+    'YYYYMM'),
+    deng_ji_ri_qi)) || '年' ||
+  extract(month
+from
+    age(to_date(year_month::varchar,
+    'YYYYMM'),
+    deng_ji_ri_qi)) || '月' ||
+  extract(day
+from
+    age(to_date(year_month::varchar,
+    'YYYYMM'),
+    deng_ji_ri_qi)) || '天' as che_ling_str
 from
     t202
 where
@@ -2218,6 +2233,7 @@ year_month,
     wei_xiu_rank,
     deng_ji_ri_qi,
     che_ling,
+    che_ling_str,
     year_no,
     month_no,
     area_no,
@@ -2245,6 +2261,7 @@ select
     wei_xiu_rank,
     deng_ji_ri_qi,
     che_ling,
+    che_ling_str,
     year_no,
     month_no,
     area_no,
@@ -2323,7 +2340,22 @@ from
 ),
 t301 as (
 select
-    *
+    *,
+    extract(year
+from
+    age(to_date(year_month::varchar,
+    'YYYYMM'),
+    deng_ji_ri_qi)) || '年' ||
+  extract(month
+from
+    age(to_date(year_month::varchar,
+    'YYYYMM'),
+    deng_ji_ri_qi)) || '月' ||
+  extract(day
+from
+    age(to_date(year_month::varchar,
+    'YYYYMM'),
+    deng_ji_ri_qi)) || '天' as che_ling_str
 from
     t202
 where
@@ -2348,6 +2380,7 @@ year_month,
     wei_xiu_rank,
     deng_ji_ri_qi,
     che_ling,
+    che_ling_str,
     year_no,
     month_no,
     area_no,
@@ -2375,6 +2408,7 @@ select
     wei_xiu_rank,
     deng_ji_ri_qi,
     che_ling,
+    che_ling_str,
     year_no,
     month_no,
     area_no,

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

@@ -57,11 +57,12 @@ public class CarCxdpJob {
             List<LinkedHashMap<String, Object>> list = carCxdpDao.getCarCxdp(endYearMonth);
             String dir = jobConfig.getCarCxdpOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "car_cxdp_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "car_cxdp_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -80,6 +81,8 @@ public class CarCxdpJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("车效大屏建设数据定时任务失败");

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

@@ -60,11 +60,12 @@ public class CarHighFuelConsumptionJob {
             }
             String dir = jobConfig.getCarHighFuelConsumptionOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "car_high_fuel_consumption_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "car_high_fuel_consumption_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -80,6 +81,8 @@ public class CarHighFuelConsumptionJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("高油耗车辆策略定时任务失败");

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

@@ -59,11 +59,12 @@ public class CarHighRepairJob {
             }
             String dir = jobConfig.getCarHighRepairOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "car_high_repair_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "car_high_repair_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -79,6 +80,8 @@ public class CarHighRepairJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("高修理车辆策略定时任务失败");

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

@@ -55,11 +55,12 @@ public class CarInefficiencyPercentJob {
             List<LinkedHashMap<String, Object>> list = carStrategyDao.getCarInefficiencyPercent(endYearMonth);
             String dir = jobConfig.getCarInefficiencyPercentOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "car_inefficiency_percent_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "car_inefficiency_percent_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);

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

@@ -55,11 +55,12 @@ public class CarInefficiencyQxJob {
             List<LinkedHashMap<String, Object>> list = carStrategyDao.getCarInefficiencyQx(endYearMonth);
             String dir = jobConfig.getCarInefficiencyQxOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "car_inefficiency_qx_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "car_inefficiency_qx_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -78,6 +79,8 @@ public class CarInefficiencyQxJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("车辆低效区县策略定时任务失败");

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

@@ -57,11 +57,12 @@ public class CarRentalRepairJob {
             List<LinkedHashMap<String, Object>> list = carStrategyDao.getCarRentalRepair(endYearMonth);
             String dir = jobConfig.getCarRentalRepairOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "car_rental_repair_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "car_rental_repair_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -80,6 +81,8 @@ public class CarRentalRepairJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("租赁车辆产生维修费策略定时任务失败");

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

@@ -56,11 +56,12 @@ public class CarViolationUnprocessedJob {
             List<LinkedHashMap<String, Object>> list = carStrategyDao.getCarViolationUnprocessed(endYearMonth);
             String dir = jobConfig.getCarViolationUnprocessedOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "car_violation_unprocessed_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "car_violation_unprocessed_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -79,6 +80,8 @@ public class CarViolationUnprocessedJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("车辆违章未处理策略定时任务失败");

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

@@ -52,11 +52,12 @@ public class CarWdyjJob {
             List<LinkedHashMap<String, Object>> list = carStrategyDao.getCarWdyj(endYearMonth);
             String dir = jobConfig.getCarWdyjOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "car_wdyj_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "car_wdyj_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -75,6 +76,8 @@ public class CarWdyjJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("违规车辆策略定时任务失败");

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

@@ -55,11 +55,12 @@ public class HouseBuildingAreaStatJob {
             List<LinkedHashMap<String, Object>> list = houseFcdpDao.getHouseBuildingAreaStat(endYearMonth);
             String dir = jobConfig.getHouseBuildingAreaStatOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "building_area_stat_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "building_area_stat_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -78,6 +79,8 @@ public class HouseBuildingAreaStatJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("房产大屏建筑面积统计定时任务失败");

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

@@ -54,11 +54,12 @@ public class HouseBuildingLandCountJob {
             List<LinkedHashMap<String, Object>> list = houseFcdpDao.getHouseBuildingLandCount(endYearMonth);
             String dir = jobConfig.getHouseBuildingLandCountOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "building_land_count_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "building_land_count_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -77,6 +78,8 @@ public class HouseBuildingLandCountJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("房产大屏建筑和土地数量统计定时任务失败");

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

@@ -46,11 +46,12 @@ public class HouseRentalIncomeJob {
             List<Map<String, Object>> list = new ArrayList<>();
             String dir = jobConfig.getHouseRentalIncomeOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "rental_income_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "rental_income_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -69,6 +70,8 @@ public class HouseRentalIncomeJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             throw new MyRuntimeException("执行房产大屏出租收入统计定时任务失败");
         }

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

@@ -57,11 +57,12 @@ public class HouseBuildingIdleStrategyJob {
             List<LinkedHashMap<String, Object>> list = houseStrategyDao.getBuildingIdleStrategy(endYearMonth);
             String dir = jobConfig.getHouseBuildingIdleStrategyOutputPath();
             Path dirPath = Paths.get(dir);
-            Path filePath = Paths.get(dir + "building_idle_strategy_" + endYearMonth + ".csv");
             if (!Files.exists(dirPath)) {
                 Files.createDirectories(dirPath);
                 FileUtil.setDefaultDirPermissions(dirPath);
             }
+            String filename = "building_idle_strategy_" + endYearMonth + ".csv";
+            Path filePath = Paths.get(dir + filename);
             char delimiter = 1;
             try (OutputStreamWriter osw = new OutputStreamWriter(Files.newOutputStream(filePath),
                     StandardCharsets.UTF_8);
@@ -80,6 +81,8 @@ public class HouseBuildingIdleStrategyJob {
                 }
             }
             FileUtil.setDefaultFilePermissions(filePath);
+            Files.createDirectories(Paths.get(jobConfig.getTempOutputDir()));
+            Files.copy(filePath, Paths.get(jobConfig.getTempOutputDir() + filename));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new MyRuntimeException("闲置建筑面积超过1000平米策略定时任务失败");

+ 2 - 0
src/main/resources/application-dev.yml

@@ -138,6 +138,8 @@ job:
     car-fu-wu-fei-source-path: data/jzftp/HE_M_MTC_VEHICLE_CHARGE/
     # 河北成本管理系统车辆服务费数据归档路径
     car-fu-wu-fei-history-path: data/history/jzftp/HE_M_MTC_VEHICLE_CHARGE/
+    # 策略输出临时路径
+    temp-output-dir: temp-output/
 # 车辆报告配置
 car-report:
   # docx文件夹

+ 2 - 0
src/main/resources/application-prod.yml

@@ -129,6 +129,8 @@ job:
     car-fu-wu-fei-source-path: /data/jzftp/HE_M_MTC_VEHICLE_CHARGE/
     # 河北成本管理系统车辆服务费数据归档路径
     car-fu-wu-fei-history-path: /data/history/jzftp/HE_M_MTC_VEHICLE_CHARGE/
+    # 策略输出临时路径
+    temp-output-dir: temp-output/
 # 车辆报告配置
 car-report:
   # docx文件夹