燕山石化溯源三维电子沙盘-【后端】-服务
`1
13693261870
2023-08-11 783babb9878c2bfab8a26460a0f25f4c7e25fc5d
`1
已修改3个文件
86 ■■■■ 文件已修改
src/main/java/com/yssh/service/XlsReportService.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/utils/DateUtils.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/templates/溯源系统统计分析报表-计算.doc 补丁 | 查看 | 原始文档 | blame | 历史
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) {
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) {
src/main/resources/templates/ËÝԴϵͳͳ¼Æ·ÖÎö±¨±í-¼ÆËã.doc
Binary files differ