From 783babb9878c2bfab8a26460a0f25f4c7e25fc5d Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 11 八月 2023 11:05:49 +0800
Subject: [PATCH] `1

---
 src/main/java/com/yssh/service/XlsReportService.java |   52 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/yssh/service/XlsReportService.java b/src/main/java/com/yssh/service/XlsReportService.java
index 5ce13df..c8ea350 100644
--- a/src/main/java/com/yssh/service/XlsReportService.java
+++ b/src/main/java/com/yssh/service/XlsReportService.java
@@ -151,7 +151,7 @@
      */
     public void createDayReport(Date date) {
         try {
-            Date yesterday = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE);
+            Date yesterday = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE); // 2023-07-24
             String yyyy = DateUtils.parseDateToStr(DateUtils.YYYY, yesterday); // 2023
             String yyyymmdd = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, yesterday); // 20230724
             // String yyyy_mm_dd = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, yesterday); // 2023-07-24
@@ -164,7 +164,9 @@
             for (int i = 1; i < 47; i++) {
                 String name = "AI-" + (i < 10 ? "0" : "") + i;
                 double rjz = mapper.selectDayAvg(yyyymmdd + "%", name); // 鏃ュ潎鍊�
+
                 double lj = mapper.selectAccumulate(yearStart, end, name); // 绱
+
                 double ljjz = mapper.selectYearAccumulate(yyyy + "%", name); // 浠婂勾绱鍧囧��
                 double qnLjjz = mapper.selectYearAccumulate(lastYear + "%", name); // 鍘诲勾绱鍧囧��
                 double ljtb = CalculateUtils.round2((ljjz - qnLjjz) / qnLjjz * 100); // 绱鍚屾瘮
@@ -173,9 +175,9 @@
                 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");
                 List<SuYuan700> suList = mapper.selectSuYuanByStartAndEnd(id, name, yjz, dayStart, end);
-                String ys = getYs(suList);
+                String ys = getYs(suList); // 鍙楀奖鍝嶅洜绱犲強鍘熷洜
 
-                list.add(new DayExcel("" + rjz, "" + lj, ljtb + "%", ys, "", "", ""));
+                list.add(new DayExcel(rjz + "", lj + "", ljtb + "%", ys, "", "", ""));
             }
             saveResult("day", yesterday, list);
         } catch (Exception ex) {
@@ -188,41 +190,55 @@
      */
     public void createWeekReport(Date date) {
         try {
-            Date mon = DateUtils.getAPeriodOfTime(date, -7, Calendar.DATE);
-            Date sun = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE);
-            Date lastMon = DateUtils.getAPeriodOfTime(date, -14, Calendar.DATE);
-            Date lastSun = DateUtils.getAPeriodOfTime(date, -8, Calendar.DATE);
-            Date lastYearMon = DateUtils.getAPeriodOfTime(mon, -1, Calendar.YEAR);
-            Date lastYearSun = DateUtils.getAPeriodOfTime(sun, -1, Calendar.YEAR);
+            Date mon = DateUtils.getAPeriodOfTime(date, -7, Calendar.DATE); // 2023-07-24
+            Date sun = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE); // 2023-07-30
+            Date lastMon = DateUtils.getAPeriodOfTime(date, -14, Calendar.DATE); // 2023-07-17
+            Date lastSun = DateUtils.getAPeriodOfTime(date, -8, Calendar.DATE); // 2023-07-23
+            Date lastYear1 = DateUtils.getAPeriodOfTime(mon, -1, Calendar.YEAR); // 2022-07-24
+            Date lastYear7 = DateUtils.getAPeriodOfTime(sun, -1, Calendar.YEAR); // 2022-07-30
             Integer intMon = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, mon) + "00"); // 2023072400
             Integer intSun = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, sun) + "23"); // 2023073023
             Integer intLastMon = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, lastMon) + "00"); // 2023071700
             Integer intLastSun = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, lastSun) + "23"); // 2023072323
-            Integer intLastYearMon = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, lastYearMon) + "00"); // 2022071700
-            Integer intLastYearSun = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, lastYearSun) + "23"); // 2022072323
+            Integer intLastYear1 = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, lastYear1) + "00"); // 2022072400
+            Integer intLastYear7 = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, lastYear7) + "23"); // 2022073023
             String yyyy = DateUtils.parseDateToStr(DateUtils.YYYY, sun); // 2023
             Integer yearStart = Integer.parseInt(yyyy + "010100"); // 2023010100
             String lastYear = DateUtils.parseDateToStr(DateUtils.YYYY, DateUtils.lastYear(sun)); // 2022
+            int weekOfYear = DateUtils.getWeekOfYear(sun); // 31
+            Date lastYearSun = DateUtils.getWeekOfYearForSun(Integer.parseInt(lastYear), weekOfYear); // 2022-07-24
+            Date lastYearMon = DateUtils.getAPeriodOfTime(lastYearSun, -6, Calendar.DATE); // 2022-07-18
+            Integer intLastYearMon = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, lastYearMon) + "00"); // 2022071800
+            Integer intLastYearSun = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, lastYearSun) + "23"); // 2022072423
 
             List<WeekExcel> list = new ArrayList<>();
             for (int i = 1; i < 47; i++) {
                 String name = "AI-" + (i < 10 ? "0" : "") + i;
                 double sz = mapper.selectAccumulate(intMon, intSun, name); // 涓婂懆
+
                 double ssz = mapper.selectAccumulate(intLastMon, intLastSun, name); // 涓婁笂鍛�
                 double zhb = CalculateUtils.round2((sz - ssz) / ssz * 100); // 鍛ㄧ幆姣�
-                double qntq = mapper.selectAccumulate(intLastYearMon, intLastYearSun, name); // 鍘诲勾鍚屾湡
-                double ztb = CalculateUtils.round2((sz - qntq) / qntq * 100); // 鍛ㄥ悓姣�
+
+                double qntq = mapper.selectAccumulate(intLastYear1, intLastYear7, name); // 鍘诲勾鍚屾湡
+                double ztq = CalculateUtils.round2((sz - qntq) / qntq * 100); // 鍛ㄥ悓鏈�
+
+                double qntz = mapper.selectAccumulate(intLastYearMon, intLastYearSun, name); // 鍘诲勾鍚屽懆
+                double ztb = CalculateUtils.round2((sz - qntz) / qntz * 100); // 鍛ㄥ悓姣�
+
                 double lj = mapper.selectAccumulate(yearStart, intSun, name); // 绱
-                double lastLj = mapper.selectYearAccumulate(lastYear + "%", name); // 鍘诲勾绱
-                double ljtb = CalculateUtils.round2((lj - lastLj) / lastLj * 100); // 绱鍚屾瘮
-                double syn = CalculateUtils.round2((lj - lastLj) / lastLj * 100); // 杈冧笂涓�骞村害鍙樺寲骞呭害
+
+                double ljjz = mapper.selectYearAccumulate(yyyy + "%", name); // 浠婂勾绱鍧囧��
+                double qnLjjz = mapper.selectYearAccumulate(lastYear + "%", name); // 鍘诲勾绱鍧囧��
+                double ljtb = CalculateUtils.round2((ljjz - qnLjjz) / qnLjjz * 100); // 绱鍚屾瘮
+
+                double syn = CalculateUtils.round2((ljjz - qnLjjz) / qnLjjz * 100); // 杈冧笂涓�骞村害鍙樺寲骞呭害
 
                 MonitorPointPosition point = commonService.select3dCheckPointByName(name);
                 String id = point.getId().substring(0, point.getId().lastIndexOf("_") + 1) + "0";
                 List<SuYuan700> suList = mapper.selectSuYuanByStartAndEnd(id, name, yjz, intMon, intSun);
-                String ys = getYs(suList);
+                String ys = getYs(suList); // 鍙楀奖鍝嶅洜绱犲強鍘熷洜
 
-                list.add(new WeekExcel("" + sz, zhb + "%", "", ztb + "%", "" + lj, "" + ljtb, "", ys, "", "", ""));
+                list.add(new WeekExcel(sz + "", zhb + "%", ztq + "", ztb + "%", lj + "", ljtb + "", syn + "", ys, "", "", ""));
             }
             saveResult("week", sun, list);
         } catch (Exception ex) {

--
Gitblit v1.9.3