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