From a9f99d3f074472e1e16ec6109e5d819ca8dcf4d0 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 31 十月 2023 15:51:15 +0800 Subject: [PATCH] 添加判断是否含有污染源的接口 --- src/main/java/com/yssh/entity/Qxsh.java | 12 ++++++ src/main/java/com/yssh/mapper/QxshMapper.java | 2 + src/main/java/com/yssh/service/SuYuanService.java | 19 ++++++++- src/main/java/com/yssh/service/WarningAnalyseService.java | 63 ++++++++++++++++++++++++++----- src/main/resources/mapper/QxshMapper.xml | 4 ++ 5 files changed, 87 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/yssh/entity/Qxsh.java b/src/main/java/com/yssh/entity/Qxsh.java index 8fcf7b2..bfd262a 100644 --- a/src/main/java/com/yssh/entity/Qxsh.java +++ b/src/main/java/com/yssh/entity/Qxsh.java @@ -30,7 +30,11 @@ @ApiModelProperty(value = "鏃堕棿") private String time; + @ApiModelProperty(value = "鏄惁瀛樺湪婧簮") + private Integer isSuYuan; + public Qxsh() { + this.isSuYuan = 0; } public Integer getId() { @@ -80,4 +84,12 @@ public void setTime(String time) { this.time = time; } + + public Integer getIsSuYuan() { + return isSuYuan; + } + + public void setIsSuYuan(Integer isSuYuan) { + this.isSuYuan = isSuYuan; + } } diff --git a/src/main/java/com/yssh/mapper/QxshMapper.java b/src/main/java/com/yssh/mapper/QxshMapper.java index 4c828f9..116cbf4 100644 --- a/src/main/java/com/yssh/mapper/QxshMapper.java +++ b/src/main/java/com/yssh/mapper/QxshMapper.java @@ -34,6 +34,8 @@ public List<Map<String, Object>> count7DayForAlarm(@Param("start") Integer start, @Param("end") Integer end); + public Integer hasSuYuan(@Param("suYuanId") String suYuanId, @Param("createTime") String createTime); + 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/SuYuanService.java b/src/main/java/com/yssh/service/SuYuanService.java index 889fd13..8ddd0e5 100644 --- a/src/main/java/com/yssh/service/SuYuanService.java +++ b/src/main/java/com/yssh/service/SuYuanService.java @@ -47,6 +47,8 @@ @Resource private LocationService locService; + private static HashMap<String, String> sites = new HashMap<>(); + //@Transactional @Async("threadPoolTaskExecutor") public void insertSuYuanDatasAsync(List<SuYuan> lists, String time) throws Exception { @@ -321,9 +323,20 @@ } public String selectSuYuanIdByName(String name) { - MonitorPointPosition mpp = commonService.select3dCheckPointByName(name); - if (null == mpp) return null; + if (sites.containsKey(name)) { + return sites.get(name); + } - return mpp.getId().substring(0, mpp.getId().lastIndexOf("_") + 1) + "0"; + MonitorPointPosition mpp = commonService.select3dCheckPointByName(name); + if (null == mpp) { + return null; + } + + String suYuanId = mpp.getId().substring(0, mpp.getId().lastIndexOf("_") + 1) + "0"; + if (!sites.containsKey(name)) { + sites.put(name, suYuanId); + } + + return suYuanId; } } diff --git a/src/main/java/com/yssh/service/WarningAnalyseService.java b/src/main/java/com/yssh/service/WarningAnalyseService.java index 5c524c1..9ff78a9 100644 --- a/src/main/java/com/yssh/service/WarningAnalyseService.java +++ b/src/main/java/com/yssh/service/WarningAnalyseService.java @@ -1,6 +1,5 @@ package com.yssh.service; -import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.CountDownLatch; @@ -26,25 +25,28 @@ protected final Logger logger = LoggerFactory.getLogger(this.getClass()); @Resource - private WarningDetailMapper warningDetailMapper; + WarningDetailMapper warningDetailMapper; @Resource - private CommonService commonService; + CommonService commonService; @Resource - private SuYuanMapper suYuanMapper; + SuYuanMapper suYuanMapper; @Resource - private DictRecordMapper dictRecordMapper; + DictRecordMapper dictRecordMapper; @Resource - private AsyncService asyncService; + AsyncService asyncService; @Resource - private QxshMapper qxshMapper; + QxshMapper qxshMapper; @Resource - private VocValsService vocValsService; + VocValsService vocValsService; + + @Resource + SuYuanService suYuanService; private static HashMap<String, String> filterMap = new HashMap<>(); @@ -63,14 +65,18 @@ * 鑾峰彇瀹炴椂鎶ヨ */ public List<Qxsh> getRunTimeAlarmAnalyse(Integer start, Integer end) { - return qxshMapper.selectAlarmByBeginAndEnd(start, end); + List<Qxsh> list = qxshMapper.selectAlarmByBeginAndEnd(start, end); + + return copeHasSuYuan(list); } /** * 鑾峰彇瀹炴椂棰勮 */ public List<Qxsh> getRunTimeWarningAnalyse(Integer start, Integer end) { - return qxshMapper.selectWarnByBeginAndEnd(start, end); + List<Qxsh> list = qxshMapper.selectWarnByBeginAndEnd(start, end); + + return copeHasSuYuan(list); } /** @@ -317,4 +323,41 @@ return result; } + + /** + * 澶勭悊鏄惁鍚湁婧簮淇℃伅 + */ + private List<Qxsh> copeHasSuYuan(List<Qxsh> list) { + if (null == list || list.isEmpty()) { + return null; + } + + Map<String, Integer> tabs = new HashMap<>(); + for (Qxsh qxsh : list) { + String tab = "su_yuan_" + qxsh.getTime(); + if (!tabs.containsKey(tab)) { + tabs.put(tab, suYuanMapper.isTableExists(tab)); + } + + int rows = tabs.get(tab); + if (0 == rows) { + continue; + } + + int isSuYuan = hasSuYuan(qxsh); + qxsh.setIsSuYuan(isSuYuan); + } + + return list; + } + + /** + * 鏌ヨ婧簮 + */ + private Integer hasSuYuan(Qxsh qxsh) { + String suYuanId = suYuanService.selectSuYuanIdByName(qxsh.getName()); + String createTime = qxsh.getTime().substring(0, 4) + "-" + qxsh.getTime().substring(4, 6) + "-" + qxsh.getTime().substring(6, 8) + " " + qxsh.getTime().substring(8, 10) + ":00:00"; + + return qxshMapper.hasSuYuan(suYuanId, createTime); + } } diff --git a/src/main/resources/mapper/QxshMapper.xml b/src/main/resources/mapper/QxshMapper.xml index ee872f3..9520544 100644 --- a/src/main/resources/mapper/QxshMapper.xml +++ b/src/main/resources/mapper/QxshMapper.xml @@ -91,6 +91,10 @@ select createTime, count(*) "num" from rs group by createTime order by createTime; </select> + <select id="hasSuYuan" resultType="java.lang.Integer"> + select count(*) from suyuan_46 where su_yuan_id=#{suYuanId} and create_time=#{createTime}; + </select> + <select id="select3Hours" resultType="com.yssh.entity.Qxsh"> select id, name, lon, lat, format(value, 2) "value", time from yssh_qxsh -- Gitblit v1.9.3