From 2e4a5ceda924d410d08632ec3bd8c6d42cf5bc08 Mon Sep 17 00:00:00 2001
From: ke <893754509@qq.com>
Date: Fri, 19 Jul 2024 12:22:09 +0800
Subject: [PATCH] 白蚁预警发短信7-19 12

---
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java     |   27 +++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/controller/SkPanoramaController.java |    7 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/entity/WarnMsg.java                 |   22 ++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/mapper/SkPanoramaMapper.xml          |   18 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java           |   74 ++++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/controller/SkBaiYiController.java   |  106 +++++++++++++++++++++
 6 files changed, 252 insertions(+), 2 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/controller/SkBaiYiController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/controller/SkBaiYiController.java
new file mode 100644
index 0000000..29aba6d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/controller/SkBaiYiController.java
@@ -0,0 +1,106 @@
+package cn.gistack.sm.skBaiYiTest.controller;
+
+import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
+import cn.gistack.sm.skBaiYiTest.entity.BaiYiTestEntity;
+import cn.gistack.sm.skBaiYiTest.entity.WarnMsg;
+import cn.gistack.sm.skBaiYiTest.service.ISkBaiYiService;
+
+import cn.gistack.sm.sms.util.SmsUtils;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+@Slf4j
+@Api(tags="白蚁预警")
+@RestController
+@RequestMapping("/SkBaiYi")
+@AllArgsConstructor
+public class SkBaiYiController  {
+
+
+	private ISkBaiYiService skBaiYiService;
+
+	@GetMapping("/baiyitest")
+	public void  baiyitest() {
+//		List<BaiYiTestEntity> list = skBaiYiService.selectList();
+//		if (list!= null && list.size()>0) {
+//			for (BaiYiTestEntity item:list ) {
+//				System.err.println(item.toString());
+//			}
+//		}
+		sendBaiYiWarn();
+	}
+
+	/**
+	 * 白蚁预警发短信
+	 */
+	public void sendBaiYiWarn() {
+		List<BaiYiTestEntity> list = skBaiYiService.selectList();
+		Set<String> skNameSet = new HashSet<>();
+		ArrayList<WarnMsg> msgEntityList = new ArrayList<>();
+
+
+		if (list!= null && list.size()>0) {
+			log.info("白蚁预警水库数量:" +  list.size());
+			for (BaiYiTestEntity item : list ) {
+				skNameSet.add(item.getSkName());
+			}
+
+			if(skNameSet.size()>0){
+				for (String sknm : skNameSet) {
+					WarnMsg warnMsg = new WarnMsg();
+					warnMsg.setSkName(sknm);
+					String statListStr = ""; // 测点集
+					String personInCharge = ""; // 责任人名称
+					String phone = ""; // 责任人联系方式
+
+
+					for (BaiYiTestEntity item : list ) {
+						String skName = item.getSkName();
+						String termitePointNum = item.getTermitePointNum();
+						personInCharge = item.getPersonInCharge();
+						phone = item.getPhone();
+
+						if(sknm.equals(skName)){
+
+							statListStr = statListStr + termitePointNum + ","; // 同一个水库的报警白蚁测点拼接起来
+
+						}
+					}
+					warnMsg.setPhone(phone);
+					warnMsg.setPersonInCharge(personInCharge);
+					warnMsg.setBayistate(statListStr);
+					msgEntityList.add(warnMsg);
+				}
+			}
+		}
+		// 获取到了数据开始发短信
+		if (msgEntityList!= null && msgEntityList.size()>0) {
+			for (WarnMsg item : msgEntityList) {
+				String skName = item.getSkName();
+				String personInCharge = item.getPersonInCharge();
+				String phone = item.getPhone();
+				String bayistate = item.getBayistate();
+
+
+				SMSSendRequest request = new SMSSendRequest();
+				request.setUserNumber(phone);
+				request.setTemplateId("2431012268292");//短信模版编号
+				request.setMessageContent("紧急通知:"+skName+" 中 "+bayistate+" 以上白蚁监测点发生白蚁预警,请立安排人前去检查是否真实存在白蚁。");
+				SmsUtils.sendMsg(request);
+
+			}
+		}
+
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/entity/WarnMsg.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/entity/WarnMsg.java
new file mode 100644
index 0000000..1d5d545
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/entity/WarnMsg.java
@@ -0,0 +1,22 @@
+package cn.gistack.sm.skBaiYiTest.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class WarnMsg {
+
+	@ApiModelProperty(value = "水库名称")
+	private String skName;
+
+	@ApiModelProperty(value = "责任人名称")
+	private String personInCharge;
+
+	@ApiModelProperty(value = "负责人联系方式")
+	private String 	phone;
+
+	@ApiModelProperty(value = "白蚁测点(多个)")
+	private String 	bayistate;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/controller/SkPanoramaController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/controller/SkPanoramaController.java
index 2d2374b..0973b6f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/controller/SkPanoramaController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/controller/SkPanoramaController.java
@@ -122,6 +122,13 @@
 		return R.data(pages);
 	}
 
+//	@GetMapping("/page")
+//	@ApiOperation(value = "分页", notes = "传入skPanorama")
+//	public R<IPage<SkPanoramaVO>> page2(SkPanoramaVO skPanorama, Query query) {
+//		IPage<SkPanoramaVO> pages = skPanoramaService.selectSkPanoramaPage(Condition.getPage(query), skPanorama);
+//		return R.data(pages);
+//	}
+
 	/**
 	 * 水库全景图 新增
 	 */
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/mapper/SkPanoramaMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/mapper/SkPanoramaMapper.xml
index ffd438f..cd6ee50 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/mapper/SkPanoramaMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skPanorama/mapper/SkPanoramaMapper.xml
@@ -25,9 +25,23 @@
 
     <select id="selectSkPanoramaPage" resultMap="skPanoramaResultMap">
         select
-            *
+            t1."guid",
+            t1."res_reg_code",
+            t1."res_type",
+            t1."res_func",
+            t1."res_category",
+            t1."eng_scal"
         from
-            sk_panorama
+            SJZT_MD."att_res_base" t1
+            left join  (
+                select
+                    res_guid,
+                    count(res_guid) AS "num"
+                from
+                    YWXT."SK_PANORAMA"
+                where is_deleted = 0
+                group by res_guid
+            )t2  on t1."guid" = t2."res_guid"
         where
             is_deleted = 0
     </select>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java
index 7b7bf13..ce482a1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java
@@ -6,6 +6,9 @@
 import cn.gistack.sm.sjztmd.service.*;
 import cn.gistack.sm.sjztods.constant.ZtApiUrlConstant;
 import cn.gistack.sm.sjztods.constant.ZtConfigConstant;
+import cn.gistack.sm.skBaiYiTest.entity.BaiYiTestEntity;
+import cn.gistack.sm.skBaiYiTest.entity.WarnMsg;
+import cn.gistack.sm.skBaiYiTest.service.ISkBaiYiService;
 import cn.gistack.sm.sms.util.SmsUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -28,6 +31,10 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * @PROJECT_NAME: skjcmanager
@@ -58,6 +65,9 @@
 
 	@Autowired
 	private RestTemplate restTemplate;
+
+	@Autowired
+	private ISkBaiYiService skBaiYiService;
 
 	@Override
 	public void sendOperate(String tableName, String phones) {
@@ -227,4 +237,68 @@
 		}
 	}
 
+
+	/**
+	 * 白蚁预警发短信
+	 */
+	public void sendBaiYiWarn() {
+		List<BaiYiTestEntity> list = skBaiYiService.selectList();
+		Set<String> skNameSet = new HashSet<>();
+		ArrayList<WarnMsg> msgEntityList = new ArrayList<>();
+
+
+		if (list!= null && list.size()>0) {
+			log.info("白蚁预警水库数量:" +  list.size());
+			for (BaiYiTestEntity item : list ) {
+				skNameSet.add(item.getSkName());
+			}
+
+			if(skNameSet.size()>0){
+				for (String sknm : skNameSet) {
+					WarnMsg warnMsg = new WarnMsg();
+					warnMsg.setSkName(sknm);
+					String statListStr = ""; // 测点集
+					String personInCharge = ""; // 责任人名称
+					String phone = ""; // 责任人联系方式
+
+
+					for (BaiYiTestEntity item : list ) {
+						String skName = item.getSkName();
+						String termitePointNum = item.getTermitePointNum();
+						personInCharge = item.getPersonInCharge();
+						phone = item.getPhone();
+
+						if(sknm.equals(skName)){
+
+							statListStr = statListStr + termitePointNum + ","; // 同一个水库的报警白蚁测点拼接起来
+
+						}
+					}
+					warnMsg.setPhone(phone);
+					warnMsg.setPersonInCharge(personInCharge);
+					warnMsg.setBayistate(statListStr);
+					msgEntityList.add(warnMsg);
+				}
+			}
+		}
+		// 获取到了数据开始发短信
+		if (msgEntityList!= null && msgEntityList.size()>0) {
+			for (WarnMsg item : msgEntityList) {
+				String skName = item.getSkName();
+				String personInCharge = item.getPersonInCharge();
+				String phone = item.getPhone();
+				String bayistate = item.getBayistate();
+
+
+				SMSSendRequest request = new SMSSendRequest();
+				request.setUserNumber(phone);
+				request.setTemplateId("2431012268292");//短信模版编号
+				request.setMessageContent("紧急通知:"+skName+" 中 "+bayistate+" 以上白蚁监测点发生白蚁预警,请立安排人前去检查是否真实存在白蚁。");
+				SmsUtils.sendMsg(request);
+
+			}
+		}
+
+	}
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java
index a5806ba..f6ff89a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java
@@ -8,8 +8,11 @@
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xxl.job.core.log.XxlJobLogger;
 import org.jetbrains.annotations.NotNull;
+import org.springblade.core.mp.base.BaseEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+
+import java.util.List;
 
 /**
  * 短信定时发送任务执行器
@@ -24,6 +27,7 @@
 
 	@Autowired
 	private IDataAbnormalWarnClient dataAbnormalWarnClient;
+
 
 	/**
 	 * 外呼未接通-发送短信
@@ -64,6 +68,29 @@
 		return ReturnT.SUCCESS;
 	}
 
+	/**
+	 * 试点白蚁报警,发送短信给水库人员监测监测点
+	 * @param param
+	 * @return
+	 */
+	@XxlJob("sendWarmInfo")
+	public  ReturnT<String> sendWarmInfo(String param) {
+		XxlJobLogger.log("开始执行任务...");
+		List<BaseEntity> baseEntities = skBaiYiService.selectList();
+
+//		JSONObject jsonParam = JSON.parseObject(param);
+//		java.lang.String tableName = jsonParam.getString("resultList");
+//		java.lang.String phones = jsonParam.getString("phone");
+//		dataAbnormalWarnClient.sendOperate(tableName, phones);
+
+		XxlJobLogger.log("结束执行任务...");
+		return ReturnT.SUCCESS;
+
+	}
+
+
+
+
 	@XxlJob("sendOperateCZ")
 	public ReturnT<String> sendOperateCZ(String param) {
 		XxlJobLogger.log("开始执行任务...");

--
Gitblit v1.9.3