燕山石化溯源三维电子沙盘-【后端】-服务
13693261870
2023-10-31 a9f99d3f074472e1e16ec6109e5d819ca8dcf4d0
添加判断是否含有污染源的接口
已修改5个文件
100 ■■■■ 文件已修改
src/main/java/com/yssh/entity/Qxsh.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/mapper/QxshMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/SuYuanService.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/WarningAnalyseService.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/QxshMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}
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);
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;
    }
}
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);
    }
}
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