From 604a30ce5ecc725427bb1e384abdbdf777a4074b Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 06 Dec 2023 16:40:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java | 5 +
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SendSmsXxlJob.java | 21 ++++++
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java | 19 ++++++
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java | 28 +++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml | 4 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java | 82 +++++++++++++++++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java | 6 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java | 2
8 files changed, 166 insertions(+), 1 deletions(-)
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java
new file mode 100644
index 0000000..28b2dc0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClientFallback.java
@@ -0,0 +1,19 @@
+package cn.gistack.sm.sms.feign;
+
+import org.springframework.stereotype.Component;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION: 失败调度
+ * @USER: aix
+ * @DATE: 2023/12/5 15:31
+ */
+@Component
+public class DataAbnormalWarnClientFallback implements IDataAbnormalWarnClient {
+
+ @Override
+ public void sendOperate(String tableName, String phones) {
+
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java
new file mode 100644
index 0000000..3a35309
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sms/feign/IDataAbnormalWarnClient.java
@@ -0,0 +1,28 @@
+package cn.gistack.sm.sms.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION: 数据异常预警
+ * @USER: aix
+ * @DATE: 2023/12/5 15:28
+ */
+@FeignClient(
+ value = "blade-sm",
+ fallback = DataAbnormalWarnClientFallback.class
+)
+public interface IDataAbnormalWarnClient {
+
+ String API_PREFIX = "/client";
+ String SEND_OPERATE = API_PREFIX + "/sendOperate";
+
+ /**
+ * 当有异常数据时,发送预警短信
+ */
+ @GetMapping(SEND_OPERATE)
+ void sendOperate(@RequestParam("tableName")String tableName, @RequestParam("phones")String phones);
+
+}
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 878a7d7..388e746 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
@@ -59,4 +59,10 @@
* @return
*/
AttResAdVO getWaterRegionInfoByResGuid(@Param("guid") String guid);
+
+ /**
+ * 获取水库基本信息表DimResInfo总数
+ * @return
+ */
+ int getDimResInfoACount();
}
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 b617d38..0d78ff3 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
@@ -182,4 +182,8 @@
where a."guid" = #{guid}
</select>
+ <select id="getDimResInfoACount" resultType="java.lang.Integer">
+ select count(*) from sjzt_dw."dim_res_info_a"
+ </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 0576c30..b7582b7 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
@@ -50,4 +50,6 @@
* @return
*/
AttResAdVO getWaterRegionInfoByResGuid(String guid);
+
+ int getDimResInfoACount();
}
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 15d9b86..36714d5 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
@@ -93,4 +93,9 @@
public AttResAdVO getWaterRegionInfoByResGuid(String guid) {
return baseMapper.getWaterRegionInfoByResGuid(guid);
}
+
+ @Override
+ public int getDimResInfoACount() {
+ return baseMapper.getDimResInfoACount();
+ }
}
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
new file mode 100644
index 0000000..88e2b72
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/feign/DataAbnormalWarnClient.java
@@ -0,0 +1,82 @@
+package cn.gistack.sm.sms.feign;
+
+import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
+import cn.gistack.sm.sjztmd.entity.AttStBase;
+import cn.gistack.sm.sjztmd.service.*;
+import cn.gistack.sm.sms.util.SmsUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION: 数据异常告警feign实现
+ * @USER: aix
+ * @DATE: 2023/12/5 15:39
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+@Slf4j
+public class DataAbnormalWarnClient implements IDataAbnormalWarnClient{
+
+ @Autowired
+ private IAttResBaseService resBaseService;
+
+ @Autowired
+ private IAttStBaseService attStBaseService;
+ @Autowired
+ private IAttResStagCharService attResStagCharService;
+
+ @Autowired
+ private IAttResRsbNorspiService attResRsbNorspiService;
+
+ @Autowired
+ private IAttResFlseLimService attResFlseLimService;
+
+ @Override
+ public void sendOperate(String tableName, String phones) {
+ //汇聚任务水库基本信息表 用于判断是否有数据
+ long count = 1l;
+ if (tableName.equals("dim_res_info_a"))
+ count = resBaseService.getDimResInfoACount();
+ else if (tableName.equals("att_res_base"))
+ count = resBaseService.count();
+ else if (tableName.equals("att_st_base")) {
+ // 构造 QueryWrapper 对象
+ QueryWrapper<AttStBase> wrapper = new QueryWrapper<>();
+ wrapper.isNotNull("\"share_st_code\"").ne("\"share_st_code\"", "");
+ count = attStBaseService.count(wrapper);
+ } else if (tableName.equals("att_res_stag_char")) {
+ count = attResStagCharService.count();
+ } else if (tableName.equals("att_res_rsb_norspi")) {
+ count = attResRsbNorspiService.count();
+ } else if (tableName.equals("att_res_flse_lim")) {
+ count = attResFlseLimService.count();
+ }
+
+ log.info("预警数量count:" + count);
+
+ if (count == 0) {
+ sendMsg(tableName, phones);
+ }
+
+ }
+
+ private void sendMsg(String tableName, String phones) {
+ SMSSendRequest request = new SMSSendRequest();
+ String [] phoness = phones.split(",");
+ for (String n: phoness) {
+ request.setUserNumber(n);
+ request.setTemplateId("2431012268292");
+ request.setMessageContent("紧急通知:数据表异常,请立即检查数据源并填充缺失的数据!"+tableName+",数据为空");
+ 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 6688ce1..0e955fc 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
@@ -1,7 +1,7 @@
package cn.gistack.job.executor.jobhandler;
import cn.gistack.alerts.sms.feign.ISmsRecordClient;
-import cn.gistack.sm.intelligentCall.feign.OutCallClient;
+import cn.gistack.sm.sms.feign.IDataAbnormalWarnClient;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.xxl.job.core.biz.model.ReturnT;
@@ -21,6 +21,9 @@
@Autowired
private ISmsRecordClient smsRecordClient;
+
+ @Autowired
+ private IDataAbnormalWarnClient dataAbnormalWarnClient;
/**
* 外呼未接通-发送短信
@@ -45,4 +48,20 @@
XxlJobLogger.log("结束自动创建任务...");
return ReturnT.SUCCESS;
}
+
+ /**
+ * 监测数据表异常,异常发送短信给运维人员
+ * @return
+ */
+ @XxlJob("sendOperate")
+ public ReturnT<String> sendOperate(String param) {
+ XxlJobLogger.log("开始执行任务...");
+ JSONObject jsonParam = JSON.parseObject(param);
+ String tableName = jsonParam.getString("tableName");
+ String phones = jsonParam.getString("phones");
+ dataAbnormalWarnClient.sendOperate(tableName, phones);
+ XxlJobLogger.log("结束执行任务...");
+ return ReturnT.SUCCESS;
+ }
+
}
--
Gitblit v1.9.3