From 29358cfe9b8da07f852c69a57f5d8fedcbbf116e Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 05 Jun 2023 20:32:53 +0800
Subject: [PATCH] 新增站内信记录保存

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java                  |    2 
 skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java         |    2 
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java     |   53 +++++++++++++++--
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java               |   12 ++--
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java                     |   10 +++
 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java                         |    4 
 skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java |    2 
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java            |   71 ++++++++++++++++++++++-
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml              |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java                       |    2 
 10 files changed, 133 insertions(+), 27 deletions(-)

diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java
index c3616e2..a8cbd04 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java
@@ -30,7 +30,7 @@
 	void saveSmsRecord(@RequestParam("userNumber")String userNumber,
 					   @RequestParam("messageContent")String messageContent,
 					   @RequestParam("templateId")String templateId,
-					   @RequestParam("code")Integer code,
+					   @RequestParam("code")String code,
 					   @RequestParam("msg")String msg,
 					   @RequestParam("number")Integer number);
 }
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java
index 18973cb..838bb34 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java
@@ -14,7 +14,7 @@
 public class ISmsRecordClientFallback implements ISmsRecordClient{
 
 	@Override
-	public void saveSmsRecord(String userNumber, String messageContent, String templateId, Integer code, String msg, Integer number) {
+	public void saveSmsRecord(String userNumber, String messageContent, String templateId, String code, String msg, Integer number) {
 
 	}
 }
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java
index 6ea54a8..55b7383 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java
@@ -16,9 +16,9 @@
 	private String name;
 
 	/**
-	 * 角色
+	 * 类型
 	 */
-	private String roleName;
+	private String type;
 
 	/**
 	 * 手机号
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
index 2d931d5..3634407 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -78,7 +78,7 @@
 		SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id",templateId).eq("is_deleted",0));
 		if (null != smsTemplate) {
 			SmsRequestTemplate smsRequestTemplate = new SmsRequestTemplate();
-			// 设置短信模板信息
+			// 设置模板信息
 			smsRequestTemplate.setSmsTemplate(smsTemplate);
 			// 解析模板并设置 title
 			smsRequestTemplate.setTitle(FormatUtil.composeMessage(smsTemplate.getContent()));
@@ -212,7 +212,7 @@
 	/**
 	 * 默认实现
 	 *
-	 * @param arg1
+	 * @param arg1 告警规则名称
 	 * @param arg2
 	 * @return
 	 */
@@ -257,7 +257,7 @@
 	/**
 	 * 策略2: 水位数据异常
 	 *
-	 * @param arg1
+	 * @param arg1 告警规则名称
 	 * @param arg2
 	 * @return
 	 */
@@ -288,7 +288,7 @@
 	/**
 	 * 策略3: 水位超低于死水位(水库技术责任人、巡查责任人)
 	 *
-	 * @param arg1
+	 * @param arg1 告警规则名称
 	 * @param arg2
 	 * @return
 	 */
@@ -304,12 +304,11 @@
 			// 遍历,拼接县水利部人员电话
 			for (List<String> list : smsRequestTemplate.getTemplateContent()) {
 				// 查询县水利部人员(通过水库编号)
-				list.add("测试:13112341234");
+//				list.add("测试:13112341234");
 				// 保存告警记录信息
 				AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule);
 				if (null != alarmRecord) {
 					list.add(alarmRecord.getId().toString());
-//					list.add("123789");
 				}
 			}
 			// 调用短信服务
@@ -339,8 +338,46 @@
 	 * @return
 	 */
 	public String waterComeOverHandle(String arg1, String arg2) {
-		// 业务逻辑处理 2...
-		return "";
+		// 查询当前策略对应的告警规则信息
+		AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
+		if (null!=alarmRule) {
+			// 调用中台服务接口查询数据
+			JSONArray ztData = getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
+			// 只发送站内信
+			SmsRequestTemplate smsRequestTemplate = getSendSmsTemplate(ztData, "znxsw10000001",alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true);
+			// 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
+			// 遍历,拼接县水利部人员电话
+			for (List<String> list : smsRequestTemplate.getTemplateContent()) {
+				// 后面依次拼接 巡查责任人姓名,技术责任人姓名,市县水利部门人员姓名电话(暂时不要)
+				// 查询巡查责任人姓名,技术责任人姓名信息
+				List<PersonVO> personVOList = attResManagePersonClient.getPersonListByResGuid(list.get(0),"4,5");
+				String xczrr = "";
+				String jszrr = "";
+				for (PersonVO personVO : personVOList) {
+					if (personVO.getType().equals("5")){
+						xczrr = personVO.getName();
+					}
+					if (personVO.getType().equals("4")){
+						jszrr = personVO.getName();
+					}
+				}
+				// 巡查责任人姓名
+				list.add(xczrr);
+				// 技术责任人姓名
+				list.add(jszrr);
+				// 市县水利部门人员姓名电话(暂时不要)
+//				list.add("测试:13112341234");
+				// 保存告警记录信息
+				AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule);
+				if (null != alarmRecord) {
+					list.add(alarmRecord.getId().toString());
+//					list.add("999");
+				}
+			}
+			// 保存站内信记录信息
+			smsService.saveInStationInfo(smsRequestTemplate);
+		}
+		return "水位接近汛限告警";
 	}
 
 	/**
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
index 75aac73..4d0dffe 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
@@ -60,7 +60,7 @@
 			// 记录发送记录操作
 			SmsResult smsResult = smsService.saveSendResult(request, 1);
 			if (null != smsResult){
-				smsService.saveSendRecord(request, resultComResult.getCode(),resultComResult.getMsg(),smsResult.getId());
+				smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
 			}
 			// 返回发送信息
 			return R.data(resultComResult);
@@ -102,7 +102,7 @@
 					smsSendRequest.setMessageContent(smsRequest.getContent());
 					smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
 					// 记录发送记录操作
-					smsService.saveSendRecord(smsSendRequest, resultComResult.getCode(),resultComResult.getMsg(),smsResult.getId());
+					smsService.saveSendRecord(smsSendRequest, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
 				}
 			}else {
 				// 手机号有误记录
@@ -112,7 +112,7 @@
 				smsSendRequest.setMessageContent(smsRequest.getContent());
 				smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
 				// 记录发送记录操作
-				smsService.saveSendRecord(smsSendRequest, 400,"手机号错误未发送...",null);
+				smsService.saveSendRecord(smsSendRequest, "400","手机号错误未发送...",null);
 			}
 		}
 		return R.status(true);
@@ -139,7 +139,7 @@
 			// 记录发送记录操作
 			SmsResult smsResult = smsService.saveSendResult(request, 1);
 			if (null != smsResult){
-				smsService.saveSendRecord(request, resultComResult.getCode(),resultComResult.getMsg(),smsResult.getId());
+				smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
 			}
 			// 保存验证码到 redis
 			saveCodeForRedis(request.getUserNumber(), randNumber);
@@ -226,7 +226,7 @@
 					smsSendRequest.setMessageContent(smsRequest.getContent());
 					smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
 					// 记录发送记录操作
-					smsService.saveSendRecord(smsSendRequest, resultComResult.getCode(),resultComResult.getMsg(),smsResult.getId());
+					smsService.saveSendRecord(smsSendRequest, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
 				}
 			}else {
 				// 手机号有误记录
@@ -236,7 +236,7 @@
 				smsSendRequest.setMessageContent(smsRequest.getContent());
 				smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
 				// 记录发送记录操作
-				smsService.saveSendRecord(smsSendRequest, 400,"手机号错误未发送...",null);
+				smsService.saveSendRecord(smsSendRequest, "400","手机号错误未发送...",null);
 			}
 		}
 		return R.status(true);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java
index 34952a7..e511797 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java
@@ -36,7 +36,7 @@
 	public void saveSmsRecord(String userNumber,
 							  String messageContent,
 							  String templateId,
-							  Integer code,
+							  String code,
 							  String msg,
 							  Integer number) {
 		SMSSendRequest request = new SMSSendRequest();
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
index 15f6000..fd52a3b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
@@ -6,6 +6,7 @@
 import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 短信发送服务接口
@@ -46,5 +47,12 @@
 	 * @param resultId
 	 * @return
 	 */
-	SmsRecord saveSendRecord(SMSSendRequest request,Integer code, String sendMsg, Long resultId);
+	SmsRecord saveSendRecord(SMSSendRequest request,String code, String sendMsg, Long resultId);
+
+	/**
+	 * 保存站内信记录信息
+	 * @param smsRequestTemplate
+	 * @return
+	 */
+	Map<String, Object> saveInStationInfo(SmsRequestTemplate smsRequestTemplate);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
index 1a8ec13..e1b173e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -56,7 +56,7 @@
 				ComResult<SMSSendDataResult> result = SmsUtils.sendMsg(request);
 				if(null != smsResult) {
 					// 保存记录
-					saveSendRecord(request, result.getCode(), result.getMsg(), smsResult.getId());
+					saveSendRecord(request, result.getCode().toString(), result.getMsg(), smsResult.getId());
 				}
 				list.add(result);
 			}
@@ -115,7 +115,7 @@
 				// 设置内容
 				request.setMessageContent(format);
 				// 保存记录
-				smsRecord = saveSendRecord(request, resultComResult.getCode(), resultComResult.getMsg(), smsResult.getId());
+				smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId());
 				if (null != smsRecord){
 					alarmRecordDetail.setAlarmContent(format);
 					alarmRecordDetail.setSendRecordId(smsRecord.getId());
@@ -133,6 +133,65 @@
 		return map;
 	}
 
+	/**
+	 * 保存站内信记录信息
+	 * @param smsRequestTemplate
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> saveInStationInfo(SmsRequestTemplate smsRequestTemplate) {
+		// 取出数据
+		SMSSendRequest request = new SMSSendRequest();
+		SmsTemplate smsTemplate = smsRequestTemplate.getSmsTemplate();
+		request.setTemplateId(smsTemplate.getTemplateId());
+		List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
+		// 先保存结果记录
+		SmsResult smsResult = saveSendResult(request, templateContent.size());
+		List<SmsRecord> smsRecordList = new ArrayList<>();
+		// 遍历处理
+		for (List<String> list : templateContent) {
+			AlarmRecordDetail alarmRecordDetail = new AlarmRecordDetail();
+			alarmRecordDetail.setReservoirNumber(list.get(0));
+			alarmRecordDetail.setAlarmRecordId(Long.parseLong(list.get(list.size() - 1)));
+			alarmRecordDetail.setAlarmMode("站内信");
+			// 未读
+			alarmRecordDetail.setStatus(1);
+			// 删除 最后一个 告警记录id
+			list.remove(list.size() - 1);
+			// 删除 0 水库编码
+			list.remove(0);
+
+			SmsRecord smsRecord = new SmsRecord();
+			if (null != smsResult){
+				alarmRecordDetail.setPhone(list.get(0));
+				// 设置手机号
+				request.setUserNumber(list.get(0));
+				// 内容处理
+				String s = smsTemplate.getContent().replaceAll("\\{.+?\\}", "%s");
+				// 需要删除最前面的手机号
+				list.remove(0);
+				// 格式转换
+				String format = String.format(s, list.toArray());
+				// 设置内容
+				request.setMessageContent(format);
+				// 保存记录
+				smsRecord = saveSendRecord(request, "", "", smsResult.getId());
+				if (null != smsRecord){
+					alarmRecordDetail.setAlarmContent(format);
+					alarmRecordDetail.setSendRecordId(smsRecord.getId());
+					alarmRecordDetail.setCreateTime(new Date());
+					// 保存告警记录详情信息
+					boolean save = alarmRecordDetailService.save(alarmRecordDetail);
+				}
+			}
+			smsRecordList.add(smsRecord);
+		}
+		Map<String, Object> map = new HashMap<>(2);
+		map.put("smsRecord",smsRecordList);
+		map.put("smsResult",smsResult);
+		// 返回
+		return map;
+	}
 
 	/**
 	 * 发送 具名 变量模板短信--批量一次发送
@@ -160,7 +219,7 @@
 		SmsRecord smsRecord = new SmsRecord();
 		if (null != smsResult){
 			// 保存记录
-			smsRecord = saveSendRecord(request, resultComResult.getCode(), resultComResult.getMsg(), smsResult.getId());
+			smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId());
 		}
 		Map<String, Object> map = new HashMap<>(2);
 		map.put("smsRecord",smsRecord);
@@ -200,18 +259,20 @@
 	 * @param resultId
 	 */
 	@Override
-	public SmsRecord saveSendRecord(SMSSendRequest request, Integer code, String sendMsg, Long resultId) {
+	public SmsRecord saveSendRecord(SMSSendRequest request, String code, String sendMsg, Long resultId) {
 		// 在保存明细
 		SmsRecord smsRecord = new SmsRecord();
 		smsRecord.setTel(request.getUserNumber());
 		smsRecord.setContent(request.getMessageContent());
 		smsRecord.setTemplateId(request.getTemplateId());
 		smsRecord.setResultId(resultId);
-		smsRecord.setResponseStatus(code.toString());
+		smsRecord.setResponseStatus(code);
 		smsRecord.setResponseMsg(sendMsg);
 		//插入记录
 		smsRecordService.save(smsRecord);
 		// 返回
 		return smsRecord;
 	}
+
+
 }
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 606466d..dbbfd5a 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
@@ -71,7 +71,7 @@
 
     <!--根据水库编号及责任人类型查询相关责任人信息-->
     <select id="getPersonListByResGuid" resultType="cn.gistack.sm.sjztmd.vo.PersonVO">
-        select "user_name" as name,"user_phone" as phone
+        select "user_name" as name,"user_phone" as phone,"type" as type
         from "SJZT_MD"."att_res_manage_person"
         where "res_guid" = #{res_cd}
         <choose>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
index b414803..cf95f9c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
@@ -63,7 +63,7 @@
 				request.getUserNumber(),
 				request.getMessageContent(),
 				request.getTemplateId(),
-				resultComResult.getCode(),
+				resultComResult.getCode().toString(),
 				resultComResult.getMsg(),
 				1);
 			// 返回发送信息

--
Gitblit v1.9.3