From b7c3fc85eba070a5c6625bc680ae9993d5553fae Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 12 Mar 2024 16:25:56 +0800
Subject: [PATCH] hst预测定时器启用多线程请求

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java         |    6 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java            |    4 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java |  121 +++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java                |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java                              |    3 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml                     |   33 +++
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java                |   80 +++++---
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java              |  138 ++++++++------
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml             |   19 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java    |   15 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java                                |   20 ++
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java                   |    6 
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java                    |   22 +-
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/thread/MyThread.java                     |   26 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java                    |    3 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java         |    2 
 skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java                           |    6 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java                 |    8 
 18 files changed, 413 insertions(+), 101 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java
index 3861872..a0e57c2 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IZtApiService.java
@@ -40,5 +40,11 @@
 	 */
 	List<DataResPo> getResWy();
 
+	/**
+	 * 获取位移水库集
+	 * @return
+	 */
+	List<DataResPo> getResSl();
+
 	List<DataResChildrenPo> getSl();
 }
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 54232ff..e63d0a0 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
@@ -79,7 +79,7 @@
 			cdList = ztApiService.getResSy();
 		} else if (type.equals("2")) {
 			//获取渗流测点
-			return null;
+			cdList=ztApiService.getResSl();
 		} else if (type.equals("3") || type.equals("4") || type.equals("5")) {
 			//获取位移测点
 			cdList = ztApiService.getResWy();
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
index cdeee08..5a60f5c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
@@ -15,6 +15,7 @@
 import cn.gistack.nky.vo.HstPredictVO;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +26,7 @@
 import java.util.stream.Collectors;
 
 @Service
+@Slf4j
 public class HstPredictServiceImpl extends ServiceImpl<HstPredictMapper, HstPredict> implements IHstPredictService {
 	@Autowired
 	private INkyService nkyService;
@@ -61,7 +63,8 @@
 		List<DataResChildrenPo> cdList = getCdList(type);
 		//暂时筛选出数据
 //		List<DataResChildrenPo> collect = cdList.stream().filter(
-//			item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42130350046")|| item.getRes_cd().equals("42092250024")|| item.getRes_cd().equals("42022250039")|| item.getRes_cd().equals("42132150292")
+////			item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42130350046")|| item.getRes_cd().equals("42092250024")|| item.getRes_cd().equals("42022250039")|| item.getRes_cd().equals("42132150292")
+//			item -> item.getRes_cd().equals("42050659003") ||item.getRes_cd().equals("42032240005")
 //		).collect(Collectors.toList());
 
 //		predict(collect,type);
@@ -78,6 +81,7 @@
 		if (collect.size() == 0){
 			return;
 		}
+		int no = 0;
 		List<NewSwFuturePo> future = new ArrayList<>();
 		if (type.equals("1") || type.equals("2")){
 
@@ -85,35 +89,41 @@
 				DataResChildrenPo dataResChildrenPo = collect.get(i);
 				String currentResCd = dataResChildrenPo.getRes_cd();
 
-				//第一个水库
-				if (future.size() == 0 && resCd.equals("")){
-					future = hsybService.getNewFuture(currentResCd);
-					//当前水库
-					resCd = currentResCd;
-				} else if (!resCd.equals(currentResCd)) {
-					//其他水库,获取新的预测数据
-					future = hsybService.getNewFuture(currentResCd);
-					//更换为新水库
-					resCd = currentResCd;
+				try {
+					//第一个水库
+					if (future.size() == 0 && resCd.equals("")){
+						future = hsybService.getNewFuture(currentResCd);
+						//当前水库
+						resCd = currentResCd;
+						no = no +1;
+						log.info("当前为第{}个水库,水库id为{}",no,currentResCd);
+					} else if (!resCd.equals(currentResCd)) {
+						//其他水库,获取新的预测数据
+						future = hsybService.getNewFuture(currentResCd);
+						//更换为新水库
+						resCd = currentResCd;
+						no = no +1;
+						log.info("当前为第{}个水库,水库id为{}",no,currentResCd);
+					}
+
+					//预测数据构造请求数据
+					if (future != null && future.size() > 0) {
+						List<PredictWatersPo> po = new ArrayList<>();
+						future.forEach(item -> {
+							PredictWatersPo predictWatersPo = new PredictWatersPo();
+							//设置时间
+							predictWatersPo.setTime(item.getTime());
+							//设置预测水位
+							predictWatersPo.setValue(Double.parseDouble(item.getSw()));
+							po.add(predictWatersPo);
+						});
+						HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type, po);
+						//循环预测请求
+						nkyService.hstPredict(arimaPredictReqPo);
+					}
+				}catch (Exception e){
+					e.printStackTrace();
 				}
-
-				//预测数据构造请求数据
-				if (future != null && future.size() > 0) {
-					List<PredictWatersPo> po = new ArrayList<>();
-					future.forEach(item -> {
-						PredictWatersPo predictWatersPo = new PredictWatersPo();
-						//设置时间
-						predictWatersPo.setTime(item.getTime());
-						//设置预测水位
-						predictWatersPo.setValue(Double.parseDouble(item.getSw()));
-						po.add(predictWatersPo);
-					});
-					HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type, po);
-					//循环预测请求
-					nkyService.hstPredict(arimaPredictReqPo);
-				}
-
-
 			}
 		}else if (type.equals("3") || type.equals("4") || type.equals("5")){
 
@@ -121,39 +131,49 @@
 				DataResChildrenPo dataResChildrenPo = collect.get(i);
 				String currentResCd = dataResChildrenPo.getRes_cd();
 
-				//第一个水库
-				if (future.size() == 0 && resCd.equals("")){
-					future = hsybService.getNewFuture(currentResCd);
-					//当前水库
-					resCd = currentResCd;
-				} else if (!resCd.equals(currentResCd)) {
-					//其他水库,获取新的预测数据
-					future = hsybService.getNewFuture(currentResCd);
-					//更换为新水库
-					resCd = currentResCd;
+				try {
+					//第一个水库
+					if (future.size() == 0 && resCd.equals("")){
+						future = hsybService.getNewFuture(currentResCd);
+						//当前水库
+						resCd = currentResCd;
+						no = no +1;
+						log.info("当前为第{}个水库,水库id为{}",no,currentResCd);
+					} else if (!resCd.equals(currentResCd)) {
+						//其他水库,获取新的预测数据
+						future = hsybService.getNewFuture(currentResCd);
+						//更换为新水库
+						resCd = currentResCd;
+						no = no +1;
+						log.info("当前为第{}个水库,水库id为{}",no,currentResCd);
+					}
+
+					//预测数据构造请求数据
+					if (future != null && future.size() > 0) {
+						List<PredictWatersPo> po = new ArrayList<>();
+						future.forEach(item -> {
+							PredictWatersPo predictWatersPo = new PredictWatersPo();
+							//设置时间
+							predictWatersPo.setTime(item.getTime());
+							//设置预测水位
+							predictWatersPo.setValue(Double.parseDouble(item.getSw()));
+							po.add(predictWatersPo);
+						});
+						//循环预测请求(位移一起请求减少请求次数)
+						HstPredictReqPo arimaPredictReqPoX = new HstPredictReqPo(dataResChildrenPo, "3", po);
+						nkyService.hstPredict(arimaPredictReqPoX);
+
+						HstPredictReqPo arimaPredictReqPoY = new HstPredictReqPo(dataResChildrenPo, "4", po);
+						nkyService.hstPredict(arimaPredictReqPoY);
+
+						HstPredictReqPo arimaPredictReqPoZ = new HstPredictReqPo(dataResChildrenPo, "5", po);
+						nkyService.hstPredict(arimaPredictReqPoZ);
+					}
+				}catch (Exception e){
+					e.printStackTrace();
 				}
 
-				//预测数据构造请求数据
-				if (future != null && future.size() > 0) {
-					List<PredictWatersPo> po = new ArrayList<>();
-					future.forEach(item -> {
-						PredictWatersPo predictWatersPo = new PredictWatersPo();
-						//设置时间
-						predictWatersPo.setTime(item.getTime());
-						//设置预测水位
-						predictWatersPo.setValue(Double.parseDouble(item.getSw()));
-						po.add(predictWatersPo);
-					});
-					//循环预测请求(位移一起请求减少请求次数)
-					HstPredictReqPo arimaPredictReqPoX = new HstPredictReqPo(dataResChildrenPo, "3", po);
-					nkyService.hstPredict(arimaPredictReqPoX);
 
-					HstPredictReqPo arimaPredictReqPoY = new HstPredictReqPo(dataResChildrenPo, "4", po);
-					nkyService.hstPredict(arimaPredictReqPoY);
-
-					HstPredictReqPo arimaPredictReqPoZ = new HstPredictReqPo(dataResChildrenPo, "5", po);
-					nkyService.hstPredict(arimaPredictReqPoZ);
-				}
 			}
 		}
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
index 0ac0610..e626338 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
@@ -84,16 +84,19 @@
 
 			HsybGetFuturePo hsybGetFuturePo = sendRequestToHsyb(GET_NEW_FUTURE, urlParams);
 
-			//程序转为hashmap,手动转换类型
-			List<NewSwFuturePo> data = JSON.parseArray(JSON.toJSONString(hsybGetFuturePo.getData()), NewSwFuturePo.class);
-			List<NewSwFuturePo> filterData = filterPredict(data);
+			if (hsybGetFuturePo.getData() !=null){
+				//程序转为hashmap,手动转换类型
+				List<NewSwFuturePo> data = JSON.parseArray(JSON.toJSONString(hsybGetFuturePo.getData()), NewSwFuturePo.class);
+				List<NewSwFuturePo> filterData = filterPredict(data);
 
-			log.info(StringUtil.format("过滤后的预测水位数据:{}", JSON.toJSONString(filterData)));
-			return filterData;
-//		}else{
-//			//拿不到预测水位
-//			return null;
-//		}
+				log.info(StringUtil.format("过滤后的预测水位数据:{}", JSON.toJSONString(filterData)));
+				return filterData;
+			}else {
+				//因为会有data为null的数据,所以返回空数组
+				List<NewSwFuturePo> list = new ArrayList<>();
+				return list;
+			}
+
 	}
 
 	public Boolean isResHasModel(String resId){
@@ -247,6 +250,7 @@
 
 		try {
 			ResponseEntity<HsybGetFuturePo> exchange = restTemplate.exchange(url, HttpMethod.GET, formEntity, HsybGetFuturePo.class);
+			log.info("请求结果:"+ exchange.getBody().toString());
 			return exchange.getBody();
 		} catch (Exception e) {
 			e.printStackTrace();
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
index 7973e15..7b866fe 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
@@ -80,6 +80,12 @@
 	}
 
 	@Override
+	public List<DataResPo> getResSl() {
+		Map<String, Object> params = new LinkedHashMap<>();
+		return getResData(SL_API, "get", params);
+	}
+
+	@Override
 	public List<DataResChildrenPo> getSl() {
 		Map<String, Object> params = new LinkedHashMap<>();
 		return getData(SL_API, "get", params);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java
index 058511c..74e222d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java
@@ -2,6 +2,7 @@
 
 import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
 import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
+import cn.gistack.sm.sjztmd.vo.PersonVO;
 import cn.gistack.system.user.entity.User;
 import cn.gistack.system.user.feign.IUserClient;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -131,4 +132,18 @@
 		return R.data(attResManagePersonService.synchronizationAddUser());
 	}
 
+	/**
+	 * 查询巡查、技术、主管、行政、水行政部门责任人
+	 * @param resId 水库id
+	 * @param findType 指定查询的责任人类型
+	 * @return
+	 */
+	@GetMapping("/getManagePersonList")
+	public R getManagePersonList(String resId,String findType){
+
+		List<PersonVO> list =  attResManagePersonService.getManagePersonList(resId,findType);
+		return R.data(list);
+
+	}
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
index 6aab487..dc6ea8a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
@@ -10,6 +10,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -78,4 +79,6 @@
 	 * @return
 	 */
 	Integer getWaterCountByResNameAndCountyName(@Param("resName") String resName,@Param("countyCode")  String countyCode);
+
+	AttResAdVO getResAd(@Param("resId") String resId);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
index 24de5f4..0fff344 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
@@ -273,6 +273,39 @@
                 (c."ad_grad" = 3 and c."ad_code" = #{countyCode})
             )
     </select>
+    <select id="getResAd"  resultType="cn.gistack.sm.sjztmd.vo.AttResAdVO">
+        SELECT
+            arb."name" resName,
+            arb."guid" resGuid,
+            arb."interior_ad_guid",
+            case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
+            case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
+            case when town."ad_grad" = 3 THEN town."ad_code"
+                 when county."ad_grad" = 3 THEN county."ad_code" END AS countyCode,
+            case when town."ad_grad" = 3 THEN town."ad_name"
+                 when county."ad_grad" = 3 THEN county."ad_name" END AS countyName,
+            case when town."ad_grad" = 2 THEN town."ad_code"
+                 when county."ad_grad" = 2 THEN county."ad_code"
+                 ELSE city."ad_code" END AS cityCode,
+            case when town."ad_grad" = 2 THEN town."ad_name"
+                 when county."ad_grad" = 2 THEN county."ad_name"
+                 ELSE city."ad_name" END AS cityName,
+            case when town."ad_grad" = 1 THEN town."ad_code"
+                 when county."ad_grad" = 1 THEN county."ad_code"
+                 when city."ad_grad" = 1 THEN city."ad_code"
+                 ELSE province."ad_code" END AS provinceCode,
+            case when town."ad_grad" = 1 THEN town."ad_name"
+                 when county."ad_grad" = 1 THEN county."ad_name"
+                 when city."ad_grad" = 1 THEN city."ad_name"
+                 ELSE province."ad_name" END AS provinceName
+        FROM SJZT_MD."att_res_base" arb
+                 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 arb."guid" = #{resId}
+
+    </select>
 
 
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java
index 247c2ad..e401146 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.java
@@ -76,4 +76,8 @@
     String getCompetentDepart(@Param("resCd") String resCd);
 
 	List<AttResManagePerson> getPersonList(@Param("resCd") String resCd);
+
+	List<AttResManagePerson> getList(@Param("attResManagePerson") AttResManagePerson attResManagePerson);
+
+    List<PersonVO> getPersonByRoleAndAd(@Param("roleAlias") String roleAlias,@Param("adCode") String adCode);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
index fdd35cd..0ae5bd7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
@@ -244,5 +244,24 @@
     <select id="getPersonList" resultType="cn.gistack.sm.sjztmd.entity.AttResManagePerson">
         SELECT  * FROM "SJZT_MD"."att_res_manage_person" WHERE "res_guid" = #{resCd}
     </select>
+    <select id="getList" resultType="cn.gistack.sm.sjztmd.entity.AttResManagePerson">
+        SELECT  * FROM SJZT_MD."att_res_manage_person" where 1=1
+        <if test="attResManagePerson.resGuid != null and attResManagePerson.resGuid != ''">
+            AND "res_guid" = #{attResManagePerson.resGuid}
+        </if>
+        ORDER BY "type" ASC
+    </select>
+    <select id="getPersonByRoleAndAd" resultType="cn.gistack.sm.sjztmd.vo.PersonVO">
+        SELECT
+            BU.id as userId,
+            BU.real_name as userName,
+            9 as type
+        FROM YWXT.BLADE_USER BU
+                 LEFT JOIN YWXT.BLADE_ROLE BR ON BU.ROLE_ID LIKE CONCAT('%',BR.ID,'%')
+        WHERE
+            bu.is_deleted = 0
+            AND BU.DEPT_ID = #{adCode}
+              AND BR.ROLE_ALIAS = #{roleAlias}
+    </select>
 
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
index 6cee98b..30cda9d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
@@ -10,6 +10,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -65,4 +66,11 @@
 	 * @return
 	 */
 	Integer getWaterCountByResNameAndCountyName(String resName, String countyName);
+
+	/**
+	 * 获取水库的行政区划以及行政区划等级
+	 * @param resId
+	 * @return
+	 */
+	AttResAdVO getResAd(String resId);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java
index 4b5019b..3a86cb1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResManagePersonService.java
@@ -97,4 +97,6 @@
 	 * @return
 	 */
 	List<AttResManagePerson> getPersonList(String resCd);
+
+    List<PersonVO> getManagePersonList(String resId,String findType);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
index 6a85f17..202e6b8 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
@@ -21,6 +21,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -134,4 +135,9 @@
 	public Integer getWaterCountByResNameAndCountyName(String resName, String countyCode) {
 		return baseMapper.getWaterCountByResNameAndCountyName(resName,countyCode);
 	}
+
+	@Override
+	public AttResAdVO getResAd(String resId) {
+		return baseMapper.getResAd(resId);
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
index 9965260..3f9e60f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
@@ -6,6 +6,7 @@
 import cn.gistack.sm.sjztmd.mapper.AttResManagePersonMapper;
 import cn.gistack.sm.sjztmd.service.IAttResBaseService;
 import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
+import cn.gistack.sm.sjztmd.vo.AttResAdVO;
 import cn.gistack.sm.sjztmd.vo.AttResBaseVO;
 import cn.gistack.sm.sjztmd.vo.PersonVO;
 import cn.gistack.sm.sjztmd.vo.UserPersonVO;
@@ -13,6 +14,8 @@
 import cn.gistack.system.user.feign.IUserClient;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.support.Condition;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
@@ -20,9 +23,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @ClassName AttResManagePersonServiceImpl
@@ -198,4 +200,117 @@
 	public List<AttResManagePerson> getPersonList(String resCd) {
 		return  baseMapper.getPersonList(resCd);
 	}
+
+	@Override
+	@DS("zt")
+	public List<PersonVO> getManagePersonList(String resId,String findType) {
+		List<PersonVO> result = new ArrayList<>();
+		if (StringUtil.isEmpty(resId)){
+			throw new ServiceException("水库id为空");
+		}
+
+		//查四个责任人
+		AttResManagePerson attResManagePerson = new AttResManagePerson();
+		attResManagePerson.setResGuid(resId);
+		List<AttResManagePerson> list = baseMapper.getList(attResManagePerson);
+
+		//过滤数据
+		if (StringUtil.isNotBlank(findType)){
+			list = list.stream().filter(e->findType.indexOf(e.getType())>-1).collect(Collectors.toList());
+		}
+
+		//赋值
+		list.forEach(p->{
+				List<User> userList = userClient.userInfoByPhone("000000", p.getUserPhone()).getData();
+				if (userList.size() > 0) {
+
+					PersonVO personVO = new PersonVO();
+					personVO.setUserId(userList.get(0).getId().toString());
+					personVO.setUserName(userList.get(0).getRealName());
+					personVO.setType(p.getType());
+					//1.政府行政责任人,2.主管部门责任人,3.管理单位责任人,4.技术责任人,5.巡查责任人,6.行政责任人
+					switch (p.getType()){
+						case "1":
+							personVO.setRoleName("行政责任人");
+							break;
+						case "2":
+							personVO.setRoleName("主管部门责任人");
+							break;
+						case "3":
+							personVO.setRoleName("管理单位责任人");
+							break;
+						case "4":
+							personVO.setRoleName("技术责任人");
+							break;
+						case "5":
+							personVO.setRoleName("巡查责任人");
+							break;
+						default:
+							break;
+					}
+					result.add(personVO);
+				}
+
+		});
+
+		AttResAdVO resAd = attResBaseService.getResAd(resId);
+
+		String cityName = resAd.getCityName();
+		String countyName = resAd.getCountyName();
+		String townName = resAd.getTownName();
+
+		if (StringUtil.isBlank(findType) || findType.indexOf("9")>-1){
+
+			List<PersonVO> deptUser = new ArrayList<>();
+
+			if (cityName != null && cityName.equals("省直管")){
+				//如果是省直管,找省厅管理员
+				String provinceCode = resAd.getProvinceCode();
+
+				deptUser = baseMapper.getPersonByRoleAndAd("stgly",provinceCode);
+				deptUser.forEach(p->{
+					p.setRoleName("省厅管理员");
+				});
+			} else if (countyName != null && countyName.equals("市直管")) {
+				//如果是市直管,找市州管理员
+				String cityCode = resAd.getCityCode();
+
+				deptUser = baseMapper.getPersonByRoleAndAd("dsswjgly",cityCode);
+				deptUser.forEach(p->{
+					p.setRoleName("市州管理员");
+				});
+			}else if (StringUtil.isNotBlank(townName)){
+				//镇不是空的,找乡镇管理员
+				String townCode = resAd.getTownCode();
+				deptUser = baseMapper.getPersonByRoleAndAd("xzgly",townCode);
+				deptUser.forEach(p->{
+					p.setRoleName("乡镇管理员");
+				});
+			}else if (StringUtil.isNotBlank(countyName)){
+				//区不是空的找区县管理员
+				String countyCode = resAd.getCountyCode();
+				deptUser = baseMapper.getPersonByRoleAndAd("qxswjgly",countyCode);
+				deptUser.forEach(p->{
+					p.setRoleName("区县管理员");
+				});
+			}else if (StringUtil.isNotBlank(cityName)){
+				//市不是空的找市州管理员
+				String cityCode = resAd.getCityCode();
+				deptUser = baseMapper.getPersonByRoleAndAd("dsswjgly",cityCode);
+				deptUser.forEach(p->{
+					p.setRoleName("市州管理员");
+				});
+			}else{
+				String provinceCode = resAd.getProvinceCode();
+				deptUser = baseMapper.getPersonByRoleAndAd("stgly",provinceCode);
+				deptUser.forEach(p->{
+					p.setRoleName("省厅管理员");
+				});
+			}
+
+			result.addAll(deptUser);
+		}
+
+		return result;
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java
index 8f5ac1f..36814c7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttResAdVO.java
@@ -16,6 +16,9 @@
 	 */
 	private String resGuid;
 
+	private String provinceCode;
+	private String provinceName;
+
 	/**
 	 * 市州编号
 	 */
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java
new file mode 100644
index 0000000..a338971
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java
@@ -0,0 +1,20 @@
+package cn.gistack.sm.sjztmd.vo;
+
+import lombok.Data;
+
+@Data
+public class PersonVO {
+
+	private String userId;
+
+	private String userName;
+
+
+	private String roleName;
+
+	//1.政府行政责任人,2.主管部门责任人,3.管理单位责任人,4.技术责任人,5.巡查责任人,6.行政责任人
+	//单独定义 水行政部门为9
+	private String type;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java
index 8e88183..8a96fb2 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java
@@ -1,15 +1,13 @@
 package cn.gistack.job.executor.jobhandler;
 
+import cn.gistack.job.executor.thread.MyThread;
 import cn.gistack.nky.fegin.INkyClient;
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xxl.job.core.log.XxlJobLogger;
 import lombok.AllArgsConstructor;
 import org.springblade.core.tool.utils.DateUtil;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-
-import java.util.List;
 
 /**
  * 南科院预测数据定时器
@@ -21,19 +19,20 @@
 	private static final String SY = "1";
 	private static final String SL = "2";
 	private static final String X = "3";
-	private static final String Y= "4";
+	private static final String Y = "4";
 	private static final String Z = "5";
 
 	private final INkyClient nkyClient;
 
 	/**
 	 * 南科院Arima请求预测
+	 *
 	 * @param param
 	 * @return
 	 * @throws Exception
 	 */
 	@XxlJob("predictNkyDataJobHandler")
-	public ReturnT<String> predictNkyDataJobHandler(String param){
+	public ReturnT<String> predictNkyDataJobHandler(String param) {
 		XxlJobLogger.log("开始ArimaPredict预测...");
 		arimaPredict();
 		XxlJobLogger.log("ArimaPredict预测结束...");
@@ -44,12 +43,13 @@
 
 	/**
 	 * 南科院Hst请求预测
+	 *
 	 * @param param
 	 * @return
 	 * @throws Exception
 	 */
 	@XxlJob("predictNkyHstDataJobHandler")
-	public ReturnT<String> predictNkyHstDataJobHandler(String param){
+	public ReturnT<String> predictNkyHstDataJobHandler(String param) {
 
 		XxlJobLogger.log("开始Hst预测...");
 		hstPredict();
@@ -60,12 +60,13 @@
 
 	/**
 	 * 南科院Hst请求预测结果
+	 *
 	 * @param param
 	 * @return
 	 * @throws Exception
 	 */
 	@XxlJob("queryNkyHstDataJobHandler")
-	public ReturnT<String> queryNkyHstDataJobHandler(String param){
+	public ReturnT<String> queryNkyHstDataJobHandler(String param) {
 		XxlJobLogger.log("开始Hst预测结果请求");
 		hstQuery();
 		XxlJobLogger.log("Hst预测结果请求结束");
@@ -75,49 +76,52 @@
 
 	/**
 	 * 南科院Arima请求预测结果(渗压)
+	 *
 	 * @param param
 	 * @return
 	 * @throws Exception
 	 */
 	@XxlJob("queryNkyDataJobHandler")
-	public ReturnT<String> queryNkyDataJobHandler(String param){
-		XxlJobLogger.log("开始预测时间:"+DateUtil.now().toString());
+	public ReturnT<String> queryNkyDataJobHandler(String param) {
+		XxlJobLogger.log("开始预测时间:" + DateUtil.now().toString());
 		nkyClient.arimaQueryData(SY);
-		XxlJobLogger.log("预测结束时间:" +DateUtil.now().toString());
+		XxlJobLogger.log("预测结束时间:" + DateUtil.now().toString());
 		return ReturnT.SUCCESS;
 	}
 
 	/**
 	 * 南科院Arima请求预测结果(渗流)
+	 *
 	 * @param param
 	 * @return
 	 * @throws Exception
 	 */
 	@XxlJob("queryNkyDataSlJobHandler")
-	public ReturnT<String> queryNkyDataSlJobHandler(String param){
-		XxlJobLogger.log("开始预测时间:"+DateUtil.now().toString());
+	public ReturnT<String> queryNkyDataSlJobHandler(String param) {
+		XxlJobLogger.log("开始预测时间:" + DateUtil.now().toString());
 		nkyClient.arimaQueryData(SL);
-		XxlJobLogger.log("预测结束时间:" +DateUtil.now().toString());
+		XxlJobLogger.log("预测结束时间:" + DateUtil.now().toString());
 		return ReturnT.SUCCESS;
 	}
 
 	/**
 	 * 南科院Arima请求预测结果(位移)
+	 *
 	 * @param param
 	 * @return
 	 * @throws Exception
 	 */
 	@XxlJob("queryNkyDataWyJobHandler")
-	public ReturnT<String> queryNkyDataWyJobHandler(String param){
-		XxlJobLogger.log("开始预测时间:"+DateUtil.now().toString());
+	public ReturnT<String> queryNkyDataWyJobHandler(String param) {
+		XxlJobLogger.log("开始预测时间:" + DateUtil.now().toString());
 		nkyClient.arimaQueryData(X);
 		nkyClient.arimaQueryData(Y);
 		nkyClient.arimaQueryData(Z);
-		XxlJobLogger.log("预测结束时间:" +DateUtil.now().toString());
+		XxlJobLogger.log("预测结束时间:" + DateUtil.now().toString());
 		return ReturnT.SUCCESS;
 	}
 
-	public void arimaPredict(){
+	public void arimaPredict() {
 		XxlJobLogger.log("渗压预测开始");
 		nkyClient.arimaPredictData(SY);
 		XxlJobLogger.log("渗流预测开始");
@@ -127,7 +131,7 @@
 
 	}
 
-	public void arimaQuery(){
+	public void arimaQuery() {
 		nkyClient.arimaQueryData(SY);
 		nkyClient.arimaQueryData(SL);
 		nkyClient.arimaQueryData(X);
@@ -138,33 +142,50 @@
 	/**
 	 * hst预测
 	 */
-	public void hstPredict(){
-		XxlJobLogger.log("渗压预测开始");
-		nkyClient.hstPredictData(SY);
-		XxlJobLogger.log("渗流预测开始");
-		nkyClient.hstPredictData(SL);
-		XxlJobLogger.log("位移预测开始");
-		nkyClient.hstPredictData(X);
+	public void hstPredict() {
+
+		try {
+			MyThread sl = new MyThread(nkyClient,SL);
+			MyThread wy = new MyThread(nkyClient,X);
+			MyThread sy = new MyThread(nkyClient,SY);
+
+			sl.start();
+			wy.start();
+			sy.start();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+//		XxlJobLogger.log("渗流预测开始");
+//		nkyClient.hstPredictData(SL);
+//		XxlJobLogger.log("位移预测开始");
+//		nkyClient.hstPredictData(X);
+//		XxlJobLogger.log("渗压预测开始");
+//		nkyClient.hstPredictData(SY);
+
+
 	}
 
-	public void hstQuery(){
-		nkyClient.hstQueryData(SY);
+	public void hstQuery() {
 		nkyClient.hstQueryData(SL);
 		nkyClient.hstQueryData(X);
 		nkyClient.hstQueryData(Y);
 		nkyClient.hstQueryData(Z);
+		nkyClient.hstQueryData(SY);
 	}
 
 	/**
 	 * 南科院按库请求数据接口
+	 *
 	 * @param param
 	 * @return
 	 */
 	@XxlJob("batchDataJobHandler")
-	public ReturnT<String> batchDataJobHandler(String param){
+	public ReturnT<String> batchDataJobHandler(String param) {
 		XxlJobLogger.log("按库请求开始");
 
 		nkyClient.batchData(SY);
+		nkyClient.batchData(SL);
 		nkyClient.batchData(X);
 		nkyClient.batchData(Y);
 		nkyClient.batchData(Z);
@@ -176,11 +197,12 @@
 
 	/**
 	 * 南科院按库请求数据接口
+	 *
 	 * @param param
 	 * @return
 	 */
 	@XxlJob("alarmGetJobHandler")
-	public ReturnT<String> alarmGetJobHandler(String param){
+	public ReturnT<String> alarmGetJobHandler(String param) {
 		XxlJobLogger.log("判定异常开始");
 
 		nkyClient.alarmGetData(SY);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/thread/MyThread.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/thread/MyThread.java
new file mode 100644
index 0000000..63b3afb
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/thread/MyThread.java
@@ -0,0 +1,26 @@
+package cn.gistack.job.executor.thread;
+
+import cn.gistack.nky.fegin.INkyClient;
+import lombok.Data;
+
+@Data
+public class MyThread extends Thread{
+
+	private INkyClient nkyClient;
+	private String type;
+
+
+	@Override
+	public void run() {
+		nkyClient.hstPredictData(this.type);
+	}
+
+	public MyThread(INkyClient nkyClient, String type) {
+		this.nkyClient = nkyClient;
+		this.type = type;
+	}
+
+	public MyThread(String type) {
+		this.type = type;
+	}
+}

--
Gitblit v1.9.3