yuanhao 2 yıl önce
ebeveyn
işleme
6ec6cf101f

+ 8 - 2
in-client-qn/pom.xml

@@ -56,6 +56,11 @@
         </dependency>
 
         <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-undertow</artifactId>
         </dependency>
@@ -107,13 +112,14 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-quartz</artifactId>
+            <version>2.7.2</version>
         </dependency>
 
-        <dependency>
+      <!--  <dependency>
             <groupId>com.mchange</groupId>
             <artifactId>c3p0</artifactId>
             <version>0.9.5.4</version>
-        </dependency>
+        </dependency>-->
 
         <dependency>
             <groupId>org.apache.velocity</groupId>

+ 44 - 0
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/job/BackFileAnalysisJob.java

@@ -0,0 +1,44 @@
+package com.jiayue.insu.inclientqn.job;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.jiayue.insu.inclientqn.constant.CommonStant;
+import com.jiayue.insu.inclientqn.entity.Record;
+import com.jiayue.insu.inclientqn.inenum.QNHLEnum;
+import com.jiayue.insu.inclientqn.inenum.StatusEnum;
+import com.jiayue.insu.inclientqn.service.RecordService;
+import com.jiayue.insu.inclientqn.service.client.BackDataAnalysisService;
+import com.jiayue.insu.inclientqn.util.DateTimeUtils;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.time.LocalDateTime;
+
+/**
+ * @description: 回传预测数据定时任务
+ * @author: yuanhao
+ * @createDate: 2022/6/17
+ * @version: 1.0
+ */
+public class BackFileAnalysisJob implements Job {
+
+
+    @Autowired
+    private BackDataAnalysisService backDataAnalysisService;
+    @Autowired
+    private RecordService recordService;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        long time = DateTimeUtils.get15min(DateUtil.date().getTime());
+        LocalDateTime localDateTime = LocalDateTimeUtil.of(time);
+        Record record = recordService.findTimeAndTypeAndState(localDateTime, CommonStant.RECORD_TYPE_BACK_DATA_FILE, StatusEnum.SUCCESS.getSign());
+
+        if (record == null) {
+            backDataAnalysisService.watchFile(time);
+        }
+
+    }
+}

+ 51 - 4
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/service/client/BackDataAnalysisService.java

@@ -100,13 +100,60 @@ public class BackDataAnalysisService {
 
     }
 
+
+    public void watchFile(Long time){
+       String fileName =  CommonStant.RECORD_TYPE_BACK_DATA_FILE+"_" +LocalDateTimeUtil.format(LocalDateTimeUtil.of(time),DatePattern.PURE_DATETIME_PATTERN)+".CIME";
+        //获取扫描文件路径
+        if (StrUtil.isEmpty(backFilePath)) {
+            backFilePath = stationService.findThis().getBackFilePath();
+        }
+
+
+        File file = FileUtil.file(backFilePath+File.separatorChar +fileName);
+
+        if (file.exists()) {// 判断目录是否存在
+
+            Record record = new Record();
+            record.setType(CommonStant.RECORD_TYPE_BACK_DATA_FILE);
+            record.setState(StatusEnum.FILE_NULL.getCode());
+            record.setStateContent(StatusEnum.FILE_NULL.getMsg());
+            LocalDateTime localDateTime = LocalDateTimeUtil.of(DateTimeUtils.get15min(time));
+            record.setTime(localDateTime);
+            record.setCreateTime(LocalDateTime.now());
+
+            try {
+
+                    FileReader fileReader = new FileReader(file);
+                    List<String> contents = fileReader.readLines();
+                    if (CollectionUtil.isNotEmpty(contents)) {
+                        String s = fileAnalysis(contents);
+                        if (StrUtil.isNotEmpty(s)) {
+                            record.setStateContent(s);
+                            record.setState(StatusEnum.SUCCESS.getCode());
+                        }
+
+                    }
+
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                record.setCreateTime(LocalDateTime.now());
+                record.setTime(localDateTime);
+                recordService.save(record);
+            }
+
+
+        }
+    }
+
     /**
      * 解析回传数据文件
      */
     public void watchFile() {
 
 
-        //获取扫描文件路径
+      /*  //获取扫描文件路径
         if (StrUtil.isEmpty(backFilePath)) {
             backFilePath = stationService.findThis().getBackFilePath();
         }
@@ -133,7 +180,7 @@ public class BackDataAnalysisService {
 
                 try {
                     Object obj = event.context();
-                    System.out.println();
+
                     Console.log("创建:{}-> {}", currentPath, obj);
                     if (obj.toString().startsWith(CommonStant.RECORD_TYPE_BACK_DATA_FILE)) {
 
@@ -184,7 +231,7 @@ public class BackDataAnalysisService {
         //设置监听目录的最大深入,目录层级大于制定层级的变更将不被监听,默认只监听当前层级目录
         watchMonitor.setMaxDepth(3);
         //启动监听
-        watchMonitor.start();
+        watchMonitor.start();*/
 
 
     }
@@ -338,7 +385,7 @@ public class BackDataAnalysisService {
                         for (String content : value) {
                             String[] datas = content.split("\\s+");
                             BackForeForecastData backForeForecastData = new BackForeForecastData();
-                            backForeForecastData.setSignTime(signTime);
+                            backForeForecastData.setSignTime(LocalDateTimeUtil.beginOfDay(signTime));
                             backForeForecastData.setAnalysisTime(now);
                             backForeForecastData.setForecastTime(LocalDateTimeUtil.parse(datas[2], DatePattern.PURE_DATETIME_PATTERN));
                             backForeForecastData.setForecastValue(new BigDecimal(datas[3]));

+ 1 - 1
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/service/client/BackDataGenBodyService.java

@@ -107,7 +107,7 @@ public class BackDataGenBodyService {
             content.append(dataContent);
             content.append(labelEnd);
         }catch (Exception e){
-            e.printStackTrace();
+            log.warn("回传数据-实际气象信息缺少数据");
             content = new StringBuilder();
         }
 

+ 16 - 0
in-client-qn/src/main/resources/quartz.properties

@@ -0,0 +1,16 @@
+org.quartz.scheduler.instanceName = SC_Scheduler
+org.quartz.threadPool.threadCount = 50
+org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 8 - 0
pom.xml

@@ -28,6 +28,7 @@
         <jasypt.version>3.0.3</jasypt.version>
         <mybatis.plus.version>3.5.1</mybatis.plus.version>
         <sa.token.version>1.30.0</sa.token.version>
+        <druid.version>1.2.1</druid.version>
     </properties>
     <dependencies>
         <dependency>
@@ -107,6 +108,13 @@
                 </exclusions>
             </dependency>
 
+
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>druid-spring-boot-starter</artifactId>
+                <version>${druid.version}</version>
+            </dependency>
+
             <dependency>
                 <groupId>cn.dev33</groupId>
                 <artifactId>sa-token-spring-boot-starter</artifactId>