zhongrj
2023-06-05 29358cfe9b8da07f852c69a57f5d8fedcbbf116e
新增站内信记录保存
10 files modified
160 ■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java 53 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java 12 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java 71 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClient.java
@@ -30,7 +30,7 @@
    void saveSmsRecord(@RequestParam("userNumber")String userNumber,
                       @RequestParam("messageContent")String messageContent,
                       @RequestParam("templateId")String templateId,
                       @RequestParam("code")Integer code,
                       @RequestParam("code")String code,
                       @RequestParam("msg")String msg,
                       @RequestParam("number")Integer number);
}
skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/sms/feign/ISmsRecordClientFallback.java
@@ -14,7 +14,7 @@
public class ISmsRecordClientFallback implements ISmsRecordClient{
    @Override
    public void saveSmsRecord(String userNumber, String messageContent, String templateId, Integer code, String msg, Integer number) {
    public void saveSmsRecord(String userNumber, String messageContent, String templateId, String code, String msg, Integer number) {
    }
}
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/vo/PersonVO.java
@@ -16,9 +16,9 @@
    private String name;
    /**
     * 角色
     * 类型
     */
    private String roleName;
    private String type;
    /**
     * 手机号
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -78,7 +78,7 @@
        SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id",templateId).eq("is_deleted",0));
        if (null != smsTemplate) {
            SmsRequestTemplate smsRequestTemplate = new SmsRequestTemplate();
            // 设置短信模板信息
            // 设置模板信息
            smsRequestTemplate.setSmsTemplate(smsTemplate);
            // 解析模板并设置 title
            smsRequestTemplate.setTitle(FormatUtil.composeMessage(smsTemplate.getContent()));
@@ -212,7 +212,7 @@
    /**
     * 默认实现
     *
     * @param arg1
     * @param arg1 告警规则名称
     * @param arg2
     * @return
     */
@@ -257,7 +257,7 @@
    /**
     * 策略2: 水位数据异常
     *
     * @param arg1
     * @param arg1 告警规则名称
     * @param arg2
     * @return
     */
@@ -288,7 +288,7 @@
    /**
     * 策略3: 水位超低于死水位(水库技术责任人、巡查责任人)
     *
     * @param arg1
     * @param arg1 告警规则名称
     * @param arg2
     * @return
     */
@@ -304,12 +304,11 @@
            // 遍历,拼接县水利部人员电话
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 查询县水利部人员(通过水库编号)
                list.add("测试:13112341234");
//                list.add("测试:13112341234");
                // 保存告警记录信息
                AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule);
                if (null != alarmRecord) {
                    list.add(alarmRecord.getId().toString());
//                    list.add("123789");
                }
            }
            // 调用短信服务
@@ -339,8 +338,46 @@
     * @return
     */
    public String waterComeOverHandle(String arg1, String arg2) {
        // 业务逻辑处理 2...
        return "";
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        if (null!=alarmRule) {
            // 调用中台服务接口查询数据
            JSONArray ztData = getZtData("", ZtApiUrlConstant.res_diff_dead_z_api);
            // 只发送站内信
            SmsRequestTemplate smsRequestTemplate = getSendSmsTemplate(ztData, "znxsw10000001",alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true);
            // 拼接内容后面的联系方式,当前模板县水利部人员姓名电话
            // 遍历,拼接县水利部人员电话
            for (List<String> list : smsRequestTemplate.getTemplateContent()) {
                // 后面依次拼接 巡查责任人姓名,技术责任人姓名,市县水利部门人员姓名电话(暂时不要)
                // 查询巡查责任人姓名,技术责任人姓名信息
                List<PersonVO> personVOList = attResManagePersonClient.getPersonListByResGuid(list.get(0),"4,5");
                String xczrr = "";
                String jszrr = "";
                for (PersonVO personVO : personVOList) {
                    if (personVO.getType().equals("5")){
                        xczrr = personVO.getName();
                    }
                    if (personVO.getType().equals("4")){
                        jszrr = personVO.getName();
                    }
                }
                // 巡查责任人姓名
                list.add(xczrr);
                // 技术责任人姓名
                list.add(jszrr);
                // 市县水利部门人员姓名电话(暂时不要)
//                list.add("测试:13112341234");
                // 保存告警记录信息
                AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule);
                if (null != alarmRecord) {
                    list.add(alarmRecord.getId().toString());
//                    list.add("999");
                }
            }
            // 保存站内信记录信息
            smsService.saveInStationInfo(smsRequestTemplate);
        }
        return "水位接近汛限告警";
    }
    /**
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/controller/SmsController.java
@@ -60,7 +60,7 @@
            // 记录发送记录操作
            SmsResult smsResult = smsService.saveSendResult(request, 1);
            if (null != smsResult){
                smsService.saveSendRecord(request, resultComResult.getCode(),resultComResult.getMsg(),smsResult.getId());
                smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
            }
            // 返回发送信息
            return R.data(resultComResult);
@@ -102,7 +102,7 @@
                    smsSendRequest.setMessageContent(smsRequest.getContent());
                    smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
                    // 记录发送记录操作
                    smsService.saveSendRecord(smsSendRequest, resultComResult.getCode(),resultComResult.getMsg(),smsResult.getId());
                    smsService.saveSendRecord(smsSendRequest, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
                }
            }else {
                // 手机号有误记录
@@ -112,7 +112,7 @@
                smsSendRequest.setMessageContent(smsRequest.getContent());
                smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
                // 记录发送记录操作
                smsService.saveSendRecord(smsSendRequest, 400,"手机号错误未发送...",null);
                smsService.saveSendRecord(smsSendRequest, "400","手机号错误未发送...",null);
            }
        }
        return R.status(true);
@@ -139,7 +139,7 @@
            // 记录发送记录操作
            SmsResult smsResult = smsService.saveSendResult(request, 1);
            if (null != smsResult){
                smsService.saveSendRecord(request, resultComResult.getCode(),resultComResult.getMsg(),smsResult.getId());
                smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
            }
            // 保存验证码到 redis
            saveCodeForRedis(request.getUserNumber(), randNumber);
@@ -226,7 +226,7 @@
                    smsSendRequest.setMessageContent(smsRequest.getContent());
                    smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
                    // 记录发送记录操作
                    smsService.saveSendRecord(smsSendRequest, resultComResult.getCode(),resultComResult.getMsg(),smsResult.getId());
                    smsService.saveSendRecord(smsSendRequest, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId());
                }
            }else {
                // 手机号有误记录
@@ -236,7 +236,7 @@
                smsSendRequest.setMessageContent(smsRequest.getContent());
                smsSendRequest.setTemplateId(dynSMSSendRequest.getTemplateId());
                // 记录发送记录操作
                smsService.saveSendRecord(smsSendRequest, 400,"手机号错误未发送...",null);
                smsService.saveSendRecord(smsSendRequest, "400","手机号错误未发送...",null);
            }
        }
        return R.status(true);
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/feign/SmsRecordClient.java
@@ -36,7 +36,7 @@
    public void saveSmsRecord(String userNumber,
                              String messageContent,
                              String templateId,
                              Integer code,
                              String code,
                              String msg,
                              Integer number) {
        SMSSendRequest request = new SMSSendRequest();
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/SmsService.java
@@ -6,6 +6,7 @@
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
import java.util.List;
import java.util.Map;
/**
 * 短信发送服务接口
@@ -46,5 +47,12 @@
     * @param resultId
     * @return
     */
    SmsRecord saveSendRecord(SMSSendRequest request,Integer code, String sendMsg, Long resultId);
    SmsRecord saveSendRecord(SMSSendRequest request,String code, String sendMsg, Long resultId);
    /**
     * 保存站内信记录信息
     * @param smsRequestTemplate
     * @return
     */
    Map<String, Object> saveInStationInfo(SmsRequestTemplate smsRequestTemplate);
}
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -56,7 +56,7 @@
                ComResult<SMSSendDataResult> result = SmsUtils.sendMsg(request);
                if(null != smsResult) {
                    // 保存记录
                    saveSendRecord(request, result.getCode(), result.getMsg(), smsResult.getId());
                    saveSendRecord(request, result.getCode().toString(), result.getMsg(), smsResult.getId());
                }
                list.add(result);
            }
@@ -115,7 +115,7 @@
                // 设置内容
                request.setMessageContent(format);
                // 保存记录
                smsRecord = saveSendRecord(request, resultComResult.getCode(), resultComResult.getMsg(), smsResult.getId());
                smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId());
                if (null != smsRecord){
                    alarmRecordDetail.setAlarmContent(format);
                    alarmRecordDetail.setSendRecordId(smsRecord.getId());
@@ -133,6 +133,65 @@
        return map;
    }
    /**
     * 保存站内信记录信息
     * @param smsRequestTemplate
     * @return
     */
    @Override
    public Map<String, Object> saveInStationInfo(SmsRequestTemplate smsRequestTemplate) {
        // 取出数据
        SMSSendRequest request = new SMSSendRequest();
        SmsTemplate smsTemplate = smsRequestTemplate.getSmsTemplate();
        request.setTemplateId(smsTemplate.getTemplateId());
        List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
        // 先保存结果记录
        SmsResult smsResult = saveSendResult(request, templateContent.size());
        List<SmsRecord> smsRecordList = new ArrayList<>();
        // 遍历处理
        for (List<String> list : templateContent) {
            AlarmRecordDetail alarmRecordDetail = new AlarmRecordDetail();
            alarmRecordDetail.setReservoirNumber(list.get(0));
            alarmRecordDetail.setAlarmRecordId(Long.parseLong(list.get(list.size() - 1)));
            alarmRecordDetail.setAlarmMode("站内信");
            // 未读
            alarmRecordDetail.setStatus(1);
            // 删除 最后一个 告警记录id
            list.remove(list.size() - 1);
            // 删除 0 水库编码
            list.remove(0);
            SmsRecord smsRecord = new SmsRecord();
            if (null != smsResult){
                alarmRecordDetail.setPhone(list.get(0));
                // 设置手机号
                request.setUserNumber(list.get(0));
                // 内容处理
                String s = smsTemplate.getContent().replaceAll("\\{.+?\\}", "%s");
                // 需要删除最前面的手机号
                list.remove(0);
                // 格式转换
                String format = String.format(s, list.toArray());
                // 设置内容
                request.setMessageContent(format);
                // 保存记录
                smsRecord = saveSendRecord(request, "", "", smsResult.getId());
                if (null != smsRecord){
                    alarmRecordDetail.setAlarmContent(format);
                    alarmRecordDetail.setSendRecordId(smsRecord.getId());
                    alarmRecordDetail.setCreateTime(new Date());
                    // 保存告警记录详情信息
                    boolean save = alarmRecordDetailService.save(alarmRecordDetail);
                }
            }
            smsRecordList.add(smsRecord);
        }
        Map<String, Object> map = new HashMap<>(2);
        map.put("smsRecord",smsRecordList);
        map.put("smsResult",smsResult);
        // 返回
        return map;
    }
    /**
     * 发送 具名 变量模板短信--批量一次发送
@@ -160,7 +219,7 @@
        SmsRecord smsRecord = new SmsRecord();
        if (null != smsResult){
            // 保存记录
            smsRecord = saveSendRecord(request, resultComResult.getCode(), resultComResult.getMsg(), smsResult.getId());
            smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId());
        }
        Map<String, Object> map = new HashMap<>(2);
        map.put("smsRecord",smsRecord);
@@ -200,18 +259,20 @@
     * @param resultId
     */
    @Override
    public SmsRecord saveSendRecord(SMSSendRequest request, Integer code, String sendMsg, Long resultId) {
    public SmsRecord saveSendRecord(SMSSendRequest request, String code, String sendMsg, Long resultId) {
        // 在保存明细
        SmsRecord smsRecord = new SmsRecord();
        smsRecord.setTel(request.getUserNumber());
        smsRecord.setContent(request.getMessageContent());
        smsRecord.setTemplateId(request.getTemplateId());
        smsRecord.setResultId(resultId);
        smsRecord.setResponseStatus(code.toString());
        smsRecord.setResponseStatus(code);
        smsRecord.setResponseMsg(sendMsg);
        //插入记录
        smsRecordService.save(smsRecord);
        // 返回
        return smsRecord;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResManagePersonMapper.xml
@@ -71,7 +71,7 @@
    <!--根据水库编号及责任人类型查询相关责任人信息-->
    <select id="getPersonListByResGuid" resultType="cn.gistack.sm.sjztmd.vo.PersonVO">
        select "user_name" as name,"user_phone" as phone
        select "user_name" as name,"user_phone" as phone,"type" as type
        from "SJZT_MD"."att_res_manage_person"
        where "res_guid" = #{res_cd}
        <choose>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/controller/SmsController.java
@@ -63,7 +63,7 @@
                request.getUserNumber(),
                request.getMessageContent(),
                request.getTemplateId(),
                resultComResult.getCode(),
                resultComResult.getCode().toString(),
                resultComResult.getMsg(),
                1);
            // 返回发送信息