燕山石化溯源三维电子沙盘-【后端】-服务
1
13693261870
2023-08-10 96f46b9168482ce4d64774b0e4433be2820a97ca
1
已修改4个文件
41 ■■■■ 文件已修改
src/main/java/com/yssh/mapper/XlsReportMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/XlsReportService.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-file.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/XlsReportMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/mapper/XlsReportMapper.java
@@ -48,4 +48,9 @@
     * 根据时间查询溯源
     */
    List<SuYuan700> selectSuYuanByTime(@Param("id") String id, @Param("start") String start, @Param("end") String end);
    /**
     * 根据时间段查询溯源
     */
    List<SuYuan700> selectSuYuanByStartAndEnd(@Param("id") String id, @Param("name") String name, @Param("yjz") double yjz, @Param("start") Integer start, @Param("end") Integer end);
}
src/main/java/com/yssh/service/XlsReportService.java
@@ -156,15 +156,16 @@
    }
    /**
     * 创建日报:DayExcel day = new DayExcel("AI-" + (i < 10 ? "0" : "") + i, "lj", "ljtb", "ys", "3m/s", "东南", "°c");
     * 创建日报: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); // 2023
            String yyyymmdd = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, yesterday); // 20230724
            String yyyy_mm_dd = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, yesterday); // 2023-07-24
            Integer start = Integer.parseInt(yyyy + "010100"); // 2023010100
            // 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
            String lastYear = DateUtils.parseDateToStr(DateUtils.YYYY, DateUtils.lastYear(yesterday)); // 2022
@@ -172,12 +173,13 @@
            for (int i = 1; i < 47; i++) {
                String name = "AI-" + (i < 10 ? "0" : "") + i;
                double rjz = mapper.selectDayAvg(yyyymmdd + "%", name);
                double lj = mapper.selectAccumulate(start, end, name);
                double lj = mapper.selectAccumulate(yearStart, 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");
                // 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);
                list.add(new DayExcel("" + rjz, "" + lj, ljtb + "%", ys, "", "", ""));
@@ -189,20 +191,19 @@
    }
    /**
     * 创建周报
     * 创建周报:new WeekExcel("AI-" + (i < 10 ? "0" : "") + i, "zhb", "ztq", "ztb", "zhb2", "lj", "ljtb", "syn", "ys", "fs", "fx", "°c");
     */
    public void createWeekReport(Date date) {
        try {
            Date start = DateUtils.getAPeriodOfTime(date, -7, Calendar.DATE);
            Date end = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE);
            Date mon = DateUtils.getAPeriodOfTime(date, -7, Calendar.DATE);
            Date sun = DateUtils.getAPeriodOfTime(date, -1, Calendar.DATE);
            List<WeekExcel> list = new ArrayList<>();
            for (int i = 1; i < 47; i++) {
                WeekExcel day = new WeekExcel("AI-" + (i < 10 ? "0" : "") + i, "zhb", "ztq", "ztb", "zhb2", "lj", "ljtb", "syn", "ys", "fs", "fx", "°c");
                list.add(day);
                String name = "AI-" + (i < 10 ? "0" : "") + i;
            }
            String filePath = createExcel("week", end, list);
            //String filePath = createExcel("week", end, list);
        } catch (Exception ex) {
            logger.error(ex.getMessage(), ex);
        }
src/main/resources/application-file.yml
@@ -9,5 +9,5 @@
#日/周/月报路径
report:
  path: D:\2022\XlsReport
  yjz: 1
  yjz: 1.6
  bjz: 2
src/main/resources/mapper/XlsReportMapper.xml
@@ -64,4 +64,15 @@
        where su_yuan_id = #{id} and create_time between #{start} and #{end}
        order by create_time;
    </select>
    <!-- 根据时间段查询溯源 -->
    <select id="selectSuYuanByStartAndEnd" resultType="com.yssh.entity.SuYuan700">
        select *
        from suyuan_46
        where su_yuan_id = #{id} and date_format(create_time, '%Y%m%d%H') in (
            select time
            from yssh_qxsh
            where value > #{yjz} and name = #{name} and time between #{start} and #{end}
        );
    </select>
</mapper>