From 4b4a150626f7943ee0811d7c3c718be0abe68b23 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 29 七月 2023 10:41:41 +0800 Subject: [PATCH] 6 --- src/main/java/com/yssh/controller/WarningAnalyseController.java | 16 +++---- src/main/java/com/yssh/mapper/QxshMapper.java | 6 ++ src/main/java/com/yssh/service/WarningAnalyseService.java | 67 +++++++++------------------------ src/main/resources/mapper/QxshMapper.xml | 24 ++++++++++- 4 files changed, 52 insertions(+), 61 deletions(-) diff --git a/src/main/java/com/yssh/controller/WarningAnalyseController.java b/src/main/java/com/yssh/controller/WarningAnalyseController.java index 2e76dad..095929a 100644 --- a/src/main/java/com/yssh/controller/WarningAnalyseController.java +++ b/src/main/java/com/yssh/controller/WarningAnalyseController.java @@ -27,15 +27,15 @@ @ApiOperationSupport(order = 1) @ApiOperation(value = "鑾峰彇瀹炴椂鎶ヨ", notes = "鑾峰彇瀹炴椂鎶ヨ鍒嗘瀽鏁版嵁") @GetMapping("/runAlarm") - public Result alarmAnalyse() { - return Result.OK(warningService.getRunTimeAlarmAnalyse()); + 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)); } @ApiOperationSupport(order = 2) @ApiOperation(value = "鑾峰彇瀹炴椂棰勮", notes = "鑾峰彇瀹炴椂棰勮鍒嗘瀽鏁版嵁") @GetMapping("/runWarning") - public Result warningAnalyse() { - return Result.OK(warningService.getRunTimeWarningAnalyse()); + 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)); } @ApiOperationSupport(order = 3) @@ -49,23 +49,21 @@ @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) { - Date endDate = null == date ? new Date() : date; - return Result.OK(warningService.everydayCount(endDate)); + return Result.OK(warningService.everydayCount(null == date ? new Date() : date)); } @ApiOperationSupport(order = 4) @ApiOperation(value = "涓夊皬鏃剁洃娴嬬珯鐐规暟鎹彉鍖栬秼鍔�", notes = "杩斿洖鍊间负涓夊皬鏃剁洃娴嬬珯鐐圭洃娴嬫暟鎹紝杩斿洖鍊间负map闆嗗悎锛屽叾涓璳ey涓虹珯鐐瑰悕绉帮紝value涓簂ist闆嗗悎锛屼繚瀛樻瘡澶╃洃娴嬫暟鍊兼暟鎹�") @GetMapping("/locationDataChange") public Result locationDataChange(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) { - Date endDate = null == date ? new Date() : date; - return Result.OK(warningService.select3Hours(endDate)); + return Result.OK(warningService.select3Hours(null == date ? new Date() : date)); } @ApiOperationSupport(order = 4) @ApiOperation(value = "鑾峰彇鏈湀鐩戞祴澶ф暟鎹珯鐐规渶澶у�糡OP10", notes = "鑾峰彇鏈湀鐩戞祴澶ф暟鎹珯鐐规渶澶у�糡OP10鏁伴噺鍒楄〃") @GetMapping("/monthTop10") public Result monthTop10() { - return Result.ok(warningService.selectMonthTop10()); + return Result.OK(warningService.selectMonthTop10()); } @ApiOperationSupport(order = 5) diff --git a/src/main/java/com/yssh/mapper/QxshMapper.java b/src/main/java/com/yssh/mapper/QxshMapper.java index 443944b..18e8cb4 100644 --- a/src/main/java/com/yssh/mapper/QxshMapper.java +++ b/src/main/java/com/yssh/mapper/QxshMapper.java @@ -18,6 +18,10 @@ public List<Qxsh> selectMonthTop10(String time); + public List<Qxsh> selectWarnByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end); + + public List<Qxsh> selectAlarmByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end); + public Integer countMonthForWarn(@Param("start") Integer start, @Param("end") Integer end); public Integer countMonthForAlarm(@Param("start") Integer start, @Param("end") Integer end); @@ -26,7 +30,7 @@ public List<Map<String, Object>> count7DayForAlarm(@Param("start") Integer start, @Param("end") Integer end); - public List<Qxsh> selectByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end); + public List<Qxsh> select3Hours(@Param("start") Integer start, @Param("end") Integer end); public Qxsh selectByTimeAndName(@Param("time") Integer time, @Param("name") String name); diff --git a/src/main/java/com/yssh/service/WarningAnalyseService.java b/src/main/java/com/yssh/service/WarningAnalyseService.java index 408fd2c..6c5422e 100644 --- a/src/main/java/com/yssh/service/WarningAnalyseService.java +++ b/src/main/java/com/yssh/service/WarningAnalyseService.java @@ -51,7 +51,7 @@ @Async("threadPoolTaskExecutor") public void insertWarningDetails(List<WarningDetail> warning) throws Exception { - //鎻掑叆鏁版嵁 + // 鎻掑叆鏁版嵁 List<List<WarningDetail>> list = Lists.partition(warning, AsyncService.BATCH_INSERT_NUMBER); CountDownLatch countDownLatch = new CountDownLatch(list.size()); for (List<WarningDetail> corpReserveList : list) { @@ -60,30 +60,15 @@ countDownLatch.await(); } - public List<WarningVo> getRunTimeAlarmAnalyse() { - List<WarningVo> result = new ArrayList<>(); - Date nowDate = DateUtils.getNowDate(); - //String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate); - //DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time)); - //if (StringUtils.isNull(dictRecord)) { - // nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY); - //} - //List<WarningDetail> list = alarmAnalyseOperation(nowDate); + /** + * 鑾峰彇瀹炴椂鎶ヨ + */ + 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)); - List<WarningDetail> list = new ArrayList<>(); - Calendar calendar = getCalendar(nowDate); - for (int i = 0; i < 8; i++) { - calendar.add(Calendar.HOUR, -1); - List<WarningDetail> rs = getAlarmWarnAnalyse(calendar.getTime(), false); - if (null != rs && rs.size() > 0) { - list.addAll(rs); - } - } - list.forEach(s -> { - String time = DateUtils.getYyyyMmDdHh(s.getCreateTime()); - result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue(), time)); - }); - return result; + return qxshMapper.selectAlarmByBeginAndEnd(start, end); } private Calendar getCalendar(Date nowDate) { @@ -94,30 +79,15 @@ return calendar; } - public List<WarningVo> getRunTimeWarningAnalyse() { - List<WarningVo> result = new ArrayList<>(); - Date nowDate = DateUtils.getNowDate(); - //String time = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate); - //DictRecord dictRecord = dictRecordMapper.selectByCreateTime(Long.parseLong(time)); - //if (StringUtils.isNull(dictRecord)) { - // nowDate = DateUtils.getAPeriodOfTime(nowDate, -1, Calendar.HOUR_OF_DAY); - //} - //List<WarningDetail> list = warningAnalyseOperation(nowDate); + /** + * 鑾峰彇瀹炴椂棰勮 + */ + 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)); - List<WarningDetail> list = new ArrayList<>(); - Calendar calendar = getCalendar(nowDate); - for (int i = 0; i < 8; i++) { - calendar.add(Calendar.HOUR, -1); - List<WarningDetail> rs = getAlarmWarnAnalyse(calendar.getTime(), true); - if (null != rs && rs.size() > 0) { - list.addAll(rs); - } - } - list.forEach(s -> { - String time = DateUtils.getYyyyMmDdHh(s.getCreateTime()); - result.add(new WarningVo(s.getLocationName(), s.getSuYuanId(), 0.0, 0.0, s.getValue(), time)); - }); - return result; + return qxshMapper.selectWarnByBeginAndEnd(start, end); } private List<WarningDetail> getAlarmWarnAnalyse(Date date, boolean isWarn) { @@ -145,6 +115,7 @@ return result; } + // 宸插簾寮� * public void warningOperationStorage(Date date) { List<WarningDetail> allData = new ArrayList<>(); List<WarningDetail> alarms = this.getAlarmWarnAnalyse(date, false); @@ -213,7 +184,7 @@ Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate)); // List<String> times = DateUtils.get3Hours(); - List<Qxsh> list = qxshMapper.selectByBeginAndEnd(start, end); + List<Qxsh> list = qxshMapper.select3Hours(start, end); if (null == list || list.isEmpty()) { return null; } diff --git a/src/main/resources/mapper/QxshMapper.xml b/src/main/resources/mapper/QxshMapper.xml index d785b67..8d73f5b 100644 --- a/src/main/resources/mapper/QxshMapper.xml +++ b/src/main/resources/mapper/QxshMapper.xml @@ -19,6 +19,22 @@ limit 10; </select> + <select id="selectWarnByBeginAndEnd" resultType="com.yssh.entity.Qxsh"> + select id, name, lon, lat, format(value, 2) "value", time + from yssh_qxsh + where time between #{start} and #{end} and name like 'AI-%' + and value > (select jcyj from alert_config limit 1) and value <= (select jcbj from alert_config limit 1) + order by time desc, name; + </select> + + <select id="selectAlarmByBeginAndEnd" resultType="com.yssh.entity.Qxsh"> + select id, name, lon, lat, format(value, 2) "value", time + from yssh_qxsh + where time between #{start} and #{end} and name like 'AI-%' + and value > (select jcbj from alert_config limit 1) + order by time desc, name; + </select> + <select id="countMonthForWarn" resultType="java.lang.Integer"> select count(*) from yssh_qxsh @@ -29,7 +45,8 @@ <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); + 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"> @@ -46,12 +63,13 @@ with rs as ( select left(time, 8) "createTime" from yssh_qxsh - where time between #{start} and #{end} and name like 'AI-%' and value > (select jcbj from alert_config limit 1) + where time between #{start} and #{end} and name like 'AI-%' + and value > (select jcbj from alert_config limit 1) ) select createTime, count(*) "num" from rs group by createTime order by createTime; </select> - <select id="selectByBeginAndEnd" resultType="com.yssh.entity.Qxsh"> + <select id="select3Hours" resultType="com.yssh.entity.Qxsh"> select id, name, lon, lat, format(value, 2) "value", time from yssh_qxsh where time between #{start} and #{end} -- Gitblit v1.9.3