From 58cb215b67a5bf50fba0d63969f40711fc23135c Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 21 七月 2023 15:31:59 +0800 Subject: [PATCH] 1 --- src/main/resources/mapper/SuYuanMapper.xml | 2 src/main/java/com/yssh/entity/WarningDetail.java | 8 +++ src/main/java/com/yssh/mapper/QxshMapper.java | 4 ++ src/main/java/com/yssh/service/WarningAnalyseService.java | 55 +++++++++++++++++++++++++-- src/main/resources/mapper/QxshMapper.xml | 14 +++++++ 5 files changed, 76 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/yssh/entity/WarningDetail.java b/src/main/java/com/yssh/entity/WarningDetail.java index 2383fde..d29f704 100644 --- a/src/main/java/com/yssh/entity/WarningDetail.java +++ b/src/main/java/com/yssh/entity/WarningDetail.java @@ -27,19 +27,25 @@ } private static final long serialVersionUID = 1610250573910282005L; + @ApiModelProperty(value = "涓婚敭") private Long id; + @ApiModelProperty(value = "婧簮鏁版嵁琛ㄥ悕") private String tableName; + @ApiModelProperty(value = "婧簮鏁版嵁缂栧彿") private String suYuanId; + @ApiModelProperty(value = "鐐逛綅鍚嶇О") private String locationName; - ; + @ApiModelProperty(value = "鏃堕棿") private Date createTime; + @ApiModelProperty(value = "绫诲瀷") private Integer type; + @ApiModelProperty(value = "鏁板��") private Double value; diff --git a/src/main/java/com/yssh/mapper/QxshMapper.java b/src/main/java/com/yssh/mapper/QxshMapper.java index ef5329c..d7e9677 100644 --- a/src/main/java/com/yssh/mapper/QxshMapper.java +++ b/src/main/java/com/yssh/mapper/QxshMapper.java @@ -18,4 +18,8 @@ public List<Qxsh> selectMonthTop10(String time); public List<Qxsh> select3Hours(@Param("times") List<String> times); + + public List<Qxsh> selectByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end); + + public Double selectLastYearVal(@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 df01c61..6e8c441 100644 --- a/src/main/java/com/yssh/service/WarningAnalyseService.java +++ b/src/main/java/com/yssh/service/WarningAnalyseService.java @@ -353,7 +353,56 @@ return map; } - public List<Report> getAlarmAndWarnByTime(Date begin, Date end) { + public List<Report> getAlarmAndWarnByTime(Date beginDate, Date endDate) { + String strStart = DateUtils.getYyyyMmDdHh(beginDate); + String strEnd = DateUtils.getYyyyMmDdHh(endDate); + Integer start = Integer.parseInt(strStart); + Integer end = Integer.parseInt(strEnd); + + List<Qxsh> rsList = qxshMapper.selectByBeginAndEnd(start, end); + if (null == rsList || rsList.isEmpty()) return null; + + Hashtable<String, Boolean> dict = getExistTabDict(rsList); + List<Report> list = new ArrayList<>(); + for (Qxsh qxsh : rsList) { + String tab = "su_yuan_" + qxsh.getTime(); + if (!dict.get(tab)) continue; + + MonitorPointPosition point = commonService.select3dCheckPointByName(qxsh.getName()); + String suYuanId = point.getId().substring(0, point.getId().lastIndexOf("_") + 1) + "0"; + Double lastVal = qxshMapper.selectLastYearVal(Integer.parseInt(qxsh.getTime()) - 1000000, qxsh.getName()); + + WarningDetail wd = new WarningDetail(0L, tab, suYuanId, qxsh.getName(), null, 0, qxsh.getValue()); + DistanceSuYuan suYuan = suYuanMapper.getSuYuanById(tab, suYuanId); + List<String> ids3d = CalculateUtils.aloneCrosswiseExtend(point, 50); + DistanceSuYuan suMax = suYuanMapper.getSuYuan500Max(tab, ids3d); + suMax.setAddr(getAddr(suMax.getId())); + + Report report = Report.calcReport(wd, suYuan, suMax); + report.setLastVal(lastVal); + + list.add(report); + } + + return list; + } + + private Hashtable<String, Boolean> getExistTabDict(List<Qxsh> rsList) { + Hashtable<String, Boolean> dict = new Hashtable<>(); + for (Qxsh qxsh : rsList) { + String tab = "su_yuan_" + qxsh.getTime(); + if (dict.containsKey(tab)) { + continue; + } + + Boolean b = suYuanMapper.isTableExists(tab) > 0; + dict.put(tab, b); + } + + return dict; + } + + public List<Report> getAlarmAndWarnByTime2(Date begin, Date end) { String startTime = DateUtils.getYyyyMmDdHhMmSs(begin); String endTime = DateUtils.getYyyyMmDdHhMmSs(end); @@ -367,9 +416,6 @@ Hashtable<String, Boolean> dict = new Hashtable<>(); List<Report> list = new ArrayList<>(); for (WarningDetail wd : rs) { - //String time = ymdh.format(wd.getCreateTime()); - //list.add(new WarningVo(wd.getLocationName(), wd.getSuYuanId(), 0.0, 0.0, wd.getValue(), time)); - /*DistanceSuYuan suYuan = suYuanMapper.getSuYuanById(wd.getTableName(), wd.getSuYuanId()); Double lastVal = warningDetailMapper.getLastYearVal(wd.getId()); @@ -382,7 +428,6 @@ } else { suMax = suYuan; }*/ - if (dict.containsKey(wd.getTableName())) { if (!dict.get(wd.getTableName())) continue; } else { diff --git a/src/main/resources/mapper/QxshMapper.xml b/src/main/resources/mapper/QxshMapper.xml index b07e71e..3585815 100644 --- a/src/main/resources/mapper/QxshMapper.xml +++ b/src/main/resources/mapper/QxshMapper.xml @@ -28,4 +28,18 @@ </foreach> order by name, time; </select> + + <select id="selectByBeginAndEnd" resultType="com.yssh.entity.Qxsh"> + select id, name, format(value, 2) "value", time + from yssh_qxsh + where time between #{start} and #{end} + and value > (select jcbj from alert_config limit 1) and name like 'AI-%' + order by time, name; + </select> + + <select id="selectLastYearVal" resultType="java.lang.Double"> + select format(value, 2) "value" + from yssh_qxsh + where name = #{name} and time = #{time} + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/SuYuanMapper.xml b/src/main/resources/mapper/SuYuanMapper.xml index df67e57..b751ee2 100644 --- a/src/main/resources/mapper/SuYuanMapper.xml +++ b/src/main/resources/mapper/SuYuanMapper.xml @@ -165,7 +165,7 @@ </select> <select id="selectSuYuan700ById" resultType="com.yssh.entity.SuYuan700"> - select * from suyuan_700 + select * from suyuan_70_70 where su_yuan_id = #{id} and create_time = #{time} limit 1; </select> -- Gitblit v1.9.3