guoshilong
2023-12-06 4e08228935a5c636da5281c47cf65ce91bc02a65
告警处理
6 files modified
80 ■■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecord.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/controller/AlarmRecordController.java 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRecordMapper.xml 22 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/AlarmRecordService.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRecordServiceImpl.java 35 ●●●●● patch | view | raw | blame | history
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;
}
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
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);
}
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"
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);
}
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;
    }
}