shenyijian
2024-06-26 00217e19568ba88ae196ae12a1bf5429c9ad67b9
Merge remote-tracking branch 'origin/jtdev' into jtdev
8 files modified
1 files added
179 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java 25 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java 71 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResBaseController.java 27 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/StBdDataController.java 6 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml 6 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IStBdDataService.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/StBdDataServiceImpl.java 18 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StBdVO.java 17 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -598,10 +598,10 @@
            .eq("temp_code", uuid)
            .eq("alarm_rule_id", alarmRule.getId())
            .eq("reservoir_number", list.get(1))
            .eq("alarm_survey_station_code",list.get(0))
//            .eq("alarm_survey_station_code",list.get(0))
        );
        if (null != alarmRecord) {
        if (null!=alarmRecord) {
            //删除测值
            list.remove(3);
            // 删除测站编号
@@ -619,19 +619,8 @@
            alarm.setMonitorData(list.get(3));
            //删除测值
            list.remove(3);
            //一个水库同个规则中保存一次处理--Shit mountain code
            AlarmRecord alarmRecord2 = alarmRecordService.getOne(new QueryWrapper<AlarmRecord>()
                .eq("alarm_rule_id", alarmRule.getId())
                .eq("reservoir_number", list.get(1))
                .gt("create_time", DateUtil.format(new Date(),"yyyy-MM-dd"))
            );
            boolean save = true;
            if (null == alarmRecord2) {
                // 新增
                save = alarmRecordService.save(alarm);
            }
            // 新增
            boolean save = alarmRecordService.save(alarm);
            // 删除测站编号
            list.remove(0);
            if (save) {
@@ -644,12 +633,12 @@
    public AlarmRecord saveAlarmRecord(List<String> list, AlarmRule alarmRule, String uuid, String remark) {
        AlarmRecord alarmRecord = alarmRecordService.getOne(new QueryWrapper<AlarmRecord>()
            .eq("temp_code", uuid)
                .eq("temp_code", uuid)
                .eq("alarm_rule_id", alarmRule.getId())
                .eq("reservoir_number", list.get(1))
                .eq("alarm_survey_station_code",list.get(0))
//            .eq("alarm_survey_station_code",list.get(0))
        );
        if (null != alarmRecord) {
        if (null!=alarmRecord) {
            //删除测值
            list.remove(3);
            // 删除测站编号
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -259,6 +259,40 @@
        return "水位小幅超汛限告警";
    }
    /**
     * 策略7.1: 水位小幅超汛限告警2--水位高于汛限水位20cm
     *
     * @param arg1
     * @param arg2
     * @return
     */
    public String waterSmallScaleOver20Handle(String arg1, String arg2) {
//        String adCode = "421303000000";
        String adCode = null;
        String uuid = UUID.randomUUID().toString();
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_small_over_api);
        // 获取告警规则详情,判断告警类型(短信,电话,站内信)
        if (null != alarmRule) {
            // 查询告警详情信息
            List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
            if (alarmRuleDetailList.size() > 0) {
                // 遍历
                if (alarmRuleDetailList.get(0).getAlarmMode().equals("短信")) {
                    asyncNoticeHandle.waterSmallScaleOverHandle1(alarmRule, alarmRuleDetailList.get(0), ztData, ZtApiDataColumnConstant.waterSmallScaleOverList, true, adCode, false, uuid);
                }
                if (alarmRuleDetailList.get(1).getAlarmMode().equals("短信")) {
                    asyncNoticeHandle.waterSmallScaleOverHandle2(alarmRule, alarmRuleDetailList.get(1), ztData, ZtApiDataColumnConstant.waterSmallScaleOverList, true, adCode, false, uuid);
                }
            }
        }
        // 返回
        return "水位小幅超汛限告警";
    }
    /**
     * 策略8: 水位大幅超汛限告警
     *
@@ -570,7 +604,7 @@
                // 遍历
                for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
                    if (alarmRuleDetail.getAlarmMode().equals("短信")) {
                        asyncNoticeHandle.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.sixHourRainList, true, adCode, false, uuid);
                        asyncNoticeHandle.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.sixHourRainList, false, adCode, false, uuid);
                    }
//                    if (alarmRuleDetail.getAlarmMode().equals("电话")) {
//                        asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.sixHourRainList,true, adCode, false,uuid);
@@ -582,6 +616,41 @@
        return "6小时降雨告警";
    }
    /**
     * 策略18: 6小时降雨告警
     *
     * @param arg1
     * @param arg2
     * @return
     */
    public String sixHourRainHandle2(String arg1, String arg2) {
        //String adCode = "420607000000";
        String uuid = UUID.randomUUID().toString();
        String adCode = null;
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_6_over_api);
        // 获取告警规则详情,判断告警类型(短信,电话,站内信)
        if (null != alarmRule) {
            // 查询告警详情信息
            List<AlarmRuleDetail> alarmRuleDetailList = alarmRuleDetailService.list(new QueryWrapper<AlarmRuleDetail>().eq("alarm_rule_id", alarmRule.getId()));
            if (alarmRuleDetailList.size() > 0) {
                // 遍历
                for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) {
                    if (alarmRuleDetail.getAlarmMode().equals("短信")) {
//                        asyncNoticeHandle.sixHourRainHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.sixHourRainList, false, adCode, false, uuid);
                    }
                    if (alarmRuleDetail.getAlarmMode().equals("电话")) {
                        asyncNoticeHandle.outCallHandleCall(alarmRule, alarmRuleDetail, ztData,ZtApiDataColumnConstant.sixHourRainList,false, adCode, false,uuid);
                    }
                }
            }
        }
        // 返回
        return "6小时降雨告警";
    }
    /**
     * 策略19: 大坝安全监测告警-数据缺失
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/strategy/NoticeStrategyContext.java
@@ -50,6 +50,8 @@
        strategyMap.put("waterFirstOverHandle", (arg1, arg2) -> noticeStrategyImpl.waterFirstOverHandle(arg1, arg2));
        //7
        strategyMap.put("waterSmallScaleOverHandle", (arg1, arg2) -> noticeStrategyImpl.waterSmallScaleOverHandle(arg1, arg2));
        //7.1
        strategyMap.put("waterSmallScaleOver20Handle", (arg1, arg2) -> noticeStrategyImpl.waterSmallScaleOver20Handle(arg1, arg2));
        //8
        strategyMap.put("waterBigScaleOverHandle", (arg1, arg2) -> noticeStrategyImpl.waterBigScaleOverHandle(arg1, arg2));
        //9
@@ -72,6 +74,8 @@
        strategyMap.put("twoHourRainHandle", (arg1, arg2) -> noticeStrategyImpl.twoHourRainHandle(arg1, arg2));
        //18 6小时降雨告警
        strategyMap.put("sixHourRainHandle", (arg1, arg2) -> noticeStrategyImpl.sixHourRainHandle(arg1, arg2));
        //18 6小时降雨告警2
        strategyMap.put("sixHourRainHandle2", (arg1, arg2) -> noticeStrategyImpl.sixHourRainHandle2(arg1, arg2));
        //19 大坝安全监测告警-数据缺失
        strategyMap.put("damSafetyHandle", (arg1, arg2) -> noticeStrategyImpl.damSafetyHandle(arg1, arg2));
        //20 大坝安全监测告警-渗压管水位
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResBaseController.java
@@ -21,6 +21,7 @@
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.DateUtil;
@@ -94,6 +95,32 @@
    public void exportAttResBaseUser(@RequestParam Map<String, Object> params, HttpServletResponse response) {
        List<AttResBaseUserExcel> list = attResBaseService.exportAttResBaseUser(params);
        /**
         * 如果不是超级管理员数据需要处理 处理逻辑如下
         * (1)大中型水库的行政责任人电话都不显示。
         * (2)省直管且是大中型的6座水库(漳河、高关、富水、王英、吴岭、蔡贤水库)的主管部门负责人手机号不显示。
         * (3)三峡、葛洲坝、隔河岩、高坝州、丹江口(以后可以手动加)除了巡查责任人外的责任人的手机号码不显示。
         */
        if (!AuthUtil.isAdministrator()) {
            for (AttResBaseUserExcel excel:list) {
                if (excel.getEngScal().equals("大(1)型") || excel.getEngScal().equals("大(2)型") || excel.getEngScal().equals("中型")) {
                    excel.setAreaPhone("");
                }
                if (excel.getName().equals("漳河水库") || excel.getName().equals("高关水库") || excel.getName().equals("富水漳河水库")
                    || excel.getName().equals("王英水库") || excel.getName().equals("吴岭水库") || excel.getName().equals("蔡贤水库")) {
                    excel.setCustomsPhone("");
                }
                if (excel.getName().equals("三峡") || excel.getName().equals("葛洲坝") || excel.getName().equals("隔河岩")
                    || excel.getName().equals("高坝州") || excel.getName().equals("丹江口")) {
                    excel.setAreaPhone("");//行政
                    excel.setCustomsPhone("");//主管
                    excel.setManageUnitPhone("");//管理单位
                    excel.setTechnologyPhone("");//技术
                }
            }
        }
        ExcelUtil.export(response, "水库责任人数据数据" + DateUtil.time(), "水库责任人数据表", list, AttResBaseUserExcel.class);
    }
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/StBdDataController.java
@@ -3,13 +3,13 @@
import cn.gistack.sm.sjztmd.entity.StBdData;
import cn.gistack.sm.sjztmd.service.IStBdDataService;
import cn.gistack.sm.sjztmd.vo.StBdDataVO;
import cn.gistack.sm.sjztmd.vo.StBdVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
@@ -31,8 +31,8 @@
     */
    @ApiOperation(value="分页查询北斗平台监测数据", notes="分页查询北斗平台监测数据")
    @GetMapping("/list")
    public R<IPage<StBdData>> list(StBdData stBdData, Query query) throws Exception {
        IPage<StBdData> pageList = stBdDataService.page(Condition.getPage(query), Condition.getQueryWrapper(stBdData));
    public R<IPage<StBdData>> list(StBdVO stBdData, Query query) throws Exception {
        IPage<StBdData> pageList = stBdDataService.selectAlarmRecordPage( query, stBdData);
        return R.data(pageList);
    }
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml
@@ -144,8 +144,8 @@
                                LEFT JOIN YWXT."att_ad_base" city ON city."ad_code" = county."p_ad_code"
                                LEFT JOIN YWXT."att_ad_base" province ON province."ad_code" = city."p_ad_code"
                        where (town."ad_code" = aab."guid" or county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
                          <!--控制只有待审核和已审核数据才显示-->
                        and (trgis."check_state" = 1 or trgis."check_state" = 2)
                          <!--只有已审核数据才显示-->
                        and (trgis."check_state" = 3)
                    )
               ) dangerNum
        FROM YWXT."att_ad_base" aab
@@ -501,7 +501,7 @@
                    <if test="params.tbYear != null and params.tbYear !=''">
                        and tdis."tb_year" = #{params.tbYear}
                    </if>
                    and tdis."check_state" = 2
                    and tdis."check_state" = 3
                </where>
                ) trd
                LEFT JOIN ywxt."att_ad_base" county on county."ad_code" = trd."ad_code"
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IStBdDataService.java
@@ -2,9 +2,14 @@
import cn.gistack.sm.sjztmd.entity.StBdData;
import cn.gistack.sm.sjztmd.vo.StBdDataVO;
import cn.gistack.sm.sjztmd.vo.StBdVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.mp.support.Query;
public interface IStBdDataService extends IService<StBdData>{
    Boolean insertData(StBdDataVO stBdDataVO) throws Exception;
    IPage<StBdData> selectAlarmRecordPage(Query query, StBdVO stBdVO);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/StBdDataServiceImpl.java
@@ -5,11 +5,18 @@
import cn.gistack.sm.sjztmd.mapper.StBdDataMapper;
import cn.gistack.sm.sjztmd.service.IStBdDataService;
import cn.gistack.sm.sjztmd.vo.StBdDataVO;
import cn.gistack.sm.sjztmd.vo.StBdVO;
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
@@ -53,6 +60,17 @@
        return true;
    }
    @Override
    public IPage<StBdData> selectAlarmRecordPage(Query query, StBdVO stBdVO) {
        LambdaQueryWrapper<StBdData> queryWrapper = Wrappers.<StBdData>query().lambda()
            .eq(StrUtil.isNotEmpty(stBdVO.getCodeType()), StBdData::getCodeType, stBdVO.getCodeType())
            .eq(StrUtil.isNotEmpty(stBdVO.getFromAddr()), StBdData::getFromAddr, stBdVO.getFromAddr())
            .eq(StrUtil.isNotEmpty(stBdVO.getToAddr()), StBdData::getToAddr, stBdVO.getToAddr())
            .ge(stBdVO.getStartTime() != null, StBdData::getTm, stBdVO.getStartTime())
            .le(stBdVO.getEndTime() != null, StBdData::getTm, stBdVO.getEndTime());
        return page(Condition.getPage(query), queryWrapper);
    }
    private boolean contentIsContainChinese(String content) {
        if (content == null || content.isEmpty()) {
            return false;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StBdVO.java
New file
@@ -0,0 +1,17 @@
package cn.gistack.sm.sjztmd.vo;
import cn.gistack.sm.sjztmd.entity.StBdData;
import lombok.Data;
@Data
public class StBdVO extends StBdData {
    /**
     * 开始时间
     */
    private String startTime;
    /**
     * 结束时间
     */
    private String endTime;
}