From 236972a79220fa9afbf78665e647fb9195ef0014 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 21 三月 2024 17:29:59 +0800
Subject: [PATCH] 添加计算数据接口

---
 src/main/java/com/yssh/service/EmailService.java       |   80 +++++++++++++++++++++++++++++++++++++++-
 src/main/resources/application-dev.yml                 |    1 
 src/main/resources/application-prod.yml                |    1 
 src/main/resources/application-test.yml                |    1 
 src/main/resources/application-file.yml                |    1 
 src/main/resources/mapper/QxshMapper.xml               |   20 ++++++++++
 src/main/java/com/yssh/controller/EmailController.java |    7 +++
 7 files changed, 109 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/yssh/controller/EmailController.java b/src/main/java/com/yssh/controller/EmailController.java
index cfc7588..ab30513 100644
--- a/src/main/java/com/yssh/controller/EmailController.java
+++ b/src/main/java/com/yssh/controller/EmailController.java
@@ -34,4 +34,11 @@
 
         return Result.OK(flag);
     }
+
+    @ApiOperationSupport(order = 1)
+    @GetMapping("/calcData")
+    @ApiOperation(value = "璁$畻鏁版嵁", notes = "璁$畻鏁版嵁")
+    public Result calcData() {
+        return Result.OK(emailService.calcData());
+    }
 }
diff --git a/src/main/java/com/yssh/service/EmailService.java b/src/main/java/com/yssh/service/EmailService.java
index 0611e4c..27f4710 100644
--- a/src/main/java/com/yssh/service/EmailService.java
+++ b/src/main/java/com/yssh/service/EmailService.java
@@ -4,13 +4,14 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
 import javax.mail.*;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
-import java.util.Properties;
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * 閭欢鏈嶅姟绫�
@@ -46,6 +47,22 @@
 
     @Value("${email.cc}")
     private String cc;
+
+    @Value("${csv.bigPath}")
+    private String bigPath;
+
+    @Value("${csv.filePath}")
+    private String filePath;
+
+    @Value("${csv.vocPath}")
+    private String vocPath;
+
+    @Value("${email.hours}")
+    private Integer hours;
+
+    private final static SimpleDateFormat YMDH = new SimpleDateFormat("yyyyMMddHH");
+
+    private final static SimpleDateFormat Y_M_D_H = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
     protected final Logger logger = LoggerFactory.getLogger(this.getClass());
 
@@ -102,4 +119,63 @@
             return false;
         }
     }
+
+    public int calcData() {
+        List<String> list = new ArrayList<>();
+
+        int count = countCsv(bigPath, hours);
+        if (0 == count) {
+            list.add("澶SV杩� " + hours + " 灏忔椂瀛樺湪鏂囦欢缂哄け锛�");
+        }
+        count = countCsv(filePath, hours);
+        if (0 == count) {
+            list.add("涓瑿SV杩� " + hours + " 灏忔椂瀛樺湪鏂囦欢缂哄け锛�");
+        }
+        count = countCsv(vocPath, hours);
+        if (0 == count) {
+            list.add("灏廋SV杩� " + hours + " 灏忔椂瀛樺湪鏂囦欢缂哄け锛�");
+        }
+
+        Calendar calendar = getCalendar(1);
+        calendar = getCalendar(0);
+        Integer iEnd = Integer.parseInt(YMDH.format(calendar.getTime()));
+        String sEnd = Y_M_D_H.format(calendar.getTime());
+        calendar.add(Calendar.HOUR, 1 - hours);
+        Integer iStart = Integer.parseInt(YMDH.format(calendar.getTime()));
+        String sStart = Y_M_D_H.format(calendar.getTime());
+
+        int size = list.size();
+
+        return size;
+    }
+
+    public int countCsv(String path, Integer hours) {
+        try {
+            int count = 0;
+            Calendar calendar = getCalendar(1);
+            for (int i = 0; i < hours; i++) {
+                calendar.add(Calendar.HOUR, -1);
+                String filePath = path + File.separator + YMDH.format(calendar.getTime()) + ".csv";
+                if (new File(filePath).exists()) {
+                    count++;
+                }
+            }
+
+            return count;
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+            return 0;
+        }
+    }
+
+    public Calendar getCalendar(int start) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.add(Calendar.HOUR, start);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+
+        return calendar;
+    }
 }
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 1d8d438..ec4ed57 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -9,6 +9,7 @@
     from: 252740454@qq.com
     to: wuweiwei@terra-it.cn
     cc: zhengliusuo@smartearth.cn
+    hours: 6
 
 # 鏁版嵁婧愰厤缃�
 spring:
diff --git a/src/main/resources/application-file.yml b/src/main/resources/application-file.yml
index 6bd846f..dec74df 100644
--- a/src/main/resources/application-file.yml
+++ b/src/main/resources/application-file.yml
@@ -4,6 +4,7 @@
   filePath3d: E:\yssh_data\dat\correct_jk_47.dat
 #csv閰嶇疆璺緞
 csv:
+  bigPath: E:\yssh_data\BIG
   filePath: E:\yssh_data\LBM-NEW
   vocPath: E:\yssh_data\VOC_ALL
 #鏃�/鍛�/鏈堟姤璺緞
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 8332976..4b72906 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -9,6 +9,7 @@
     from: 252740454@qq.com
     to: wuweiwei@terra-it.cn
     cc: zhengliusuo@smartearth.cn
+    hours: 6
 
 # 鏁版嵁婧愰厤缃�
 spring:
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 4ed1d85..47c738b 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -9,6 +9,7 @@
     from: 252740454@qq.com
     to: wuweiwei@terra-it.cn
     cc: zhengliusuo@smartearth.cn
+    hours: 6
 
 # 鏁版嵁婧愰厤缃�
 spring:
diff --git a/src/main/resources/mapper/QxshMapper.xml b/src/main/resources/mapper/QxshMapper.xml
index 528dc56..670457d 100644
--- a/src/main/resources/mapper/QxshMapper.xml
+++ b/src/main/resources/mapper/QxshMapper.xml
@@ -136,4 +136,24 @@
         where time = #{time} and name = #{name}
         limit 1;
     </select>
+
+    <select id="countGcsjByTime" resultType="java.lang.Integer">
+        select count(*) from yssh_gcsj where time between #{start} and #{end};
+    </select>
+
+    <select id="countQxshByTime" resultType="java.lang.Integer">
+        select count(*) from yssh_qxsh where time between #{start} and #{end};
+    </select>
+
+    <select id="countSuYuan46ByTime" resultType="java.lang.Integer">
+        select count(*) from suyuan_46 where create_time between #{start} and #{end};
+    </select>
+
+    <select id="countSuYuan70ByTime" resultType="java.lang.Integer">
+        select count(*) from suyuan_70_70 where create_time between #{start} and #{end};
+    </select>
+
+    <select id="countSuYuanFastByTime" resultType="java.lang.Integer">
+        select count(*) from suyuan_fast where create_time between #{start} and #{end};
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3