guoshilong
2023-12-06 4e08228935a5c636da5281c47cf65ce91bc02a65
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;
@@ -33,6 +37,9 @@
   @Autowired
   private AlarmRuleService alarmRuleService;
   @Autowired
   private PatrolTaskClient patrolTaskClient;
   /**
    * 自定义分页列表查询
    * @param page
@@ -45,6 +52,21 @@
         return baseMapper.selectAlarmRecordPage(null,alarmRecord);
      }
      return page.setRecords(baseMapper.selectAlarmRecordPage(page,alarmRecord));
   }
   /**
    * 按行政区统计告警-按三大类
    * @param alarmRecord
    * @return
    */
   @Override
   public Object statisticAlarmRecordByType(AlarmRecordVO alarmRecord) {
      // 获取当前用户的行政区划
      String adCode = "420000000000";
      // 查询统计数据
      List<StatisticAlarmRecord> list = baseMapper.statisticAlarmRecordByType(alarmRecord);
      // 返回数据
      return list;
   }
   /**
@@ -63,7 +85,7 @@
      // 查询统计数据
      List<StatisticAlarmRecord> list = baseMapper.statisticAlarmRecord(alarmRecord);
      // 按行政区分组
      Map<String, List<StatisticAlarmRecord>> listMap = list.stream().collect(Collectors.groupingBy(StatisticAlarmRecord::getAdName));
      Map<String, List<StatisticAlarmRecord>> listMap = list.stream().filter(item->null!=item.getAdName()).collect(Collectors.groupingBy(StatisticAlarmRecord::getAdName));
      // 补全行政区
      for (String adName : adNameList) {
         if (!listMap.containsKey(adName)){
@@ -96,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;
   }
}