From 19d4f3fe0d0d2b8764e9023f214d3cba43c47668 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 10 八月 2023 14:27:09 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/mapper/XlsReportMapper.java   |    2 
 src/main/resources/mapper/XlsReportMapper.xml        |    2 
 src/main/java/com/yssh/service/XlsReportService.java |   51 +++++++++++++++++++++++--
 src/main/java/com/yssh/utils/DateUtils.java          |   11 +++++
 4 files changed, 60 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/yssh/mapper/XlsReportMapper.java b/src/main/java/com/yssh/mapper/XlsReportMapper.java
index 6694a3d..b94c2aa 100644
--- a/src/main/java/com/yssh/mapper/XlsReportMapper.java
+++ b/src/main/java/com/yssh/mapper/XlsReportMapper.java
@@ -47,5 +47,5 @@
     /**
      * 鏍规嵁鏃堕棿鏌ヨ婧簮
      */
-    List<SuYuan700> selectSuYuanByTime(@Param("id") String id, @Param("start") Integer start, @Param("end") Integer end);
+    List<SuYuan700> selectSuYuanByTime(@Param("id") String id, @Param("start") String start, @Param("end") String end);
 }
diff --git a/src/main/java/com/yssh/service/XlsReportService.java b/src/main/java/com/yssh/service/XlsReportService.java
index 6bb66e0..401d923 100644
--- a/src/main/java/com/yssh/service/XlsReportService.java
+++ b/src/main/java/com/yssh/service/XlsReportService.java
@@ -1,9 +1,12 @@
 package com.yssh.service;
 
+import com.yssh.entity.MonitorPointPosition;
+import com.yssh.entity.SuYuan700;
 import com.yssh.entity.xls.DayExcel;
 import com.yssh.entity.xls.MonthExcel;
 import com.yssh.entity.xls.WeekExcel;
 import com.yssh.mapper.XlsReportMapper;
+import com.yssh.utils.CalculateUtils;
 import com.yssh.utils.DateUtils;
 import com.yssh.utils.ExcelUtils;
 import org.slf4j.Logger;
@@ -28,6 +31,9 @@
 
     @Resource
     XlsReportMapper mapper;
+
+    @Resource
+    CommonService commonService;
 
     /**
      * 鎶ュ憡璺緞
@@ -103,19 +109,56 @@
     }
 
     /**
-     * 鍒涘缓鏃ユ姤
+     * 鑾峰彇鍙楀奖鍝嶅洜绱犲強鍘熷洜
+     */
+    public String getYs(List<SuYuan700> suList) {
+        if (null == suList || 0 == suList.size()) return "";
+
+        List<String> list = new ArrayList<>();
+        for (SuYuan700 su : suList) {
+            List<String> sub = new ArrayList<>();
+            if (null != su.getAddr1())
+                sub.add(su.getAddr1() + "锛屾鐜囷細" + (su.getOdds1() * 100) + "%锛孹锛�" + su.getX1() + "锛孻锛�" + su.getY1());
+            if (null != su.getAddr2())
+                sub.add(su.getAddr2() + "锛屾鐜囷細" + (su.getOdds2() * 100) + "%锛孹锛�" + su.getX2() + "锛孻锛�" + su.getY2());
+            if (null != su.getAddr3())
+                sub.add(su.getAddr3() + "锛屾鐜囷細" + (su.getOdds3() * 100) + "%锛孹锛�" + su.getX3() + "锛孻锛�" + su.getY3());
+
+            list.add(String.join("锛�", sub));
+        }
+
+        return String.join("\n", list);
+    }
+
+    /**
+     * 鍒涘缓鏃ユ姤锛欴ayExcel day = new DayExcel("AI-" + (i < 10 ? "0" : "") + i, "lj", "ljtb", "ys", "3m/s", "涓滃崡", "掳c");
      */
     public void createDayReport(Date date) {
         try {
             Date yesterday = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE);
+            String yyyy = DateUtils.parseDateToStr(DateUtils.YYYY, yesterday);
+            String yyyymmdd = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, yesterday);
+            String yyyy_mm_dd = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, yesterday);
+            Integer start = Integer.parseInt(yyyy + "0101");
+            Integer end = Integer.parseInt(yyyymmdd);
+            String lastYear = DateUtils.parseDateToStr(DateUtils.YYYY, DateUtils.lastYear(yesterday));
 
             List<DayExcel> list = new ArrayList<>();
             for (int i = 1; i < 47; i++) {
-                DayExcel day = new DayExcel("AI-" + (i < 10 ? "0" : "") + i, "lj", "ljtb", "ys", "3m/s", "涓滃崡", "掳c");
-                list.add(day);
+                String name = "AI-" + (i < 10 ? "0" : "") + i;
+                double rjz = mapper.selectDayAvg(yyyymmdd + "%", name);
+                double lj = mapper.selectAccumulate(start, end, name);
+                double lastLj = mapper.selectYearAccumulate(lastYear, name);
+                double ljtb = CalculateUtils.round2((lj - lastLj) / lastLj * 100);
+                MonitorPointPosition point = commonService.select3dCheckPointByName(name);
+                String id = point.getId().substring(0, point.getId().lastIndexOf("_") + 1) + "0";
+                List<SuYuan700> suList = mapper.selectSuYuanByTime(id, yyyy_mm_dd + " 00:00:00", yyyy_mm_dd + " 23:00:00");
+                String ys = getYs(suList);
+
+                list.add(new DayExcel("" + rjz, "" + lj, "" + ljtb, ys, "", "", ""));
             }
 
-           String filePath = createExcel("day", yesterday, list);
+            String filePath = createExcel("day", yesterday, list);
         } catch (Exception ex) {
             logger.error(ex.getMessage(), ex);
         }
diff --git a/src/main/java/com/yssh/utils/DateUtils.java b/src/main/java/com/yssh/utils/DateUtils.java
index 192ce60..f8ca337 100644
--- a/src/main/java/com/yssh/utils/DateUtils.java
+++ b/src/main/java/com/yssh/utils/DateUtils.java
@@ -252,6 +252,17 @@
 	}
 
 	/**
+	 * 鍘诲勾
+	 */
+	public static Date lastYear(Date date) {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(date);
+		cal.add(Calendar.YEAR, -1);
+
+		return cal.getTime();
+	}
+
+	/**
 	 * 鑾峰彇鏈湀绗竴澶�
 	 **/
 	public static Date getMonthStart(Date date) {
diff --git a/src/main/resources/mapper/XlsReportMapper.xml b/src/main/resources/mapper/XlsReportMapper.xml
index 2ac8e08..d09f01b 100644
--- a/src/main/resources/mapper/XlsReportMapper.xml
+++ b/src/main/resources/mapper/XlsReportMapper.xml
@@ -69,6 +69,6 @@
         select *
         from suyuan_46
         where su_yuan_id = #{id} and create_time between #{start} and #{end}
-        order by time;
+        order by create_time;
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3