From 4d8547ebc0ad3cefa6d31404fa51d4fd506f4aac Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 11 八月 2023 15:54:49 +0800 Subject: [PATCH] 1 --- src/main/java/com/yssh/service/XlsReportService.java | 67 +++++++++++++++++++++++++++------ 1 files changed, 54 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/yssh/service/XlsReportService.java b/src/main/java/com/yssh/service/XlsReportService.java index f18a1b2..a194aea 100644 --- a/src/main/java/com/yssh/service/XlsReportService.java +++ b/src/main/java/com/yssh/service/XlsReportService.java @@ -88,15 +88,40 @@ } /** + * 鑾峰彇瀛楃涓叉棩鏈� + */ + private String getStrDate(String type, Date date) { + return DateUtils.parseDateToStr("month".equals(type) ? DateUtils.YYYYMM : DateUtils.YYYYMMDD, date); + } + + /** + * 鑾峰彇鐩爣鏂囦欢 + */ + private String getTarget(String type, Date date) { + String strData = getStrDate(type, date); + + return String.format("%s\\%s.xlsx", getExpPath(type), strData); + } + + /** + * Excel鏄�/鍚﹀瓨鍦� + */ + private boolean xlsExists(String type, Date date) { + String target = getTarget(type, date); + File f = new File(target); + + return f.exists() && !f.isDirectory(); + } + + /** * 鍒涘缓Excel */ private <T> String createExcel(String type, Date date, List<T> list) throws Exception { String source = getXslTemplate(type); - String strData = DateUtils.parseDateToStr("month".equals(type) ? DateUtils.YYYYMM : DateUtils.YYYYMMDD, date); - String target = String.format("%s\\%s.xlsx", getExpPath(type), strData); + String strData = getStrDate(type, date); + String target = getTarget(type, date); - File f = new File(target); - if (!f.exists() || f.isDirectory()) { + if (!xlsExists(type, date)) { createExcel(source, target, list); } @@ -104,15 +129,24 @@ } /** + * 璁板綍鏄�/鍚﹀瓨鍦� + */ + private boolean recordExists(String type, Date date) { + String name = String.format("%s.xlsx", getStrDate(type, date)); + int rows = mapper.reportExists(type, name); + + return rows > 0; + } + + /** * 淇濆瓨缁撴灉 */ private <T> void saveResult(String type, Date date, List<T> list) throws Exception { - date = DateUtils.trimTime(date); String filePath = createExcel(type, date, list); - String name = filePath.replace(type + "\\", ""); + if (recordExists(type, date)) return; - int rows = mapper.reportExists(type, name); - if (rows > 0) return; + String name = filePath.replace(type + "\\", ""); + date = DateUtils.trimTime(date); XlsReport xls = new XlsReport(); xls.setName(name); @@ -151,10 +185,12 @@ */ public void createDayReport(Date date) { try { + String type = "day"; Date yesterday = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE); // 2023-07-24 + if (xlsExists(type, yesterday) && recordExists(type, yesterday)) return; + 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 Integer yearStart = Integer.parseInt(yyyy + "010100"); // 2023010100 Integer dayStart = Integer.parseInt(yyyymmdd + "00"); // 2023072400 Integer end = Integer.parseInt(yyyymmdd + "23"); // 2023072423 @@ -179,7 +215,7 @@ list.add(new DayExcel("" + rjz, "" + lj, ljtb, ys, "", "", "")); } - saveResult("day", yesterday, list); + saveResult(type, yesterday, list); } catch (Exception ex) { logger.error(ex.getMessage(), ex); } @@ -190,8 +226,11 @@ */ public void createWeekReport(Date date) { try { + String type = "week"; Date mon = DateUtils.getAPeriodOfTime(date, -7, Calendar.DATE); // 2023-07-24 Date sun = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE); // 2023-07-30 + if (xlsExists(type, sun) && recordExists(type, sun)) return; + 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 @@ -240,7 +279,7 @@ list.add(new WeekExcel("" + sz, zhb, ztq, ztb, "" + lj, ljtb, syn, ys, "", "", "")); } - saveResult("week", sun, list); + saveResult(type, sun, list); } catch (Exception ex) { logger.error(ex.getMessage(), ex); } @@ -251,9 +290,12 @@ */ public void createMonthReport(Date date) { try { + String type = "month"; Date yesterday = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE); // 2023-07-31 Date monthStart = DateUtils.getMonthStart(yesterday); // 2023-07-01 Date monthEnd = DateUtils.getMonthEnd(yesterday); // 2023-07-31 + if (xlsExists(type, monthEnd) && recordExists(type, monthEnd)) return; + int intMonthStart = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, monthStart) + "00"); // 2023070100 int intMonthEnd = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYYMMDD, monthEnd) + "23"); // 2023073123 Date lastMonth = DateUtils.getAPeriodOfTime(yesterday, -1, Calendar.MONTH); // 2023-06-30 @@ -296,8 +338,7 @@ list.add(new MonthExcel("" + sy, yhb, ytq, ytb, "" + lj, ljtb, qyn, ys, "", "", "")); } - saveResult("month", monthEnd, list); - + saveResult(type, monthEnd, list); } catch (Exception ex) { logger.error(ex.getMessage(), ex); } -- Gitblit v1.9.3