燕山石化溯源三维电子沙盘-【后端】-服务
5
13693261870
2023-07-29 25169ce9015c91b1596619fcc27b5554bd73bee7
5
已修改5个文件
90 ■■■■■ 文件已修改
src/main/java/com/yssh/controller/WarningAnalyseController.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/mapper/QxshMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/WarningAnalyseService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/utils/DateUtils.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/QxshMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -1,8 +1,5 @@
package com.yssh.controller;
import com.yssh.entity.Qxsh;
import com.yssh.utils.CacheUtils;
import com.yssh.utils.DateUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -17,10 +14,7 @@
import com.yssh.utils.Result;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Api(tags = "告警分析")
@RequestMapping("/warning")
@@ -30,10 +24,6 @@
    @Resource
    private WarningAnalyseService warningService;
    /**
     * 1.查询当前时间的所有点位value值(以47.dat查询即可)
     * 2.筛选大于yssh_bjyj中的jcbj字段的值 返回id+经纬度+value
     */
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "获取实时报警", notes = "获取实时报警分析数据")
    @GetMapping("/runAlarm")
@@ -41,10 +31,6 @@
        return Result.OK(warningService.getRunTimeAlarmAnalyse());
    }
    /**
     * 1.查询当前时间的所有点位value值(以47.dat查询即可)
     * 2.筛选大于yssh_bjyj中的jcyj字段的值 返回id+经纬度+value
     */
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "获取实时预警", notes = "获取实时预警分析数据")
    @GetMapping("/runWarning")
@@ -53,10 +39,10 @@
    }
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "本月预警、报警统计", notes = "本月预警、报警统计,返回参数alarmNumber对应值为本月报警数据量,参数warningNumber对应值为本月预警数据量")
    @ApiOperation(value = "本月预警报警统计", notes = "本月预警报警统计,返回参数alarmNumber对应值为本月报警数据量,参数warningNumber对应值为本月预警数据量")
    @GetMapping("/monthCount")
    public Result thisMonthCount() {
        return Result.OK(warningService.countThisMonthAlarmAndWarning());
    public Result thisMonthCount(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) {
        return Result.OK(warningService.monthCount(null == date ? new Date() : date));
    }
    @ApiOperationSupport(order = 4)
@@ -91,9 +77,8 @@
        if (null == begin || null == end) {
            return Result.error(null);
        }
        if (begin.getTime() > end.getTime()) {
            Date tmp = end;
            Date tmp = begin;
            begin = end;
            end = tmp;
        }
src/main/java/com/yssh/mapper/QxshMapper.java
@@ -18,6 +18,10 @@
    public List<Qxsh> selectMonthTop10(String time);
    public Integer countMonthForWarn(@Param("start") Integer start, @Param("end") Integer end);
    public Integer countMonthForAlarm(@Param("start") Integer start, @Param("end") Integer end);
    public List<Map<String, Object>> count7DayForWarn(@Param("start") Integer start, @Param("end") Integer end);
    public List<Map<String, Object>> count7DayForAlarm(@Param("start") Integer start, @Param("end") Integer end);
src/main/java/com/yssh/service/WarningAnalyseService.java
@@ -167,30 +167,22 @@
        }
    }
    public Map<String, Integer> countThisMonthAlarmAndWarning() {
    /**
     * 本月预警报警统计
     */
    public Map<String, Integer> monthCount(Date date) {
        Date startDate = DateUtils.getMonthStart(date);
        Date endDate = DateUtils.getMonthEnd(date);
        Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate));
        Integer end = Integer.parseInt(DateUtils.getYyyyMmDdHh(endDate));
        Map<String, Integer> result = new HashMap<>();
        Map<String, Object> param = new HashMap<>();
        param.put("startTime", DateUtils.getYyyyMmDdHhMmSs(DateUtils.getMonthStart()));
        param.put("endTime", DateUtils.getYyyyMmDdHhMmSs(DateUtils.getMonthEnd()));
        /*param.put("type", 0);
        List<WarningVo> alarms = warningDetailMapper.selectWarningDetailByMap(param);
        if (StringUtils.isNull(alarms)) {
            alarms = new ArrayList<>();
        }
        result.put("alarmNumber", alarms.size());*/
        Integer alarmNum = warningDetailMapper.countAlarmByMap(param);
        result.put("alarmNumber", null == alarmNum ? 0 : alarmNum);
        param.put("type", 1);
        /*List<WarningVo> warnings = warningDetailMapper.selectWarningDetailByMap(param);
        if (StringUtils.isNull(warnings)) {
            warnings = new ArrayList<>();
        }
        result.put("warningNumber", warnings.size());*/
        Integer warnNum = warningDetailMapper.countWarnByMap(param);
        Integer warnNum = qxshMapper.countMonthForWarn(start, end);
        result.put("warningNumber", null == warnNum ? 0 : warnNum);
        Integer alarmNum = qxshMapper.countMonthForAlarm(start, end);
        result.put("alarmNumber", null == alarmNum ? 0 : alarmNum);
        return result;
    }
src/main/java/com/yssh/utils/DateUtils.java
@@ -249,9 +249,10 @@
     *
     * @return String
     **/
    public static Date getMonthStart() {
    public static Date getMonthStart(Date date) {
        Calendar cal = Calendar.getInstance();
        //cal.set(Calendar.MONTH, 3);
        // cal.set(Calendar.MONTH, 3)
        cal.setTime(date);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
    }
@@ -261,16 +262,11 @@
     *
     * @return String
     **/
    public static Date getMonthEnd() {
    public static Date getMonthEnd(Date date) {
        Calendar cal = Calendar.getInstance();
        //cal.set(Calendar.MONTH, 3);
        // cal.set(Calendar.MONTH, 3)
        cal.setTime(date);
        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59");
    }
    public static void main(String[] args) {
        //System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthStart()));
        //System.err.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthEnd()));
        System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getAPeriodOfTime(getNowDate(), -7, Calendar.DATE)));
    }
}
src/main/resources/mapper/QxshMapper.xml
@@ -19,6 +19,19 @@
        limit 10;
    </select>
    <select id="countMonthForWarn" resultType="java.lang.Integer">
        select count(*)
        from yssh_qxsh
        where time between #{start} and #{end} and name like 'AI-%'
            and value > (select jcyj from alert_config limit 1) and value &lt;= (select jcbj from alert_config limit 1);
    </select>
    <select id="countMonthForAlarm" resultType="java.lang.Integer">
        select count(*)
        from yssh_qxsh
        where time between #{start} and #{end} and name like 'AI-%' and value > (select jcbj from alert_config limit 1);
    </select>
    <select id="count7DayForWarn" resultType="java.util.Map">
        with rs as (
            select left(time, 8) "createTime"