src/main/java/com/yssh/controller/WarningAnalyseController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/yssh/dao/DictRecordMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/yssh/service/IWarningAnalyseService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapping/DictRecordMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -4,8 +4,10 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; @@ -108,4 +110,23 @@ return Result.OK(list); } @ApiOperationSupport(order = 5) @ApiOperation(value = "根据时间获取报警和预警信息", notes = "根据时间获取报警和预警信息") @GetMapping("/getAlarmAndWarnByTime") public Result getAlarmAndWarnByTime( @RequestParam(value = "begin", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date begin, @RequestParam(value = "end", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end) { if (null == begin || null == end) { return Result.error(null); } if (begin.getTime() > end.getTime()) { Date tmp = end; begin = end; end = tmp; } return Result.OK(warningService.getAlarmAndWarnByTime(begin, end)); } } src/main/java/com/yssh/dao/DictRecordMapper.java
@@ -26,6 +26,8 @@ public List<DictRecord> selectByTimeDictRecordList(@Param("startTime") Long startTime, @Param("endTime") Long endTime); public DictRecord selectByCreateTime(Long createTime); public List<DictRecord> selectByTime(String start, String end); /** * 新增字典记录 src/main/java/com/yssh/service/IWarningAnalyseService.java
@@ -12,9 +12,9 @@ List<WarningVo> getRunTimeAlarmAnalyse(); List<WarningVo> getRunTimeWarningAnalyse(); void insertWarningDetails(List<WarningDetail> warning) throws Exception ; void insertWarningDetails(List<WarningDetail> warning) throws Exception; void warningOperationStorage(Date date); Map<String, Integer> countThisMonthAlarmAndWarning(); @@ -24,4 +24,6 @@ Map<String, List<Double>> selectEachLocationDataChange(); List<Map<String, Object>> selectThisMonthLocationValueDataTop10(); List<WarningVo> getAlarmAndWarnByTime(Date begin, Date end); } src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -57,7 +57,9 @@ @Autowired private IAsyncService asyncService; private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHH"); private SimpleDateFormat ymdh = new SimpleDateFormat("yyyyMMddHH"); private SimpleDateFormat ymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override @Async("threadPoolTaskExecutor") @@ -208,7 +210,7 @@ @Override public Map<String, Integer> countThisMonthAlarmAndWarning() { Map<String, Integer> result = new HashMap<>(); Map<String, Object> param = new HashMap<String, Object>(); Map<String, Object> param = new HashMap<>(); param.put("type", 0); param.put("startTime", DateUtils.getMonthStart()); param.put("endTime", DateUtils.getMonthEnd()); @@ -347,4 +349,71 @@ return CalculateUtils.sort(result, "value", true).subList(0, 10); } @Override public List<WarningVo> getAlarmAndWarnByTime(Date begin, Date end) { List<WarningVo> list = new ArrayList<>(); List<String> ids = CalculateUtils.assembleId(commonService.getCheckPoints3d()); if (ids.size() == 0) { return list; } List<DictRecord> dictList = dictRecordMapper.selectByTime(ymdhms.format(begin), ymdhms.format(end)); if (null == dictList || dictList.isEmpty()) { return list; } List<String> tables = new ArrayList<>(); for (DictRecord dr : dictList) { tables.add(dr.getTableName()); } for (String tab : tables) { List<WarningDetail> alarmList = getAlarmByTime(tab, ids); for (WarningDetail s : alarmList) { list.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue())); } } for (String tab : tables) { List<WarningDetail> warnList = getWarnByTime(tab, ids); for (WarningDetail s : warnList) { list.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue())); } } return list; } private List<WarningDetail> getAlarmByTime(String tableName, List<String> ids) { List<WarningDetail> result = new ArrayList<>(); List<SuYuan2d> list = suYuanMapper.getAlarmsAnalyse(tableName, ids); if (null != list && list.size() > 0) { Date date = getDateByTabName(tableName); for (SuYuan2d s : list) { String locationName = commonService.select3dCheckPointById(s.getId()).getName(); result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, 0, s.getValue())); } } return result; } private List<WarningDetail> getWarnByTime(String tableName, List<String> ids) { List<WarningDetail> result = new ArrayList<>(); List<SuYuan2d> list = suYuanMapper.getWarningAnalyse(tableName, ids); if (null != list && list.size() > 0) { Date date = getDateByTabName(tableName); for (SuYuan2d s : list) { String locationName = commonService.select3dCheckPointById(s.getId()).getName(); result.add(new WarningDetail(0L, tableName, s.getId(), locationName, date, 1, s.getValue())); } } return result; } private Date getDateByTabName(String tab) { try { return ymdh.parse(tab.replace("su_yuan_", "")); } catch (Exception e) { return new Date(); } } } src/main/resources/mapping/DictRecordMapper.xml
@@ -30,6 +30,13 @@ WHERE create_time = #{createTime} LIMIT 0, 1 </select> <select id="selectByTime" resultMap="DictRecordResult"> SELECT id, table_name, create_time FROM dict_record where str_to_date(create_time, '%Y-%m-%d-%H:%i:%S') between #{start} and #{end} order by create_time; </select> <select id="selectByTimeDictRecordList" resultMap="DictRecordResult"> SELECT id, table_name, create_time