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 >= #{vo.daterange[0]} AND time <= #{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; }