src/main/java/com/yssh/controller/WarningAnalyseController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/yssh/service/WarningAnalyseService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -1,5 +1,6 @@ package com.yssh.controller; import com.yssh.utils.DateUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -14,6 +15,7 @@ import com.yssh.utils.Result; import javax.annotation.Resource; import java.util.Calendar; import java.util.Date; @Api(tags = "告警分析") @@ -27,28 +29,76 @@ @ApiOperationSupport(order = 1) @ApiOperation(value = "获取实时报警", notes = "获取实时报警分析数据") @GetMapping("/runAlarm") public Result alarmAnalyse(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) { return Result.OK(warningService.getRunTimeAlarmAnalyse(null == date ? new Date() : date)); public Result alarmAnalyse(@RequestParam(value = "start", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start, @RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end) { Integer startTime = getStartTime(start, end); Integer endTime = getEndTime(start, end); return Result.OK(warningService.getRunTimeAlarmAnalyse(startTime, endTime)); } @ApiOperationSupport(order = 2) @ApiOperation(value = "获取实时预警", notes = "获取实时预警分析数据") @GetMapping("/runWarning") public Result warningAnalyse(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) { return Result.OK(warningService.getRunTimeWarningAnalyse(null == date ? new Date() : date)); public Result warningAnalyse(@RequestParam(value = "start", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start, @RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end) { Integer startTime = getStartTime(start, end); Integer endTime = getEndTime(start, end); return Result.OK(warningService.getRunTimeWarningAnalyse(startTime, endTime)); } private Integer getStartTime(Date start, Date end) { do { if (null == start && null == end) { start = DateUtils.getAPeriodOfTime(new Date(), -5, Calendar.HOUR_OF_DAY); break; } if (null != start && null == end) { break; } if (null == start) { start = DateUtils.getAPeriodOfTime(end, -5, Calendar.HOUR_OF_DAY); break; } start = start.getTime() > end.getTime() ? end : start; } while (false); return Integer.parseInt(DateUtils.getYyyyMmDdHh(start)); } private Integer getEndTime(Date start, Date end) { do { if (null == start && null == end) { end = new Date(); break; } if (null != start && null == end) { end = DateUtils.getAPeriodOfTime(start, 5, Calendar.HOUR_OF_DAY); break; } if (null == start) { break; } end = start.getTime() < end.getTime() ? end : start; } while (false); return Integer.parseInt(DateUtils.getYyyyMmDdHh(end)); } @ApiOperationSupport(order = 3) @ApiOperation(value = "本月预警报警统计", notes = "本月预警报警统计,返回参数alarmNumber对应值为本月报警数据量,参数warningNumber对应值为本月预警数据量") @GetMapping("/monthCount") public Result thisMonthCount(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) { public Result thisMonthCount(@RequestParam(value = "date", 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) @ApiOperation(value = "一周预警报警数量变化趋势", notes = "一周预警报警数量变化趋势,返回参数alarmDayCount为一周每日报警统计数量列表,参数warningDayCount为一周每日预警统计数量列表") @GetMapping("/everydayCount") public Result everydayCount(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) { public Result everydayCount(@RequestParam(value = "date", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) { return Result.OK(warningService.everydayCount(null == date ? new Date() : date)); } src/main/java/com/yssh/service/WarningAnalyseService.java
@@ -18,7 +18,6 @@ import org.springframework.stereotype.Service; import com.google.common.collect.Lists; import com.yssh.entity.WarningVo; import javax.annotation.Resource; @@ -63,71 +62,15 @@ /** * 获取实时报警 */ public List<Qxsh> getRunTimeAlarmAnalyse(Date endDate) { Integer end = Integer.parseInt(DateUtils.getYyyyMmDdHh(endDate)); Date startDate = DateUtils.getAPeriodOfTime(endDate, -5, Calendar.HOUR_OF_DAY); Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate)); public List<Qxsh> getRunTimeAlarmAnalyse(Integer start, Integer end) { return qxshMapper.selectAlarmByBeginAndEnd(start, end); } /** * 获取实时预警 */ public List<Qxsh> getRunTimeWarningAnalyse(Date endDate) { Integer end = Integer.parseInt(DateUtils.getYyyyMmDdHh(endDate)); Date startDate = DateUtils.getAPeriodOfTime(endDate, -5, Calendar.HOUR_OF_DAY); Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate)); public List<Qxsh> getRunTimeWarningAnalyse(Integer start, Integer end) { return qxshMapper.selectWarnByBeginAndEnd(start, end); } // 已废弃 * public void warningOperationStorage(Date date) { List<WarningDetail> allData = new ArrayList<>(); List<WarningDetail> alarms = this.getAlarmWarnAnalyse(date, false); if (StringUtils.isNotEmpty(alarms)) { allData.addAll(alarms); } List<WarningDetail> warnings = this.getAlarmWarnAnalyse(date, true); if (StringUtils.isNotEmpty(warnings)) { allData.addAll(warnings); } if (StringUtils.isNotEmpty(allData)) { try { insertWarningDetails(allData); } catch (Exception e) { logger.error("批量插入告警数据出现异常!!!", e); e.printStackTrace(); } } } private List<WarningDetail> getAlarmWarnAnalyse(Date date, boolean isWarn) { List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d()); String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, date); DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time)); if (null == dictRecord) return null; String tableName = dictRecord.getTableName(); if (suYuanMapper.isTableExists(tableName) == 0) return null; List<SuYuan2d> list = isWarn ? suYuanMapper.getWarningAnalyse(tableName, ids) : suYuanMapper.getAlarmsAnalyse(tableName, ids); if (null == list || list.isEmpty()) { return null; } int type = isWarn ? 1 : 0; List<WarningDetail> result = new ArrayList<>(); for (SuYuan2d s : list) { String locationName = commonService.select3dCheckPointById(s.getId()).getName(); result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, type, s.getValue())); } return result; } /** @@ -270,4 +213,53 @@ return null; } // 已废弃 * public void warningOperationStorage(Date date) { List<WarningDetail> allData = new ArrayList<>(); List<WarningDetail> alarms = this.getAlarmWarnAnalyse(date, false); if (StringUtils.isNotEmpty(alarms)) { allData.addAll(alarms); } List<WarningDetail> warnings = this.getAlarmWarnAnalyse(date, true); if (StringUtils.isNotEmpty(warnings)) { allData.addAll(warnings); } if (StringUtils.isNotEmpty(allData)) { try { insertWarningDetails(allData); } catch (Exception e) { logger.error("批量插入告警数据出现异常!!!", e); e.printStackTrace(); } } } // 已废弃 * private List<WarningDetail> getAlarmWarnAnalyse(Date date, boolean isWarn) { List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d()); String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, date); DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time)); if (null == dictRecord) return null; String tableName = dictRecord.getTableName(); if (suYuanMapper.isTableExists(tableName) == 0) return null; List<SuYuan2d> list = isWarn ? suYuanMapper.getWarningAnalyse(tableName, ids) : suYuanMapper.getAlarmsAnalyse(tableName, ids); if (null == list || list.isEmpty()) { return null; } int type = isWarn ? 1 : 0; List<WarningDetail> result = new ArrayList<>(); for (SuYuan2d s : list) { String locationName = commonService.select3dCheckPointById(s.getId()).getName(); result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, type, s.getValue())); } return result; } } src/main/resources/application.yml
@@ -7,7 +7,7 @@ max: 1000 # Tomcat启动初始化的线程数,默认值25 min-spare: 25 port: 9001 port: 8082 servlet: context-path: /