src/main/java/com/yssh/controller/WarningAnalyseController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -23,9 +23,9 @@ @RestController @SuppressWarnings("rawtypes") public class WarningAnalyseController { @Autowired private IWarningAnalyseService warningService; @Autowired private IWarningAnalyseService warningService; private static ConcurrentHashMap<String, Object> cache = new ConcurrentHashMap<>(5); @@ -33,7 +33,8 @@ public static final long CACHE_HOLD_TIME_24H = 24 * 60 * 60 * 1000L; //报警分析 //报警分析 /** * 1.查询当前时间的所有点位value值(以47.dat查询即可) * 2.筛选大于yssh_bjyj中的jcbj字段的值 返回id+经纬度+value @@ -41,11 +42,12 @@ @ApiOperationSupport(order = 1) @ApiOperation(value = "获取实时报警", notes = "获取实时报警分析数据") @GetMapping("/runAlarm") public Result alarmAnalyse(){ return Result.OK(warningService.getRunTimeAlarmAnalyse()); public Result alarmAnalyse() { return Result.OK(warningService.getRunTimeAlarmAnalyse()); } //预警分析 /** * 1.查询当前时间的所有点位value值(以47.dat查询即可) * 2.筛选大于yssh_bjyj中的jcyj字段的值 返回id+经纬度+value @@ -53,51 +55,61 @@ @ApiOperationSupport(order = 2) @ApiOperation(value = "获取实时预警", notes = "获取实时预警分析数据") @GetMapping("/runWarning") public Result warningAnalyse(){ return Result.OK(warningService.getRunTimeWarningAnalyse()); public Result warningAnalyse() { return Result.OK(warningService.getRunTimeWarningAnalyse()); } @ApiOperationSupport(order = 3) @ApiOperation(value = "本月预警、报警统计", notes = "本月预警、报警统计,返回参数alarmNumber对应值为本月报警数据量,参数warningNumber对应值为本月预警数据量") @GetMapping("/monthCount") public Result thisMonthCount(){ return Result.OK(warningService.countThisMonthAlarmAndWarning()); public Result thisMonthCount() { return Result.OK(warningService.countThisMonthAlarmAndWarning()); } @ApiOperationSupport(order = 4) @ApiOperation(value = "每日预警、报警数量变化趋势", notes = "一周每日预警、报警数量统计,返回参数alarmDayCount为一周每日报警统计数量列表,参数warningDayCount为一周每日预警统计数量列表") @GetMapping("/everydayCount") public Result everydayCount(){ return Result.OK(warningService.countEverydayAlarmAndWarning()); public Result everydayCount() { return Result.OK(warningService.countEverydayAlarmAndWarning()); } @ApiOperationSupport(order = 4) @ApiOperation(value = "三小时监测站点数据变化趋势", notes = "返回值为三小时监测站点监测数据,返回值为map集合,其中key为站点名称,value为list集合,保存每天监测数值数据") @GetMapping("/locationDataChange") public Result locationDataChange() { //return Result.OK(warningService.selectEachLocationDataChange()); String key = dateFormat.format(new Date()); Map<String, List<Double>> map = null; String key = dateFormat.format(new Date()) + "_local"; Map<String, List<Double>> map; if (cache.containsKey(key)) { map = (Map<String, List<Double>>) cache.get(key); } else { map = warningService.selectEachLocationDataChange(); if (null != map && map.size() > 0) { if (cache.size() > 0) { cache.clear(); } cache.put(key, map); } } return Result.ok(map); } @ApiOperationSupport(order = 4) @ApiOperation(value = "获取本月监测大数据站点最大值TOP10", notes = "获取本月监测大数据站点最大值TOP10数量列表") @GetMapping("/monthTop10") public Result monthTop10(){ return Result.OK(warningService.selectThisMonthLocationValueDataTop10()); public Result monthTop10() { //return Result.OK(warningService.selectThisMonthLocationValueDataTop10()); String key = dateFormat.format(new Date()) + "_top10"; List<Map<String, Object>> list; if (cache.containsKey(key)) { list = (List<Map<String, Object>>) cache.get(key); } else { list = warningService.selectThisMonthLocationValueDataTop10(); if (null != list && list.size() > 0) { cache.put(key, list); } } return Result.OK(list); } } src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -253,28 +253,29 @@ Map<String, List<Double>> result = new LinkedHashMap<>(); List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d(); Date nowDate = DateUtils.getNowDate(); Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate)); Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getAPeriodOfTime(nowDate, -3, Calendar.HOUR_OF_DAY))); List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime); List<String> tableNames = new ArrayList<>(); for(DictRecord dr : recordList){ if (suYuanMapper.isTableExists(dr.getTableName())>0){ for (DictRecord dr : recordList) { if (suYuanMapper.isTableExists(dr.getTableName()) > 0) { tableNames.add(dr.getTableName()); } } if (tableNames.isEmpty()){ if (tableNames.isEmpty()) { return result; } for(MonitorPointPosition c : checkPoints){ for (MonitorPointPosition c : checkPoints) { List<Double> values = new ArrayList<>(); List<SuYuanMonitorData> data = suYuanMapper.getMonitorData(tableNames, c.getId()); data.forEach(v -> { values.add(v.getValue()); }); if (null != data && data.size() > 0) { for (SuYuanMonitorData v : data) { values.add(v.getValue()); } } result.put(c.getName(), values); } return result; @@ -282,7 +283,7 @@ @Override public List<Map<String, Object>> selectThisMonthLocationValueDataTop10() { List<Map<String, Object>> result = new ArrayList<>(); /*List<Map<String, Object>> result = new ArrayList<>(); List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d(); Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart())); Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd())); @@ -300,7 +301,34 @@ } result.add(map); }); return CalculateUtils.sort(result, "value", true).subList(0, 10);*/ List<Map<String, Object>> result = new ArrayList<>(); List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d(); Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart())); Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd())); List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime); List<String> tableNames = new ArrayList<>(); for (DictRecord dr : recordList) { if (suYuanMapper.isTableExists(dr.getTableName()) > 0) { tableNames.add(dr.getTableName()); } } if (tableNames.isEmpty()) { return result; } for (MonitorPointPosition c : checkPoints) { Map<String, Object> map = suYuanMapper.getMonthValueDataMax(tableNames, c.getId()); if (null != map && map.size() > 0) { String suYuanId = map.get("id").toString(); map.put("name", commonService.select3dCheckPointById(suYuanId).getName()); map.remove("id"); } result.add(map); } return CalculateUtils.sort(result, "value", true).subList(0, 10); } }