guoshilong
2023-10-26 ac0bf12a07cb0c4c7dc9f62ff81c30d8cbf15a3b
大坝监测预警
6 files modified
2 files added
321 ■■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java 22 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java 19 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml 178 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/IDamSecurityService.java 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/impl/DamSecurityServiceImpl.java 28 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamMonitor.java 33 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/LevelPo.java 16 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java
@@ -11,4 +11,26 @@
    private String typeName;
    private String reservoirName;
    private String basGuids;
    private String engScal;
    private String labels;
    private String adCode;
    private String provinceCode;
    private String provinceName;
    private String cityCode;
    private String cityName;
    private String countyCode;
    private String countyName;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java
@@ -5,6 +5,7 @@
import cn.gistack.nky.vo.AlarmGetVO;
import cn.gistack.nky.vo.PageVO;
import cn.gistack.sm.damSecurity.service.IDamSecurityService;
import cn.gistack.sm.damSecurity.vo.DamMonitor;
import cn.gistack.sm.damSecurity.vo.DamSecurityStatistics;
import cn.gistack.sm.damSecurity.vo.DamStationStatistics;
import cn.gistack.sm.damSecurity.vo.DamStatisticsRes;
@@ -60,16 +61,28 @@
    /**
     * 监测预警分布
     * @param damSecurityStatistics
     * @param damMonitor
     * @return
     */
    @GetMapping(value = "/listRegionCountMonitor")
    public R listRegionCountMonitor(DamSecurityStatistics damSecurityStatistics){
        List<DamSecurityStatistics> list =  damSecurityService.listRegionCountMonitor(damSecurityStatistics);
    public R listRegionCountMonitor(DamMonitor damMonitor){
        List<DamMonitor> list =  damSecurityService.listRegionCountMonitor(damMonitor);
        return R.data(list);
    }
    /**
     * 监测预警分布表格
     * @param alarmGet
     * @param query
     * @return
     */
    @GetMapping(value = "/pageMonitor")
    public R pageMonitor(AlarmGetVO alarmGet,Query query){
        IPage<AlarmGetVO> page =  damSecurityService.pageMonitor(alarmGet,Condition.getPage(query));
        return R.data(page);
    }
    /**
     * 大坝安全监测表格
     * @param damStationStatistics
     * @return
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.java
@@ -1,8 +1,7 @@
package cn.gistack.sm.damSecurity.mapper;
import cn.gistack.sm.damSecurity.vo.DamSecurityStatistics;
import cn.gistack.sm.damSecurity.vo.DamStationStatistics;
import cn.gistack.sm.damSecurity.vo.DamStatisticsRes;
import cn.gistack.nky.vo.AlarmGetVO;
import cn.gistack.sm.damSecurity.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -35,5 +34,11 @@
    List<DamStationStatistics> getSlList(@Param("adCode") String adCode, @Param("status") String status);
    List<DamStationStatistics> getWyList(@Param("adCode") String adCode, @Param("status") String status);
    List<DamSecurityStatistics> listRegionCountMonitor(@Param("dam") DamSecurityStatistics damSecurityStatistics);
    List<DamSecurityStatistics> listRegionCountMonitor(@Param("dam") DamMonitor damMonitor);
    List<DamMonitor> getRegionList(@Param("dam") DamMonitor damMonitor);
    List<LevelPo> getLevelList(@Param("dam") DamMonitor damMonitor);
    List<AlarmGetVO> pageMonitor(@Param("page") IPage<AlarmGetVO> page, @Param("vo") AlarmGetVO alarmGet);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
@@ -1137,6 +1137,184 @@
        </choose>
        )
    </select>
    <select id="getRegionList" resultType="cn.gistack.sm.damSecurity.vo.DamMonitor">
        SELECT aab."ad_name" adName , aab."guid" adCode from SJZT_MD."att_ad_base" aab where
        <choose>
            <when test="dam.adCode != null and dam.adCode !='' ">
                "p_ad_code" = #{dam.adCode}
            </when>
            <otherwise>
                "ad_grad" = 2
            </otherwise>
        </choose>
    </select>
    <select id="getLevelList" resultType="cn.gistack.sm.damSecurity.vo.LevelPo">
        SELECT COUNT(*) AS num ,level FROM NKY_ALARM_GET NAG
                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
                left join SJZT_MD."att_ad_base" b on arb."interior_ad_guid" = b."ad_code"
                left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
                left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
                LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = NAG.DAM_ID
                LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
                LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
        where 1=1
        AND (d."ad_code" = #{dam.adCode} or c."ad_code" = #{dam.adCode} or b."ad_code" = #{dam.adCode})
        <if test="dam.startTime != null and dam.startTime != ''">
            AND DATE_FORMAT(time,'%Y-%m-%d') &gt;= #{dam.startTime}
        </if>
        <if test="dam.endTime != null and dam.endTime !='' ">
            AND DATE_FORMAT(time,'%Y-%m-%d') &lt;= #{dam.endTime}
        </if>
        <if test="dam.engScal != null and dam.engScal !='' ">
            AND arb."eng_scal" = #{dam.engScal}
        </if>
        <if test="dam.type != null and dam.type != '' and dam.type != 3">
            AND NAG.type = #{dam.type}
        </if>
        <if test="dam.type != null and dam.type != '' and dam.type == 3">
            AND (NAG.type = 3 or NAG.type = 4 or NAG.type = 5)
        </if>
        <if test="dam.labels != null and dam.labels != '' ">
            AND( 1!=1
            <foreach collection="dam.labels.split(',')" item="item" open="" separator="" close="" index="index">
                OR  #{item}  in (arb."label")
            </foreach>
            )
        </if>
        <if test="dam.basGuids != null and dam.basGuids !='' ">
            AND(
            abb."code" in
            <foreach collection="dam.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
            or pabb."code" in
            <foreach collection="dam.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
            )
        </if>
        GROUP BY LEVEL ORDER BY level ASC
    </select>
    <select id="pageMonitor" resultType="cn.gistack.nky.vo.AlarmGetVO">
        SELECT
        NAG.ID,
        NAG.DAM_ID,
        NAG.POINT_ID,
        NAG.TYPE,
        (
        CASE
        WHEN NAG.TYPE=1 THEN '渗压'
        WHEN NAG.TYPE=2 THEN '渗流'
        WHEN (NAG.TYPE=3 OR NAG.TYPE=4 OR NAG.TYPE=5) THEN '位移'
        END) AS typeName,
        NAG.TIME,
        NAG.VALUE,
        NAG."DESC",
        NAG.CREATE_TIME,
        NAG.TASK_CATEGORY,
        NAG.LEVEL,
        NAG.BAOJINGZHI,
        NAG.ORIGIN_ID,
        NAG.FORWARD,
        NAG."REVERSE",
        NAG.RATIO,
        NAG.STATUS,
        province."guid" as provinceCode,
        province."ad_name" as provinceName,
        city."guid" as cityCode,
        city."ad_name" as cityName,
        county."guid" as countyCode,
        county."ad_name" as countyName,
        arb."name" as reservoirName
        FROM NKY_ALARM_GET NAG
        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
        LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
        LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
        LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = NAG.DAM_ID
        LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
        LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
        WHERE 1=1
        <if test=" vo.adCode != null and vo.adCode !='' ">
            AND (province."ad_code" =#{vo.adCode} or city."ad_code" = #{vo.adCode} or county."ad_code" = #{vo.adCode})
        </if>
        <if test="vo.startTime != null and vo.startTime != ''">
            AND DATE_FORMAT(NAG.time,'%Y-%m-%d')  &gt;= #{vo.startTime}
        </if>
        <if test="vo.endTime != null and vo.endTime !='' ">
            AND DATE_FORMAT(NAG.time,'%Y-%m-%d') &lt;= #{vo.endTime}
        </if>
        <if test="vo.level != null and vo.level !='' ">
            AND NAG.level = #{vo.level}
        </if>
        <if test="vo.status != null and vo.status !='' ">
            AND NAG.status = #{vo.status}
        </if>
        <if test="vo.type != null and vo.type !='' and vo.type == 1 ">
            AND NAG.type = #{vo.type}
        </if>
        <if test="vo.type != null and vo.type !='' and vo.type == 2">
            AND NAG.type = #{vo.type}
        </if>
        <if test="vo.type != null and vo.type !='' and vo.type == 3">
            AND (NAG.type = '3' or NAG.type = '4' or NAG.type = '5')
        </if>
        <if test="vo.pointId != null and vo.pointId !='' ">
            AND NAG.POINT_id = #{vo.pointId}
        </if>
        <if test="vo.basGuids != null and vo.basGuids !='' ">
            AND(
            abb."code" in
            <foreach collection="vo.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
            or pabb."code" in
            <foreach collection="vo.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
            )
        </if>
        <if test="vo.labels != null and vo.labels != '' ">
            AND( 1!=1
            <foreach collection="vo.labels.split(',')" item="item" open="" separator="" close="" index="index">
                OR  #{item}  in (arb."label")
            </foreach>
            )
        </if>
        <if test="vo.engScal != null and vo.engScal !='' ">
            AND arb."eng_scal" = #{vo.engScal}
        </if>
    </select>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/IDamSecurityService.java
@@ -1,5 +1,7 @@
package cn.gistack.sm.damSecurity.service;
import cn.gistack.nky.vo.AlarmGetVO;
import cn.gistack.sm.damSecurity.vo.DamMonitor;
import cn.gistack.sm.damSecurity.vo.DamSecurityStatistics;
import cn.gistack.sm.damSecurity.vo.DamStationStatistics;
import cn.gistack.sm.damSecurity.vo.DamStatisticsRes;
@@ -53,5 +55,13 @@
     */
    List<DamStationStatistics> damResInfoCountMap(HashMap<String,String>  obj);
    List<DamSecurityStatistics> listRegionCountMonitor(DamSecurityStatistics damSecurityStatistics);
    List<DamMonitor> listRegionCountMonitor(DamMonitor damMonitor);
    /**
     * 监测预警列表
     * @param alarmGet
     * @param page
     * @return
     */
    IPage<AlarmGetVO> pageMonitor(AlarmGetVO alarmGet, IPage<AlarmGetVO> page);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/impl/DamSecurityServiceImpl.java
@@ -1,10 +1,9 @@
package cn.gistack.sm.damSecurity.service.impl;
import cn.gistack.nky.vo.AlarmGetVO;
import cn.gistack.sm.damSecurity.mapper.DamSecurityMapper;
import cn.gistack.sm.damSecurity.service.IDamSecurityService;
import cn.gistack.sm.damSecurity.vo.DamSecurityStatistics;
import cn.gistack.sm.damSecurity.vo.DamStationStatistics;
import cn.gistack.sm.damSecurity.vo.DamStatisticsRes;
import cn.gistack.sm.damSecurity.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -98,7 +97,26 @@
    }
    @Override
    public List<DamSecurityStatistics> listRegionCountMonitor(DamSecurityStatistics damSecurityStatistics) {
        return damSecurityMapper.listRegionCountMonitor(damSecurityStatistics);
    public List<DamMonitor> listRegionCountMonitor(DamMonitor damMonitor) {
        List<DamMonitor> regionList = getRegionList(damMonitor);
        regionList.forEach(region ->{
            damMonitor.setAdCode(region.getAdCode());
            List<LevelPo> levelPoList = damSecurityMapper.getLevelList(damMonitor);
            region.setLevelList(levelPoList);
        });
        return regionList;
    }
    @Override
    public IPage<AlarmGetVO> pageMonitor(AlarmGetVO alarmGet, IPage<AlarmGetVO> page) {
        List<AlarmGetVO> list =  damSecurityMapper.pageMonitor(page,alarmGet);
        return page.setRecords(list);
    }
    public List<DamMonitor> getRegionList(DamMonitor damMonitor){
        return damSecurityMapper.getRegionList(damMonitor);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamMonitor.java
New file
@@ -0,0 +1,33 @@
package cn.gistack.sm.damSecurity.vo;
import lombok.Data;
import java.util.List;
@Data
public class DamMonitor {
    private List<LevelPo> levelList;
    //行政区编码
    private String adCode;
    //行政区名
    private String adName;
    //===========查询条件=============
    //流域
    private String basGuids;
    //标签
    private String labels;
    //工程规模
    private String engScal;
    private String startTime;
    private String endTime;
    private String type;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/LevelPo.java
New file
@@ -0,0 +1,16 @@
package cn.gistack.sm.damSecurity.vo;
import lombok.Data;
@Data
public class LevelPo {
    /**
     * 预警等级
     */
    private String level;
    /**
     * 数量
     */
    private Integer num;
}