From 534be798cfd15beb4f1d9715eeeb739a3e775e32 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 07 Aug 2023 15:32:30 +0800
Subject: [PATCH] 大坝安全监测统计接口

---
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IAlarmGetService.java                      |    5 
 skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java                         |   11 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml             |  172 +++++++++++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/rabbitmq/MyRabbitReceiver.java                     |    4 
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.java                         |    5 
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java              |    6 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java    |   48 +++++
 skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java              |    9 +
 skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/AlarmGet.java                       |   14 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/IDamSecurityService.java         |   13 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java             |   90 +++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.java            |    9 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml                                                                          |    5 
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml                          |   37 ++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/impl/DamSecurityServiceImpl.java |   17 ++
 skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java                      |   13 +
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java                           |   11 +
 17 files changed, 459 insertions(+), 10 deletions(-)

diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/AlarmGet.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/AlarmGet.java
index 1c4dfb9..d9ce7f2 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/AlarmGet.java
+++ b/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;
 }
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java
index 7443973..ba6876c 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java
+++ b/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);
 }
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java
index f79295f..f5c4605 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java
+++ b/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;
+	}
 }
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java
new file mode 100644
index 0000000..1f902ed
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/AlarmGetVO.java
@@ -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;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java
index 6fa2030..8582a3a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java
+++ b/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);
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.java
index 1f5817f..7c47513 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.java
+++ b/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);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml
index 4e4f0b5..f662770 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml
+++ b/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>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/rabbitmq/MyRabbitReceiver.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/rabbitmq/MyRabbitReceiver.java
index d296231..66fdbfe 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/rabbitmq/MyRabbitReceiver.java
+++ b/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()));
 	}
 
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IAlarmGetService.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IAlarmGetService.java
index 66cd336..15a9e83 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IAlarmGetService.java
+++ b/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);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java
index ef60fa5..21f0850 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java
+++ b/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);
+	}
+
 	/**
 	 * 获取水库集
 	 *
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml
index fa04945..47470d3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml
+++ b/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>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java
index ca0ebd5..aa6e030 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java
+++ b/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);
+	}
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.java
index 944fcc7..40de187 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.java
+++ b/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);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
index 64c2387..ee45489 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
+++ b/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>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/IDamSecurityService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/IDamSecurityService.java
index 2a73bed..0d9a517 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/IDamSecurityService.java
+++ b/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);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/impl/DamSecurityServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/impl/DamSecurityServiceImpl.java
index baf182a..1a6845b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/service/impl/DamSecurityServiceImpl.java
+++ b/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);
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java
new file mode 100644
index 0000000..9461ca4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/vo/DamStationStatistics.java
@@ -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;
+}

--
Gitblit v1.9.3