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 +++++++++++++++++--------- src/main/java/com/yssh/utils/DateUtils.java | 34 +++++++++++++++++ src/main/resources/templates/溯源系统统计分析报表-计算.doc | 0 3 files changed, 68 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) { diff --git a/src/main/java/com/yssh/utils/DateUtils.java b/src/main/java/com/yssh/utils/DateUtils.java index f8ca337..e9b053d 100644 --- a/src/main/java/com/yssh/utils/DateUtils.java +++ b/src/main/java/com/yssh/utils/DateUtils.java @@ -263,6 +263,40 @@ } /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆 + */ + public static int getWeekOfYear(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + return cal.get(Calendar.WEEK_OF_YEAR); + } + + /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆鐨勬槦鏈熶竴 + */ + public static Date getWeekOfYearForMon(int year, int weekOfYear) { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, year); + cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + cal.set(Calendar.WEEK_OF_YEAR, weekOfYear); + + return cal.getTime(); + } + + /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆鐨勬槦鏈熸棩 + */ + public static Date getWeekOfYearForSun(int year, int weekOfYear) { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, year); + cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); + cal.set(Calendar.WEEK_OF_YEAR, weekOfYear); + + return cal.getTime(); + } + + /** * 鑾峰彇鏈湀绗竴澶� **/ public static Date getMonthStart(Date date) { diff --git "a/src/main/resources/templates/\346\272\257\346\272\220\347\263\273\347\273\237\347\273\237\350\256\241\345\210\206\346\236\220\346\212\245\350\241\250-\350\256\241\347\256\227.doc" "b/src/main/resources/templates/\346\272\257\346\272\220\347\263\273\347\273\237\347\273\237\350\256\241\345\210\206\346\236\220\346\212\245\350\241\250-\350\256\241\347\256\227.doc" index f93d8bd..6278cf0 100644 --- "a/src/main/resources/templates/\346\272\257\346\272\220\347\263\273\347\273\237\347\273\237\350\256\241\345\210\206\346\236\220\346\212\245\350\241\250-\350\256\241\347\256\227.doc" +++ "b/src/main/resources/templates/\346\272\257\346\272\220\347\263\273\347\273\237\347\273\237\350\256\241\345\210\206\346\236\220\346\212\245\350\241\250-\350\256\241\347\256\227.doc" Binary files differ -- Gitblit v1.9.3