From 77393cb729ec6b20289cd61153ecb4055bd8a2a9 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Wed, 06 Dec 2023 15:23:53 +0800
Subject: [PATCH] 数据预警

---
 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/sms/feign/DataAbnormalWarnClient.java                 |   82 +++++++++++++++++++++++++++
 3 files changed, 129 insertions(+), 0 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/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);
+		}
+	}
+
+}

--
Gitblit v1.9.3