From 94b2c9db484f97cb84ead85bd4e5268d9c823ed2 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 25 Jun 2024 19:06:33 +0800
Subject: [PATCH] 行政区划过滤
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 168 insertions(+), 5 deletions(-)
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..80253e7 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,17 @@
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.apache.logging.log4j.util.Strings;
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;
@@ -33,6 +38,9 @@
@Autowired
private AlarmRuleService alarmRuleService;
+ @Autowired
+ private PatrolTaskClient patrolTaskClient;
+
/**
* 自定义分页列表查询
* @param page
@@ -41,6 +49,9 @@
*/
@Override
public Object selectAlarmRecordPage(IPage<AlarmRecordVO> page, AlarmRecordVO alarmRecord) {
+// if (!Strings.isBlank(alarmRecord.getAdCode())){
+// alarmRecord.setAdCode(alarmRecord.getAdCode().replaceAll("0+$", ""));
+// }
if (null != alarmRecord.getIsExport()){
return baseMapper.selectAlarmRecordPage(null,alarmRecord);
}
@@ -54,10 +65,22 @@
*/
@Override
public Object statisticAlarmRecordByType(AlarmRecordVO alarmRecord) {
- // 获取当前用户的行政区划
- String adCode = "420000000000";
+ if (!Strings.isBlank(alarmRecord.getAdCode())){
+ alarmRecord.setAdCode(alarmRecord.getAdCode().replaceAll("0+$", ""));
+ }
// 查询统计数据
List<StatisticAlarmRecord> list = baseMapper.statisticAlarmRecordByType(alarmRecord);
+ // 返回数据
+ return list;
+ }
+
+ @Override
+ public Object statisticAlarmRecordByAlarmRuleType(AlarmRecordVO alarmRecord) {
+ if (!Strings.isBlank(alarmRecord.getAdCode())){
+ alarmRecord.setAdCode(alarmRecord.getAdCode().replaceAll("0+$", ""));
+ }
+ // 查询统计数据
+ List<StatisticAlarmRecord> list = baseMapper.statisticAlarmRecordByAlarmRuleType(alarmRecord);
// 返回数据
return list;
}
@@ -69,13 +92,23 @@
*/
@Override
public Object statisticAlarmRecord(AlarmRecordVO alarmRecord) {
- // 获取当前用户的行政区划
- String adCode = "420000000000";
+ if (Strings.isBlank(alarmRecord.getAdCode())){
+ // 获取当前用户的行政区划
+ alarmRecord.setAdCode("420000000000");
+ }
// 查询所有的市级行政区
- List<String> adNameList = baseMapper.getAdNameList(adCode);
+ List<String> adNameList = baseMapper.getAdNameList(alarmRecord.getAdCode());
+
+ if (alarmRecord.getAdLevel().equals("4")) {
+ adNameList = baseMapper.getAdNameListByAdCode(alarmRecord.getAdCode());
+ }
+
// 查询符合条件的告警类型
List<AlarmRule> alarmRuleList = baseMapper.listAlarmRule(alarmRecord);
// 查询统计数据
+ if (!Strings.isBlank(alarmRecord.getAdCode())){
+ alarmRecord.setAdCode(alarmRecord.getAdCode().replaceAll("0+$", ""));
+ }
List<StatisticAlarmRecord> list = baseMapper.statisticAlarmRecord(alarmRecord);
// 按行政区分组
Map<String, List<StatisticAlarmRecord>> listMap = list.stream().filter(item->null!=item.getAdName()).collect(Collectors.groupingBy(StatisticAlarmRecord::getAdName));
@@ -111,4 +144,134 @@
// 返回数据
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;
+ }
+
+ @Override
+ public Object statisticsPie(AlarmRecordVO alarmRecordVO) {
+ if (!Strings.isBlank(alarmRecordVO.getAdCode())){
+ alarmRecordVO.setAdCode(alarmRecordVO.getAdCode().replaceAll("0+$", ""));
+ }
+ // 查询统计数据
+ List<StatisticAlarmRecord> list = baseMapper.statisticsPie(alarmRecordVO);
+ return list;
+ }
+
+ /**
+ * 告警统计按告警分类-等级统计
+ * @param alarmRecord
+ * @return
+ */
+ @Override
+ public Object statisticAlaByTypeAndLev(AlarmRecordVO alarmRecord) {
+ Map<String, Object> map = new HashMap<>(4);
+ List<StatisticAlarmRecord> recordList = baseMapper.statisticAlaByTypeAndLev(alarmRecord);
+ if (recordList.size()>0){
+ map.put("水情监测",setAlaStatisticListByData(recordList,"水情监测"));
+ map.put("雨情监测",setAlaStatisticListByData(recordList,"雨情监测"));
+ map.put("渗压监测",setAlaStatisticListByData(recordList,"渗压监测"));
+ map.put("渗流监测",setAlaStatisticListByData(recordList,"渗流监测"));
+ map.put("变形监测",setAlaStatisticListByData(recordList,"变形监测"));
+ }else {
+ map.put("水情监测",setAlaStatisticList());
+ map.put("雨情监测",setAlaStatisticList());
+ map.put("渗压监测",setAlaStatisticList());
+ map.put("渗流监测",setAlaStatisticList());
+ map.put("变形监测",setAlaStatisticList());
+ }
+ return map;
+ }
+
+ /**
+ * 设置组装预警统计数据-带参数
+ * @return
+ */
+ private List<StatisticAlarmRecord> setAlaStatisticListByData(List<StatisticAlarmRecord> recordList, String typeName) {
+ List<StatisticAlarmRecord> list = new ArrayList<>();
+ List<String> levelList = new ArrayList<>(){{
+ add("蓝色预警");
+ add("黄色预警");
+ add("橙色预警");
+ add("红色预警");
+ }};
+ List<String> alarmLevelList = recordList.stream()
+ .filter(a -> a.getRuleName().equals(typeName))
+ .map(StatisticAlarmRecord::getAlarmLevel)
+ .distinct()
+ .collect(Collectors.toList());
+ // 先取差集
+ List<String> diffList = levelList.stream().filter(item -> !alarmLevelList.contains(item)).collect(Collectors.toList());
+ for (StatisticAlarmRecord alarmRecord : recordList) {
+ if (alarmRecord.getRuleName().equals(typeName)){
+ StatisticAlarmRecord statisticAlarmRecord = new StatisticAlarmRecord();
+ statisticAlarmRecord.setAlarmLevel(alarmRecord.getAlarmLevel());
+ statisticAlarmRecord.setNum(alarmRecord.getNum());
+ list.add(statisticAlarmRecord);
+ }
+ }
+ if (diffList.size()>0){
+ for (String level : diffList) {
+ StatisticAlarmRecord statisticAlarmRecord = new StatisticAlarmRecord();
+ statisticAlarmRecord.setAlarmLevel(level);
+ statisticAlarmRecord.setNum(0);
+ list.add(statisticAlarmRecord);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * 设置组装预警统计数据
+ * @return
+ */
+ private List<StatisticAlarmRecord> setAlaStatisticList() {
+ List<StatisticAlarmRecord> list = new ArrayList<>();
+ StatisticAlarmRecord statisticAlarmRecord1 = new StatisticAlarmRecord();
+ statisticAlarmRecord1.setAlarmLevel("蓝色预警");
+ statisticAlarmRecord1.setNum(0);
+
+ StatisticAlarmRecord statisticAlarmRecord2 = new StatisticAlarmRecord();
+ statisticAlarmRecord2.setAlarmLevel("黄色预警");
+ statisticAlarmRecord2.setNum(0);
+
+ StatisticAlarmRecord statisticAlarmRecord3 = new StatisticAlarmRecord();
+ statisticAlarmRecord3.setAlarmLevel("橙色预警");
+ statisticAlarmRecord3.setNum(0);
+
+ StatisticAlarmRecord statisticAlarmRecord4 = new StatisticAlarmRecord();
+ statisticAlarmRecord4.setAlarmLevel("红色预警");
+ statisticAlarmRecord4.setNum(0);
+
+ list.add(statisticAlarmRecord1);
+ list.add(statisticAlarmRecord2);
+ list.add(statisticAlarmRecord3);
+ list.add(statisticAlarmRecord4);
+ return list;
+ }
}
--
Gitblit v1.9.3