From 4e08228935a5c636da5281c47cf65ce91bc02a65 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 06 Dec 2023 16:39:55 +0800
Subject: [PATCH] 告警处理

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java          |    2 +
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java            |    4 ++
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java |   35 +++++++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java    |   12 ++++++
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml             |   22 +++++++++++
 skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecord.java          |    5 ++
 6 files changed, 80 insertions(+), 0 deletions(-)

diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecord.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecord.java
index c8b5170..fb828a3 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecord.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecord.java
@@ -47,4 +47,9 @@
 	 * 临时编号-每次任务执行都不一样
 	 */
 	private String tempCode;
+
+	/**
+	 * 任务id
+	 */
+	private String taskId;
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java
index 73e1f3d..154fa90 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java
@@ -64,6 +64,18 @@
 	}
 
 	/**
+	 * 添加
+	 *
+	 * @param alarmRecord
+	 * @return
+	 */
+	@ApiOperation(value="告警记录-修改状态", notes="告警记录-修改状态")
+	@PostMapping(value = "/updateStatus")
+	public R updateStatus(@RequestBody AlarmRecord alarmRecord) {
+		return R.data(alarmRecordService.updateStatus(alarmRecord));
+	}
+
+	/**
 	 * 编辑
 	 *
 	 * @param alarmRecord
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
index d8f5b33..b8c111d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java
@@ -26,6 +26,8 @@
 	 */
     List<AlarmRecordVO> selectAlarmRecordPage(IPage<AlarmRecordVO> page,@Param("alarmRecord") AlarmRecordVO alarmRecord);
 
+	AlarmRecordVO getVODetail(@Param("id") Long id);
+
 	/**
 	 * 查询告警统计数据-按三大类
 	 * @param alarmRecord
@@ -54,4 +56,6 @@
 	 * @return
 	 */
 	List<AlarmRule> listAlarmRule(@Param("alarmRecord") AlarmRecordVO alarmRecord);
+
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
index 4b03116..dab7adb 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml
@@ -47,6 +47,28 @@
         order by sar.id desc
     </select>
 
+    <select id="getVODetail" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRecordVO">
+        select
+            sar.*,
+            sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,sar1.rule_name as ruleName,
+            a."name" as reservoirName,a."res_reg_code" as resRegCode,a."eng_scal" as engScal,
+            case when b."ad_grad" = 4 THEN b."ad_name"
+                 ELSE NULL END AS townName,
+            case when b."ad_grad" = 3 THEN b."ad_name"
+                 when c."ad_grad" = 3 THEN C."ad_name"
+                END AS countyName,
+            case when b."ad_grad" = 2 THEN b."ad_name"
+                 when c."ad_grad" = 2 THEN c."ad_name"
+                 ELSE d."ad_name" END AS cityName
+        from YWXT.sm_alarm_record sar
+                 left join YWXT.sm_alarm_rule sar1 on sar.alarm_rule_id = sar1.id and sar1.is_deleted = 0
+                 left join SJZT_MD."att_res_base" a on a."guid" = sar.reservoir_number
+                 left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid"
+                 LEFT JOIN SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid"
+                 LEFT JOIN SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid"
+        where sar.is_deleted = 0 and sar.id = #{id}
+    </select>
+
     <!--按行政区code 查询下级行政区-->
     <select id="getAdNameList" resultType="java.lang.String">
         select "ad_name" from SJZT_MD."att_ad_base" where "p_ad_code" = #{adCode} order by "guid"
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java
index a3ab5a7..b44e7b6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java
@@ -33,4 +33,6 @@
 	 * @return
 	 */
 	Object statisticAlarmRecord(AlarmRecordVO alarmRecord);
+
+	Boolean updateStatus(AlarmRecord alarmRecord);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
index fc98fa7..c35758c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java
@@ -9,12 +9,16 @@
 import cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord;
 import cn.gistack.alerts.sms.vo.Temp;
 import cn.gistack.sm.intelligentCall.entity.Scene;
+import cn.gistack.sm.patrol.feign.PatrolTaskClient;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -32,6 +36,9 @@
 
 	@Autowired
 	private AlarmRuleService alarmRuleService;
+
+	@Autowired
+	private PatrolTaskClient patrolTaskClient;
 
 	/**
 	 * 自定义分页列表查询
@@ -111,4 +118,32 @@
 		// 返回数据
 		return objects;
 	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean updateStatus(AlarmRecord alarmRecord) {
+
+		AlarmRecordVO  vo = baseMapper.getVODetail(alarmRecord.getId());
+		String processDefinitionId = "c2d5326e-e27b-11ed-a04e-00ff0b362ee4";
+
+		//日常巡查
+		String taskType = "1641037874390999041";
+		String title = StringUtil.format("{}{}巡查",
+			vo.getReservoirName(),vo.getAlarmRuleType());
+
+		String tm = DateUtil.format(vo.getCreateTime(),"MM月dd日HH时mm分");
+
+		//杨树堰水库在20231206 080005时近1h水位陡降
+		String content = StringUtil.format("{}在{}时{}",
+			vo.getReservoirName(),tm,vo.getRuleName());
+
+		//创建新任务
+		String taskId = patrolTaskClient.createTask(processDefinitionId, taskType, title, content, vo.getReservoirNumber());
+
+		//更新状态
+		alarmRecord.setTaskId(taskId);
+		boolean b = updateById(alarmRecord);
+
+		return b;
+	}
 }

--
Gitblit v1.9.3