guoshilong
2023-08-07 534be798cfd15beb4f1d9715eeeb739a3e775e32
大坝安全监测统计接口
15 files modified
2 files added
469 ■■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/AlarmGet.java 14 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java 11 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java 11 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml 37 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/rabbitmq/MyRabbitReceiver.java 4 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IAlarmGetService.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java 48 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.java 9 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml 172 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/IDamSecurityService.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/impl/DamSecurityServiceImpl.java 17 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java 90 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/AlarmGet.java
@@ -38,8 +38,9 @@
    private String pointId;
    /**
     * 物理量id
     * 物理量id   type,1:渗压,2:渗流,3:X位移,4:Y位移,5:Z位移
     */
    private String type;
    /**
@@ -93,17 +94,22 @@
     * 正向阈值
     */
    @TableField(value = "forward",typeHandler = FastjsonTypeHandler.class)
    private Object forward;
    private String forward;
    /**
     * 反向阈值
     */
    @TableField(value = "\"REVERSE\"",typeHandler = FastjsonTypeHandler.class)
    private Object reverse;
    private String reverse;
    /**
     * 系数阈值
     */
    @TableField(value = "ratio",typeHandler = FastjsonTypeHandler.class)
    private Object ratio;
    private String ratio;
    /**
     * 处置状态(1、已处置;2、未处置)
     */
    private String status;
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java
@@ -1,9 +1,15 @@
package cn.gistack.nky.fegin;
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.vo.AlarmGetVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(
    value = "blade-nky",
@@ -26,6 +32,10 @@
    String GET_BATCH_DATA = API_PREFIX + "getBatchData";
    //异常查询
    String ALARM_GET_DATA = API_PREFIX + "alarmGetData";
    //预警详情
    String GET_ALARM_DETAIL = API_PREFIX + "getAlarmDetail";
    /**
     * 获取arima预测结果
@@ -65,4 +75,7 @@
    @GetMapping(ALARM_GET_DATA)
    void alarmGetData(@RequestParam("type") String type);
    @PostMapping(GET_ALARM_DETAIL)
    List<AlarmGetVO> getAlarmDetail(@RequestBody AlarmGetVO alarmGet);
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java
@@ -1,6 +1,10 @@
package cn.gistack.nky.fegin;
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.vo.AlarmGetVO;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class INkyClientFallback implements INkyClient{
@@ -35,4 +39,9 @@
    public void alarmGetData(String type) {
    }
    @Override
    public List<AlarmGetVO> getAlarmDetail(AlarmGetVO alarmGet) {
        return null;
    }
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java
New file
@@ -0,0 +1,11 @@
package cn.gistack.nky.vo;
import cn.gistack.nky.entity.AlarmGet;
import lombok.Data;
@Data
public class AlarmGetVO extends AlarmGet {
    private String [] dateRange;
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java
@@ -1,16 +1,21 @@
package cn.gistack.nky.feign;
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.fegin.INkyClient;
import cn.gistack.nky.service.IAlarmGetService;
import cn.gistack.nky.service.IArimaPredictService;
import cn.gistack.nky.service.IHstPredictService;
import cn.gistack.nky.service.INkyService;
import cn.gistack.nky.vo.AlarmGetVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tenant.annotation.NonDS;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@NonDS
@ApiIgnore
@@ -60,4 +65,10 @@
    public void alarmGetData(String type) {
        alarmGetService.alarmGetData(type);
    }
    @Override
    @PostMapping(GET_ALARM_DETAIL)
    public List<AlarmGetVO> getAlarmDetail(AlarmGetVO alarmGet) {
        return alarmGetService.getAlarmDetail(alarmGet);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.java
@@ -1,7 +1,12 @@
package cn.gistack.nky.mapper;
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.vo.AlarmGetVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface AlarmGetMapper extends BaseMapper<AlarmGet> {
    List<AlarmGetVO> getAlarmDetail(@Param("vo") AlarmGetVO alarmGet);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml
@@ -2,4 +2,41 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.gistack.nky.mapper.AlarmGetMapper">
    <resultMap id="vo" type="cn.gistack.nky.vo.AlarmGetVO">
        <id column="id" property="id"/>
        <result property="damId" column="dam_id"/>
        <result property="type" column="type"/>
        <result property="status" column="status"/>
        <result property="baojingzhi" column="baojingzhi"/>
        <result property="createTime" column="create_time"/>
        <result property="desc" column="desc"/>
        <result property="level" column="level"/>
        <result property="originId" column="origin_id"/>
        <result property="pointId" column="point_id"/>
        <result property="value" column="value"/>
        <result property="time" column="time"/>
        <result property="taskCategory" column="task_category"/>
        <result property="forward" column="forward" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
        <result property="reverse" column="reverse" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
        <result property="ratio" column="ratio" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
    </resultMap>
    <select id="getAlarmDetail" resultMap="vo">
        SELECT * FROM NKY_ALARM_GET
        WHERE 1=1
        <if test="vo.dateRange !=null and  vo.dateRange.length >  0">
            AND time &gt;= #{vo.daterange[0]} AND time &lt;= #{vo.daterange[1]}
        </if>
        <if test="vo.level != null and vo.level !='' ">
            AND level = #{vo.level}
        </if>
        <if test="vo.status != null and vo.status !='' ">
            AND status = #{vo.status}
        </if>
        <if test="vo.type != null and vo.type !='' ">
            AND type = #{vo.type}
        </if>
        AND dam_id =  #{vo.damId}
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/rabbitmq/MyRabbitReceiver.java
@@ -21,11 +21,9 @@
    @RabbitListener(queues = "alarm")
    public void processMessage(Message message) {
        System.out.println("收到消息"+new String(message.getBody()));
        AlarmGet alarmGet = JSONObject.parseObject(new String(message.getBody()), AlarmGet.class);
        alarmGetService.save(alarmGet);
        System.out.println("收到消息"+new String(message.getBody()));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IAlarmGetService.java
@@ -1,10 +1,15 @@
package cn.gistack.nky.service;
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.vo.AlarmGetVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface IAlarmGetService extends IService<AlarmGet> {
    void batchData(String type);
    void alarmGetData(String type);
    List<AlarmGetVO> getAlarmDetail(AlarmGetVO alarmGet);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java
@@ -9,6 +9,7 @@
import cn.gistack.nky.service.IAlarmGetService;
import cn.gistack.nky.service.INkyService;
import cn.gistack.nky.service.IZtApiService;
import cn.gistack.nky.vo.AlarmGetVO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@@ -49,6 +50,11 @@
    }
    @Override
    public List<AlarmGetVO> getAlarmDetail(AlarmGetVO alarmGet) {
        return baseMapper.getAlarmDetail(alarmGet);
    }
    /**
     * 获取水库集
     *
skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml
@@ -60,6 +60,11 @@
            <artifactId>skjcmanager-alerts-api</artifactId>
            <version>3.0.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>cn.gistack</groupId>
            <artifactId>skjcmanager-nky-api</artifactId>
            <version>3.0.1.RELEASE</version>
        </dependency>
    </dependencies>
    <build>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java
@@ -1,8 +1,13 @@
package cn.gistack.sm.damSecurity.controller;
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.fegin.INkyClient;
import cn.gistack.nky.vo.AlarmGetVO;
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.exam.entity.ExamPlan;
import cn.gistack.sm.patrol.vo.PatrolTaskVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -12,6 +17,7 @@
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -22,10 +28,12 @@
@Api(tags = "大坝安全统计")
@RestController
@RequestMapping("/damSecurity/damSecurity")
@AllArgsConstructor
public class DamSecurityController extends BladeController {
    private final IDamSecurityService damSecurityService;
    @Autowired
    private  IDamSecurityService damSecurityService;
    @Autowired
    private  INkyClient nkyClient;
    /**
     * 大坝安全监测状况统计
@@ -51,4 +59,40 @@
        return R.data(list);
    }
    /**
     * 大坝安全监测表格
     * @param damStationStatistics
     * @return
     */
    @ApiOperation(value = "大坝安全统计-大坝安全监测表格", notes = "大坝安全统计-大坝安全监测表格")
    @GetMapping(value = "/tableResCount")
    public R tableResCount(DamStationStatistics damStationStatistics,Query query) {
        IPage<DamStationStatistics> page =  damSecurityService.tableResCountPage(damStationStatistics,Condition.getPage(query));
        return R.data(page);
    }
    /**
     * 大坝安全监测预警详情
     * @param alarmGet
     * @return
     */
    @ApiOperation(value = "大坝安全统计-大坝安全监测预警详情", notes = "大坝安全统计-大坝安全监测预警详情")
    @GetMapping(value = "/alarmDetail")
    public R alarmDetail(AlarmGetVO alarmGet){
        List<AlarmGetVO> list = nkyClient.getAlarmDetail(alarmGet);
        return R.data(list);
    }
    /**
     * 大坝安全监测预警异常统计
     * @param damStationStatistics
     * @return
     */
    @ApiOperation(value = "大坝安全统计-大坝安全监测预警异常统计", notes = "大坝安全统计-大坝安全监测预警异常统计")
    @GetMapping(value = "/alarmResCount")
    public R alarmResCount(DamStationStatistics damStationStatistics){
        List<DamStationStatistics> list =  damSecurityService.alarmResCount(damStationStatistics);
        return R.data(list);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.java
@@ -1,6 +1,8 @@
package cn.gistack.sm.damSecurity.mapper;
import cn.gistack.sm.damSecurity.vo.DamSecurityStatistics;
import cn.gistack.sm.damSecurity.vo.DamStationStatistics;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -9,8 +11,13 @@
@Repository
public interface DamSecurityMapper {
    DamSecurityStatistics getSingleRegionCount(@Param("dam") DamSecurityStatistics damSecurityStatistics);
    List<DamSecurityStatistics> listRegionCount(@Param("dam") DamSecurityStatistics damSecurityStatistics);
    List<DamStationStatistics> tableResCount(@Param("dam") DamStationStatistics damStationStatistics);
    List<DamStationStatistics> tableResCountPage(@Param("dam")DamStationStatistics damStationStatistics, IPage<DamStationStatistics> page);
    List<DamStationStatistics> alarmResCount(@Param("dam") DamStationStatistics damStationStatistics);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
@@ -186,4 +186,176 @@
        )
    </select>
    <select id="tableResCount" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
        SELECT info."guid",info."name",info."eng_scal",info."town_ad_code",info."town_ad_name",info."county_ad_code",info."county_ad_name",info."city_ad_code",info."city_ad_name",
               (info.wy+info.sy+info.sl) total,(info.wy+info.sy+info.sl-info.errorNum) normalNum,info.errorNum FROM
            (
                SELECT baseRes.*,ifnull(wy.wyStation,0) wy ,ifnull(sy.syStation,0) sy,ifnull(sl.slStation,0) sl,ifnull(alarm.errorNum,0) errorNum FROM
                    (
                        SELECT
                            a."guid",
                            a."name",
                            a."eng_scal",
                            case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS "town_ad_code",
                            case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS "town_ad_name",
                            case when b."ad_grad" = 4 THEN b."order_id" ELSE NULL END AS "town_order_id",
                            case when b."ad_grad" = 3 THEN b."ad_code" when c."ad_grad" = 3 THEN c."ad_code" END AS "county_ad_code",
                            case when b."ad_grad" = 3 THEN b."ad_name" when c."ad_grad" = 3 THEN C."ad_name" END AS "county_ad_name",
                            case when b."ad_grad" = 3 THEN b."order_id" when c."ad_grad" = 3 THEN C."order_id" END AS "county_order_id",
                            case when b."ad_grad" = 2 THEN b."ad_code" when c."ad_grad" = 2 THEN c."ad_code" ELSE d."ad_code" END AS "city_ad_code",
                            case when b."ad_grad" = 2 THEN b."ad_name" when c."ad_grad" = 2 THEN c."ad_name" ELSE d."ad_name" END AS "city_ad_name",
                            case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id" ELSE d."order_id" END AS "city_order_id",
                            case when b."ad_grad" = 1 THEN b."ad_code"  when c."ad_grad" = 1 THEN c."ad_code" when d."ad_grad" = 1 THEN d."ad_code" ELSE e."ad_code" END AS "province_ad_code",
                            case when b."ad_grad" = 1 THEN b."ad_name"  when c."ad_grad" = 1 THEN c."ad_name" when d."ad_grad" = 1 THEN d."ad_name" ELSE e."ad_name" END AS "province_ad_name",
                            case when b."ad_grad" = 1 THEN b."order_id"  when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN d."order_id" ELSE e."order_id" END AS "province_order_id"
                        FROM sjzt_md."att_res_base" a
                                 LEFT JOIN (
                                     SELECT "res_cd","sys_resource" FROM (SELECT b."guid" as "res_cd",'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_pztb" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
                                                 UNION
                                     SELECT b."guid" as "res_cd", 'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code") WHERE "res_cd" is not null) f ON a."guid" = f."res_cd"
                                 LEFT JOIN (
                                     SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'sl' as "sys_resource"  FROM sjzt_ods."dsm_spg_spqnmp" a   LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid") WHERE "res_cd" is not null) G on a."guid" = g."res_cd"
                                 LEFT JOIN (SELECT  "res_cd", "sys_resource" FROM  (SELECT b."guid" as "res_cd", 'wy' as "sys_resource" FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a  LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by b."guid") WHERE "res_cd" is not null) h ON a."guid" = h."res_cd"
                                 LEFT JOIN sjzt_md."att_ad_base" b ON a."interior_ad_guid" = b."guid"
                                 LEFT JOIN sjzt_md."att_ad_base" c ON b."p_ad_code" = c."guid"
                                 LEFT JOIN sjzt_md."att_ad_base" d ON c."p_ad_code" = d."guid"
                                 LEFT JOIN sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
                        where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
                    ) baseRes
                        LEFT JOIN (
                            SELECT "res_cd",COUNT(*) wyStation
                            FROM ( SELECT b."guid" as "res_cd",'wy' as "sys_resource"
                            FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" )
                            GROUP BY "res_cd"
                    ) wy ON wy."res_cd" = baseRes."guid"
                        LEFT JOIN(
                            SELECT "res_cd", COUNT(*) syStation
                            FROM( SELECT b."guid" as "res_cd",'sy' as "sys_resource"
                            FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code")
                        GROUP BY "res_cd"
                    ) sy ON sy."res_cd" = baseRes."guid"
                        LEFT JOIN (
                            SELECT "res_cd",COUNT(*) slStation
                            FROM  ( SELECT b."guid" as "res_cd",'sl' as "sys_resource"
                            FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid" )
                        GROUP BY "res_cd"
                    ) sl ON sl."res_cd" = baseRes."guid"
                        LEFT JOIN ( SELECT DAM_ID ,COUNT(*) errorNum FROM YWXT.NKY_ALARM_GET GROUP BY "DAM_ID"  ) alarm ON alarm.DAM_ID = baseRes."guid"
                        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = "town_ad_code"
                        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"
                        WHERE 1=1
                <!--这里加条件-->
                        <if test="dam.adCode != null and dam.adCode !='' ">
                          AND  (province."ad_code" = #{dam.adCode} or city."ad_code" =#{dam.adCode}or county."ad_code" = #{dam.adCode} )
                        </if>
            ) info
    </select>
    <select id="tableResCountPage" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
        SELECT
               info."guid" AS resCd,
               info."name" AS resName,
               info."eng_scal" AS engScal,
               info."town_ad_code" AS townCode,
               info."town_ad_name" AS townName,
               info."county_ad_code" AS countyCode,
               info."county_ad_name" AS countyName ,
               info."city_ad_code" AS cityCode,
               info."city_ad_name" AS cityName,
                (info.wy+info.sy+info.sl) AS total,
               (info.wy+info.sy+info.sl-info.errorNum) AS normalNum,
               info.errorNum  AS errorNum
        FROM
        (
        SELECT baseRes.*,ifnull(wy.wyStation,0) wy ,ifnull(sy.syStation,0) sy,ifnull(sl.slStation,0) sl,ifnull(alarm.errorNum,0) errorNum FROM
        (
        SELECT
        a."guid",
        a."name",
        a."eng_scal",
        case when b."ad_grad" = 4 THEN b."ad_code" ELSE NULL END AS "town_ad_code",
        case when b."ad_grad" = 4 THEN b."ad_name" ELSE NULL END AS "town_ad_name",
        case when b."ad_grad" = 4 THEN b."order_id" ELSE NULL END AS "town_order_id",
        case when b."ad_grad" = 3 THEN b."ad_code" when c."ad_grad" = 3 THEN c."ad_code" END AS "county_ad_code",
        case when b."ad_grad" = 3 THEN b."ad_name" when c."ad_grad" = 3 THEN C."ad_name" END AS "county_ad_name",
        case when b."ad_grad" = 3 THEN b."order_id" when c."ad_grad" = 3 THEN C."order_id" END AS "county_order_id",
        case when b."ad_grad" = 2 THEN b."ad_code" when c."ad_grad" = 2 THEN c."ad_code" ELSE d."ad_code" END AS "city_ad_code",
        case when b."ad_grad" = 2 THEN b."ad_name" when c."ad_grad" = 2 THEN c."ad_name" ELSE d."ad_name" END AS "city_ad_name",
        case when b."ad_grad" = 2 THEN b."order_id" when c."ad_grad" = 2 THEN c."order_id" ELSE d."order_id" END AS "city_order_id",
        case when b."ad_grad" = 1 THEN b."ad_code"  when c."ad_grad" = 1 THEN c."ad_code" when d."ad_grad" = 1 THEN d."ad_code" ELSE e."ad_code" END AS "province_ad_code",
        case when b."ad_grad" = 1 THEN b."ad_name"  when c."ad_grad" = 1 THEN c."ad_name" when d."ad_grad" = 1 THEN d."ad_name" ELSE e."ad_name" END AS "province_ad_name",
        case when b."ad_grad" = 1 THEN b."order_id"  when c."ad_grad" = 1 THEN c."order_id" when d."ad_grad" = 1 THEN d."order_id" ELSE e."order_id" END AS "province_order_id"
        FROM sjzt_md."att_res_base" a
        LEFT JOIN (
        SELECT "res_cd","sys_resource" FROM (SELECT b."guid" as "res_cd",'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_pztb" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
        UNION
        SELECT b."guid" as "res_cd", 'sy' as "sys_resource" FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code") WHERE "res_cd" is not null) f ON a."guid" = f."res_cd"
        LEFT JOIN (
        SELECT "res_cd", "sys_resource" FROM (SELECT b."guid" as "res_cd", 'sl' as "sys_resource"  FROM sjzt_ods."dsm_spg_spqnmp" a   LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid") WHERE "res_cd" is not null) G on a."guid" = g."res_cd"
        LEFT JOIN (SELECT  "res_cd", "sys_resource" FROM  (SELECT b."guid" as "res_cd", 'wy' as "sys_resource" FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a  LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" group by b."guid") WHERE "res_cd" is not null) h ON a."guid" = h."res_cd"
        LEFT JOIN sjzt_md."att_ad_base" b ON a."interior_ad_guid" = b."guid"
        LEFT JOIN sjzt_md."att_ad_base" c ON b."p_ad_code" = c."guid"
        LEFT JOIN sjzt_md."att_ad_base" d ON c."p_ad_code" = d."guid"
        LEFT JOIN sjzt_md."att_ad_base" e ON d."p_ad_code" = e."guid"
        where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
        ) baseRes
        LEFT JOIN (
            SELECT "res_cd",COUNT(*) wyStation
            FROM ( SELECT b."guid" as "res_cd",'wy' as "sys_resource"
            FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" )
            GROUP BY "res_cd"
        ) wy ON wy."res_cd" = baseRes."guid"
        LEFT JOIN(
            SELECT "res_cd", COUNT(*) syStation
            FROM( SELECT b."guid" as "res_cd",'sy' as "sys_resource"
            FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code")
            GROUP BY "res_cd"
        ) sy ON sy."res_cd" = baseRes."guid"
        LEFT JOIN (
            SELECT "res_cd",COUNT(*) slStation
            FROM  ( SELECT b."guid" as "res_cd",'sl' as "sys_resource"
            FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid" )
            GROUP BY "res_cd"
        ) sl ON sl."res_cd" = baseRes."guid"
        LEFT JOIN ( SELECT DAM_ID ,COUNT(*) errorNum FROM NKY_ALARM_GET GROUP BY "DAM_ID"  ) alarm ON alarm.DAM_ID = baseRes."guid"
        LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = "town_ad_code"
        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"
        WHERE 1=1
        <!--这里加条件-->
        <if test="dam.adCode != null and dam.adCode !='' ">
            AND  (province."ad_code" = #{dam.adCode} or city."ad_code" =#{dam.adCode}or county."ad_code" = #{dam.adCode} )
        </if>
        <if test="dam.resName != null and dam.resName !='' ">
            AND "name" LIKE CONCAT('%',#{dam.resName},'%')
        </if>
        ) info
    </select>
    <select id="alarmResCount" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
        SELECT
               arb."center_long" AS longitude,
               arb."center_lat" AS latitude,
               resCd
        FROM
            (
                SELECT NAG.dam_id resCd,count(*)  FROM YWXT.NKY_ALARM_GET NAG GROUP BY NAG.dam_id
            ) baseAlarm
                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = baseAlarm.resCd
                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"
        WHERE 1=1
        <if test="dam.adCode != null and dam.adCode !='' ">
            AND  (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/IDamSecurityService.java
@@ -1,6 +1,8 @@
package cn.gistack.sm.damSecurity.service;
import cn.gistack.sm.damSecurity.vo.DamSecurityStatistics;
import cn.gistack.sm.damSecurity.vo.DamStationStatistics;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
@@ -18,4 +20,15 @@
     * @return
     */
    List<DamSecurityStatistics> listRegionCount(DamSecurityStatistics damSecurityStatistics);
    List<DamStationStatistics> tableResCount(DamStationStatistics damStationStatistics);
    IPage<DamStationStatistics> tableResCountPage(DamStationStatistics damStationStatistics, IPage<DamStationStatistics> page);
    /**
     * 统计预警水库列表(传回经纬度,用于首页显示)
     * @param damStationStatistics
     * @return
     */
    List<DamStationStatistics> alarmResCount(DamStationStatistics damStationStatistics);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/impl/DamSecurityServiceImpl.java
@@ -3,6 +3,8 @@
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 com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -23,4 +25,19 @@
    public List<DamSecurityStatistics> listRegionCount(DamSecurityStatistics damSecurityStatistics) {
        return damSecurityMapper.listRegionCount(damSecurityStatistics);
    }
    @Override
    public List<DamStationStatistics> tableResCount(DamStationStatistics damStationStatistics) {
        return damSecurityMapper.tableResCount(damStationStatistics);
    }
    @Override
    public IPage<DamStationStatistics> tableResCountPage(DamStationStatistics damStationStatistics, IPage<DamStationStatistics> page) {
        return page.setRecords(damSecurityMapper.tableResCountPage(damStationStatistics,page));
    }
    @Override
    public List<DamStationStatistics> alarmResCount(DamStationStatistics damStationStatistics) {
        return damSecurityMapper.alarmResCount(damStationStatistics);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java
New file
@@ -0,0 +1,90 @@
package cn.gistack.sm.damSecurity.vo;
import lombok.Data;
/**
 * 大坝测站数量统计
 */
@Data
public class DamStationStatistics {
    /**
     * 水库id
     */
    private String resCd;
    /**
     * 水库名称
     */
    private String resName;
    /**
     * 地市
     */
    private String cityName;
    /**
     * 市编码
     */
    private String cityCode;
    /**
     * 区县
     */
    private String countyName;
    /**
     * 区县编码
     */
    private String countyCode;
    /**
     * 镇编码
     */
    private String townCode;
    /**
     * 镇名
     */
    private String townName;
    /**
     * 工程规模
     */
    private String engScal;
    /**
     * 时间
     */
    private String time;
    /**
     * 测点数量
     */
    private Integer total;
    /**
     * 正常测点数量
     */
    private Integer normalNum;
    /**
     * 异常测点数量
     */
    private Integer errorNum;
    /**
     * 行政区划编码
     */
    private String adCode;
    /**
     * 经度
     */
    private String longitude;
    /**
     * 纬度
     */
    private String latitude;
}