| | |
| | | @ApiModelProperty("是否已删除") |
| | | private Integer isDeleted; |
| | | |
| | | /** |
| | | * 水库guid |
| | | */ |
| | | @ApiModelProperty("水库guid") |
| | | private String resGuid; |
| | | |
| | | /** |
| | | * 告警规则id |
| | | */ |
| | | private Long alarmRuleId; |
| | | |
| | | } |
| | |
| | | * 是否导出,不为空是导出,不分页 |
| | | */ |
| | | private Integer isExport; |
| | | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | private String startTime; |
| | | |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | private String endTime; |
| | | |
| | | /** |
| | | * 消息记录类型 1:短信 2:站内信 |
| | | */ |
| | | private String type; |
| | | |
| | | |
| | | /** |
| | | * 消息类型 |
| | | */ |
| | | private String smsType; |
| | | |
| | | /** |
| | | * 水库名称 |
| | | */ |
| | | private String resName; |
| | | |
| | | /** |
| | | * 规则名称 |
| | | */ |
| | | private String ruleName; |
| | | |
| | | /** |
| | | * 用户名 |
| | | */ |
| | | private String userName; |
| | | |
| | | } |
| | |
| | | private String executeTime; |
| | | |
| | | /** |
| | | * 任务最后修改时间 |
| | | */ |
| | | private String gmtModified; |
| | | |
| | | /** |
| | | * 被叫号码量 |
| | | */ |
| | | private String calleeNumberCount; |
| | |
| | | */ |
| | | private String source; |
| | | |
| | | /** |
| | | * 水库guid |
| | | */ |
| | | private String resGuid; |
| | | |
| | | /** |
| | | * 反馈 |
| | | */ |
| | | private String feedback; |
| | | |
| | | //是否异常 1是 2 否 |
| | | private String alertStatus; |
| | | /** |
| | | * 告警规则id |
| | | */ |
| | | private Long alarmRuleId; |
| | | |
| | | /** |
| | | * 告警模板id |
| | | */ |
| | | private String templateId; |
| | | |
| | | } |
| | |
| | | |
| | | // 保存告警记录信息 |
| | | AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list, alarmRule, uuid, remark); |
| | | if (null != alarmRecord) { |
| | | list.add(alarmRecord.getId().toString()); |
| | | } |
| | | // if (null != alarmRecord) { |
| | | // list.add(alarmRecord.getId().toString()); |
| | | list.add("445566544112"); |
| | | // } |
| | | } |
| | | if (!isTimeSend()) return map; |
| | | map = smsService.sendSignMsg(smsRequestTemplate); |
| | |
| | | //删除测值 |
| | | list.remove(3); |
| | | // 新增 |
| | | boolean save = alarmRecordService.save(alarm); |
| | | // boolean save = alarmRecordService.save(alarm); |
| | | // 删除测站编号 |
| | | list.remove(0); |
| | | if (save) { |
| | | return alarm; |
| | | } |
| | | // if (save) { |
| | | // return alarm; |
| | | // } |
| | | } |
| | | // 返回 |
| | | return null; |
| | |
| | | messageRecord.setSender(AuthUtil.getUserId().toString()); |
| | | messageRecord.setSource("智能告警"); |
| | | messageRecord.setStatus(0); |
| | | messageRecord.setAlarmRuleId(alarmRule.getId()); |
| | | messageRecord.setTemplateId(smsTemplate.getTemplateId()); |
| | | // 设置告警记录信息 |
| | | AlarmRecordDetail alarmRecordDetail = new AlarmRecordDetail(); |
| | | alarmRecordDetail.setReservoirNumber(list.get(0)); |
| | |
| | | messageRecord.setSource("智能告警"); |
| | | messageRecord.setStatus(0); |
| | | messageRecord.setRecipient(phone); |
| | | messageRecord.setTemplateId(smsTemplate.getTemplateId()); |
| | | messageRecord.setAlarmRuleId(alarmRule.getId()); |
| | | |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | |
| | | messageRecord.setSource("智能告警"); |
| | | messageRecord.setStatus(0); |
| | | messageRecord.setRecipient(phone); |
| | | messageRecord.setTemplateId(smsTemplate.getTemplateId()); |
| | | messageRecord.setAlarmRuleId(alarmRule.getId()); |
| | | |
| | | List<String> resCdList = new ArrayList<>(); |
| | | Map<String, List<Temp>> resCollect = temps.stream().collect(Collectors.groupingBy(Temp::getReservoirCode)); |
| | |
| | | messageRecord.setSource("智能告警"); |
| | | messageRecord.setStatus(0); |
| | | messageRecord.setRecipient(phone); |
| | | messageRecord.setTemplateId(smsTemplate.getTemplateId()); |
| | | messageRecord.setAlarmRuleId(alarmRule.getId()); |
| | | List<String> contentList = new ArrayList<>(); |
| | | //因为只能按编号分组,名称会有重复,所以拿第一条数据的名称就行 |
| | | temps.forEach(info -> { |
| | |
| | | // 遍历 |
| | | for (AlarmRuleDetail alarmRuleDetail : alarmRuleDetailList) { |
| | | if (alarmRuleDetail.getAlarmMode().equals("短信")) { |
| | | asyncNoticeHandle.waterFirstOverHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterFirstOverList, true, adCode, true); |
| | | asyncNoticeHandle.waterFirstOverHandle(alarmRule, alarmRuleDetail, ztData, ZtApiDataColumnConstant.waterFirstOverList, true, adCode, false); |
| | | } |
| | | } |
| | | } |
| | |
| | | // 记录发送记录操作 |
| | | SmsResult smsResult = smsService.saveSendResult(null,resultComResult.getCode().toString(),resultComResult.getMsg(),request, 1); |
| | | if (null != smsResult){ |
| | | smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId()); |
| | | smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId(),smsResult.getAlarmRuleId(),null); |
| | | } |
| | | // 返回发送信息 |
| | | return R.data(resultComResult); |
| | |
| | | // 记录发送记录操作 |
| | | SmsResult smsResult = smsService.saveSendResult(null,resultComResult.getCode().toString(),resultComResult.getMsg(),request, 1); |
| | | if (null != smsResult){ |
| | | smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId()); |
| | | smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId(),smsResult.getAlarmRuleId(),null); |
| | | } |
| | | // 保存验证码到 redis |
| | | saveCodeForRedis(request.getUserNumber(), randNumber); |
| | |
| | | return R.data(SmsRecord); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 自定义分页列表查询 |
| | | * @param query 分页查询对象 |
| | | * @param smsRecord |
| | | * @return |
| | | */ |
| | | @ApiOperation(value="短信发送记录-自定义分页列表查询", notes="短信发送记录-自定义分页列表查询") |
| | | @GetMapping(value = "/msgPage") |
| | | public R msgPage(SmsRecordVO smsRecord, Query query) { |
| | | return R.data(smsRecordService.msgPage(Condition.getPage(query), smsRecord)); |
| | | } |
| | | |
| | | } |
| | |
| | | // 记录发送记录操作 |
| | | SmsResult smsResult = smsService.saveSendResult(null,code,msg,request, number); |
| | | if (null != smsResult){ |
| | | smsService.saveSendRecord(request, code,msg,smsResult.getId()); |
| | | smsService.saveSendRecord(request, code,msg,smsResult.getId(),null,null); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | import cn.gistack.alerts.sms.entity.SmsRecord; |
| | | import cn.gistack.alerts.sms.vo.SmsRecordVO; |
| | | import com.baomidou.mybatisplus.annotation.InterceptorIgnore; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.apache.ibatis.annotations.Param; |
| | |
| | | * @return |
| | | */ |
| | | int batchSaveSendRecord(@Param("list") List<SmsRecord> list); |
| | | |
| | | /** |
| | | * 短信消息记录查询 |
| | | * @param page |
| | | * @param smsRecord |
| | | * @param list |
| | | * @return |
| | | */ |
| | | @InterceptorIgnore(tenantLine = "1") |
| | | List<SmsRecordVO> smsPage(IPage<SmsRecordVO> page, |
| | | @Param("smsRecord") SmsRecordVO smsRecord, |
| | | @Param("list") List<String> list); |
| | | |
| | | /** |
| | | * 站内信消息记录查询 |
| | | * @param page |
| | | * @param smsRecord |
| | | * @param list |
| | | * @return |
| | | */ |
| | | @InterceptorIgnore(tenantLine = "1") |
| | | List<SmsRecordVO> msgPage(IPage<SmsRecordVO> page, |
| | | @Param("smsRecord") SmsRecordVO smsRecord, |
| | | @Param("list") List<String> list); |
| | | |
| | | /** |
| | | * 短信和站内信消息记录查询 @InterceptorIgnore(tenantLine = "1") 等价 @SqlParser(filter = true)已过期 |
| | | * @param page |
| | | * @param smsRecord |
| | | * @param list |
| | | * @return |
| | | */ |
| | | @InterceptorIgnore(tenantLine = "1") |
| | | List<SmsRecordVO> smsAndMsgPage(IPage<SmsRecordVO> page, |
| | | @Param("smsRecord") SmsRecordVO smsRecord, |
| | | @Param("list") List<String> list); |
| | | } |
| | |
| | | </foreach> |
| | | </insert> |
| | | |
| | | |
| | | <!--站内信消息记录列表查询--> |
| | | <select id="msgPage" resultType="cn.gistack.alerts.sms.vo.SmsRecordVO"> |
| | | select |
| | | smr.id,smr.content,smr.create_time,'发送成功' as responseMsg,smr.template_id, |
| | | a."name" as resName, |
| | | bu.name as userName,bu.phone as tel, |
| | | 2 as type, |
| | | sar.rule_name as ruleName,sst.sms_type as smsType |
| | | from YWXT.sm_message_record smr |
| | | left join SJZT_MD."att_res_base" a on a."guid" = smr.res_guid |
| | | left join YWXT.blade_user bu on CAST(bu.id AS VARCHAR) = smr.recipient and bu.is_deleted = 0 |
| | | left join YWXT.sm_alarm_rule sar on sar.id = smr.alarm_rule_id |
| | | left join YWXT.sm_sms_template sst on sst.template_id = smr.template_id and sst.is_deleted = 0 |
| | | <where> |
| | | <if test="smsRecord.templateId!=null and smsRecord.templateId!=''"> |
| | | and smr.template_id = #{smsRecord.templateId} |
| | | </if> |
| | | <if test="smsRecord.smsType!=null and smsRecord.smsType!=''"> |
| | | and sst.sms_type = #{smsRecord.smsType} |
| | | </if> |
| | | <if test="smsRecord.tel!=null and smsRecord.tel!=''"> |
| | | and bu.phone = #{smsRecord.tel} |
| | | </if> |
| | | <if test="smsRecord.content!=null and smsRecord.content!=''"> |
| | | and smr.content like concat(concat('%',#{smsRecord.content}),'%') |
| | | </if> |
| | | <if test="smsRecord.userName!=null and smsRecord.userName!=''"> |
| | | and bu.name like concat(concat('%',#{smsRecord.userName}),'%') |
| | | </if> |
| | | <if test="smsRecord.resName!=null and smsRecord.resName!=''"> |
| | | and a.name like concat(concat('%',#{smsRecord.resName}),'%') |
| | | </if> |
| | | <if test="smsRecord.startTime!=null and smsRecord.startTime!=''"> |
| | | and DATE_FORMAT(smr.create_time,'%Y-%m-%d') >= #{smsRecord.startTime} |
| | | </if> |
| | | <if test="smsRecord.endTime!=null and smsRecord.endTime!=''"> |
| | | and DATE_FORMAT(smr.create_time,'%Y-%m-%d') <= #{smsRecord.endTime} |
| | | </if> |
| | | <if test="list!=null and list.size()>0"> |
| | | and smr.template_id in |
| | | <foreach collection="list" item="id" separator ="," open="(" close=")"> |
| | | #{id} |
| | | </foreach> |
| | | </if> |
| | | </where> |
| | | order by smr.id desc |
| | | </select> |
| | | |
| | | <!--短信消息记录列表查询--> |
| | | <select id="smsPage" resultType="cn.gistack.alerts.sms.vo.SmsRecordVO"> |
| | | select |
| | | ssr.id,ssr.tel,ssr.content,ssr.create_time,ssr.response_msg,ssr.template_id, |
| | | a."name" as resName, |
| | | bu.name as userName, |
| | | 1 as type, |
| | | sar.rule_name as ruleName,sst.sms_type as smsType |
| | | from YWXT.sm_sms_record ssr |
| | | left join SJZT_MD."att_res_base" a on a."guid" = ssr.res_guid |
| | | left join YWXT.blade_user bu on bu.account = ssr.tel and bu.is_deleted = 0 |
| | | left join YWXT.sm_alarm_rule sar on sar.id = ssr.alarm_rule_id |
| | | left join YWXT.sm_sms_template sst on sst.template_id = ssr.template_id and sst.is_deleted = 0 |
| | | <where> |
| | | <if test="smsRecord.templateId!=null and smsRecord.templateId!=''"> |
| | | and ssr.template_id = #{smsRecord.templateId} |
| | | </if> |
| | | <if test="smsRecord.smsType!=null and smsRecord.smsType!=''"> |
| | | and sst.sms_type = #{smsRecord.smsType} |
| | | </if> |
| | | <if test="smsRecord.tel!=null and smsRecord.tel!=''"> |
| | | and ssr.tel = #{smsRecord.tel} |
| | | </if> |
| | | <if test="smsRecord.content!=null and smsRecord.content!=''"> |
| | | and ssr.content like concat(concat('%',#{smsRecord.content}),'%') |
| | | </if> |
| | | <if test="smsRecord.userName!=null and smsRecord.userName!=''"> |
| | | and bu.name like concat(concat('%',#{smsRecord.userName}),'%') |
| | | </if> |
| | | <if test="smsRecord.resName!=null and smsRecord.resName!=''"> |
| | | and a.name like concat(concat('%',#{smsRecord.resName}),'%') |
| | | </if> |
| | | <if test="smsRecord.startTime!=null and smsRecord.startTime!=''"> |
| | | and DATE_FORMAT(ssr.create_time,'%Y-%m-%d') >= #{smsRecord.startTime} |
| | | </if> |
| | | <if test="smsRecord.endTime!=null and smsRecord.endTime!=''"> |
| | | and DATE_FORMAT(ssr.create_time,'%Y-%m-%d') <= #{smsRecord.endTime} |
| | | </if> |
| | | <if test="list!=null and list.size()>0"> |
| | | and ssr.template_id in |
| | | <foreach collection="list" item="id" separator="," open="(" close=")"> |
| | | #{id} |
| | | </foreach> |
| | | </if> |
| | | </where> |
| | | order by ssr.id desc |
| | | </select> |
| | | |
| | | |
| | | <!--短信和站内信消息记录列表查询--> |
| | | <select id="smsAndMsgPage" resultType="cn.gistack.alerts.sms.vo.SmsRecordVO"> |
| | | (select |
| | | ssr.id,ssr.tel,ssr.content,ssr.create_time,ssr.response_msg,ssr.template_id, |
| | | a."name" as resName, |
| | | bu.name as userName, |
| | | 1 as type, |
| | | sar.rule_name as ruleName,sst.sms_type as smsType |
| | | from YWXT.sm_sms_record ssr |
| | | left join SJZT_MD."att_res_base" a on a."guid" = ssr.res_guid |
| | | left join YWXT.blade_user bu on bu.account = ssr.tel and bu.is_deleted = 0 |
| | | left join YWXT.sm_alarm_rule sar on sar.id = ssr.alarm_rule_id |
| | | left join YWXT.sm_sms_template sst on sst.template_id = ssr.template_id and sst.is_deleted = 0 |
| | | <where> |
| | | <if test="smsRecord.templateId!=null and smsRecord.templateId!=''"> |
| | | and ssr.template_id = #{smsRecord.templateId} |
| | | </if> |
| | | <if test="smsRecord.smsType!=null and smsRecord.smsType!=''"> |
| | | and sst.sms_type = #{smsRecord.smsType} |
| | | </if> |
| | | <if test="smsRecord.tel!=null and smsRecord.tel!=''"> |
| | | and ssr.tel = #{smsRecord.tel} |
| | | </if> |
| | | <if test="smsRecord.content!=null and smsRecord.content!=''"> |
| | | and ssr.content like concat(concat('%',#{smsRecord.content}),'%') |
| | | </if> |
| | | <if test="smsRecord.userName!=null and smsRecord.userName!=''"> |
| | | and bu.name like concat(concat('%',#{smsRecord.userName}),'%') |
| | | </if> |
| | | <if test="smsRecord.resName!=null and smsRecord.resName!=''"> |
| | | and a.name like concat(concat('%',#{smsRecord.resName}),'%') |
| | | </if> |
| | | <if test="smsRecord.startTime!=null and smsRecord.startTime!=''"> |
| | | and DATE_FORMAT(ssr.create_time,'%Y-%m-%d') >= #{smsRecord.startTime} |
| | | </if> |
| | | <if test="smsRecord.endTime!=null and smsRecord.endTime!=''"> |
| | | and DATE_FORMAT(ssr.create_time,'%Y-%m-%d') <= #{smsRecord.endTime} |
| | | </if> |
| | | <if test="list!=null and list.size()>0"> |
| | | and ssr.template_id in |
| | | <foreach collection="list" item="id" separator="," open="(" close=")"> |
| | | #{id} |
| | | </foreach> |
| | | </if> |
| | | </where> |
| | | ) |
| | | union all |
| | | ( |
| | | select |
| | | smr.id,smr.content,smr.create_time,'发送成功' as responseMsg,smr.template_id, |
| | | a."name" as resName, |
| | | bu.name as userName,bu.phone as tel, |
| | | 2 as type, |
| | | sar.rule_name as ruleName,sst.sms_type as smsType |
| | | from YWXT.sm_message_record smr |
| | | left join SJZT_MD."att_res_base" a on a."guid" = smr.res_guid |
| | | left join YWXT.blade_user bu on CAST(bu.id AS VARCHAR) = smr.recipient and bu.is_deleted = 0 |
| | | left join YWXT.sm_alarm_rule sar on sar.id = smr.alarm_rule_id |
| | | left join YWXT.sm_sms_template sst on sst.template_id = smr.template_id and sst.is_deleted = 0 |
| | | <where> |
| | | <if test="smsRecord.templateId!=null and smsRecord.templateId!=''"> |
| | | and smr.template_id = #{smsRecord.templateId} |
| | | </if> |
| | | <if test="smsRecord.smsType!=null and smsRecord.smsType!=''"> |
| | | and sst.sms_type = #{smsRecord.smsType} |
| | | </if> |
| | | <if test="smsRecord.tel!=null and smsRecord.tel!=''"> |
| | | and bu.phone = #{smsRecord.tel} |
| | | </if> |
| | | <if test="smsRecord.content!=null and smsRecord.content!=''"> |
| | | and smr.content like concat(concat('%',#{smsRecord.content}),'%') |
| | | </if> |
| | | <if test="smsRecord.userName!=null and smsRecord.userName!=''"> |
| | | and bu.name like concat(concat('%',#{smsRecord.userName}),'%') |
| | | </if> |
| | | <if test="smsRecord.resName!=null and smsRecord.resName!=''"> |
| | | and a.name like concat(concat('%',#{smsRecord.resName}),'%') |
| | | </if> |
| | | <if test="smsRecord.startTime!=null and smsRecord.startTime!=''"> |
| | | and DATE_FORMAT(smr.create_time,'%Y-%m-%d') >= #{smsRecord.startTime} |
| | | </if> |
| | | <if test="smsRecord.endTime!=null and smsRecord.endTime!=''"> |
| | | and DATE_FORMAT(smr.create_time,'%Y-%m-%d') <= #{smsRecord.endTime} |
| | | </if> |
| | | <if test="list!=null and list.size()>0"> |
| | | and smr.template_id in |
| | | <foreach collection="list" item="id" separator ="," open="(" close=")"> |
| | | #{id} |
| | | </foreach> |
| | | </if> |
| | | </where> |
| | | ) |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | * @param list |
| | | */ |
| | | int batchSaveSendRecord(List<SmsRecord> list); |
| | | |
| | | /** |
| | | * 自定义分页列表查询 |
| | | * @param page 分页查询对象 |
| | | * @param smsRecord |
| | | * @return |
| | | */ |
| | | Object msgPage(IPage<SmsRecordVO> page, SmsRecordVO smsRecord); |
| | | } |
| | |
| | | * @param code |
| | | * @param sendMsg |
| | | * @param resultId |
| | | * @param alarmRuleId |
| | | * @param resGuid |
| | | * @return |
| | | */ |
| | | SmsRecord saveSendRecord(SMSSendRequest request,String code, String sendMsg, Long resultId); |
| | | SmsRecord saveSendRecord(SMSSendRequest request,String code, String sendMsg, Long resultId,Long alarmRuleId,String resGuid); |
| | | |
| | | /** |
| | | * 发送降雨短信 |
| | |
| | | package cn.gistack.alerts.sms.service.impl; |
| | | |
| | | import cn.gistack.alerts.alarmRule.service.AlarmRuleService; |
| | | import cn.gistack.alerts.sms.entity.SmsRecord; |
| | | import cn.gistack.alerts.sms.mapper.SmsRecordMapper; |
| | | import cn.gistack.alerts.sms.service.ISmsRecordService; |
| | | import cn.gistack.alerts.sms.vo.SmsRecordVO; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.apache.logging.log4j.util.Strings; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Service |
| | | public class SmsRecordServiceImpl extends ServiceImpl<SmsRecordMapper, SmsRecord> implements ISmsRecordService { |
| | | |
| | | @Autowired |
| | | private AlarmRuleService alarmRuleService; |
| | | |
| | | /** |
| | | * 自定义分页列表查询 |
| | |
| | | public int batchSaveSendRecord(List<SmsRecord> list) { |
| | | return baseMapper.batchSaveSendRecord(list); |
| | | } |
| | | |
| | | /** |
| | | * 自定义分页列表查询 |
| | | * @param page 分页查询对象 |
| | | * @param smsRecord |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Object msgPage(IPage<SmsRecordVO> page, SmsRecordVO smsRecord) { |
| | | List<String> list = new ArrayList<>(); |
| | | // 判断是否为一级目录 |
| | | if (null!=smsRecord.getSmsType() && smsRecord.getSmsType().length()>1){ |
| | | // 查询对应的短信模板ID 集合 |
| | | list = alarmRuleService.getAlarmRuleDetailList(smsRecord.getSmsType()); |
| | | // 设置类型为null |
| | | smsRecord.setSmsType(""); |
| | | } |
| | | if (!Strings.isBlank(smsRecord.getType()) && smsRecord.getType().equals("1")){ |
| | | // 查询短信 |
| | | return page.setRecords(baseMapper.smsPage(page,smsRecord,list)); |
| | | } |
| | | if (!Strings.isBlank(smsRecord.getType()) && smsRecord.getType().equals("2")){ |
| | | // 查询站内信 |
| | | return page.setRecords(baseMapper.msgPage(page,smsRecord,list)); |
| | | } |
| | | // 查询全部返回 |
| | | return page.setRecords(baseMapper.smsAndMsgPage(page,smsRecord,list)); |
| | | } |
| | | } |
| | |
| | | |
| | | import cn.com.flaginfo.sdk.cmc.api.result.ComResult; |
| | | import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSSendDataResult; |
| | | import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSSendRequest; |
| | | import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendDataResult; |
| | | import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest; |
| | | import cn.gistack.alerts.alarmRule.entity.AlarmRecordDetail; |
| | |
| | | import cn.gistack.alerts.sms.vo.SmsResponseVO; |
| | | import cn.gistack.alerts.sms.vo.Temp; |
| | | import cn.gistack.sm.intelligentCall.entity.CallNotFillRecord; |
| | | import cn.gistack.sm.intelligentCall.excel.CallExcel; |
| | | import cn.gistack.sm.intelligentCall.feign.OutCallClient; |
| | | import cn.gistack.sm.message.entity.MessageRecord; |
| | | import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
| | | import com.google.common.collect.Lists; |
| | | import com.google.common.collect.Sets; |
| | | import org.apache.logging.log4j.util.Strings; |
| | | import org.jetbrains.annotations.NotNull; |
| | | import org.springblade.core.redis.cache.BladeRedis; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.lang.reflect.Array; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | ComResult<SMSSendDataResult> result = SmsUtils.sendMsg(request); |
| | | if(null != smsResult) { |
| | | // 保存记录 |
| | | saveSendRecord(request, result.getCode().toString(), result.getMsg(), smsResult.getId()); |
| | | saveSendRecord(request, result.getCode().toString(), result.getMsg(), smsResult.getId(),null,null); |
| | | } |
| | | list.add(result); |
| | | } |
| | |
| | | messageRecord.setSender(AuthUtil.getUserId().toString()); |
| | | messageRecord.setSource("智能告警"); |
| | | messageRecord.setStatus(0); |
| | | messageRecord.setTemplateId(smsTemplate.getTemplateId()); |
| | | messageRecord.setAlarmRuleId(alarmRule.getId()); |
| | | // 设置告警记录信息 |
| | | AlarmRecordDetail alarmRecordDetail = new AlarmRecordDetail(); |
| | | alarmRecordDetail.setReservoirNumber(list.get(0)); |
| | |
| | | messageRecord.setContent(format); |
| | | messageRecordList.add(messageRecord); |
| | | // 保存短信发送记录 |
| | | smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId()); |
| | | smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId(),alarmRule.getId(),alarmRecordDetail.getReservoirNumber()); |
| | | if (null != smsRecord) { |
| | | alarmRecordDetail.setAlarmContent(format); |
| | | alarmRecordDetail.setSendRecordId(smsRecord.getId()); |
| | |
| | | * @param request |
| | | * @param code 响应code |
| | | * @param sendMsg 响应消息 |
| | | * @param resultId |
| | | * @param resultId 短信发送结果id |
| | | * @param alarmRuleId 告警规则id |
| | | * @param resGuid 水库guid |
| | | */ |
| | | @Override |
| | | public SmsRecord saveSendRecord(SMSSendRequest request, String code, String sendMsg, Long resultId) { |
| | | public SmsRecord saveSendRecord(SMSSendRequest request, |
| | | String code, |
| | | String sendMsg, |
| | | Long resultId, |
| | | Long alarmRuleId, |
| | | String resGuid |
| | | ) { |
| | | // 在保存明细 |
| | | SmsRecord smsRecord = new SmsRecord(); |
| | | smsRecord.setTel(request.getUserNumber()); |
| | |
| | | smsRecord.setResultId(resultId); |
| | | smsRecord.setResponseStatus(code); |
| | | smsRecord.setResponseMsg(sendMsg); |
| | | smsRecord.setResGuid(resGuid); |
| | | smsRecord.setAlarmRuleId(alarmRuleId); |
| | | //插入记录 |
| | | smsRecordService.save(smsRecord); |
| | | // 返回 |
| | |
| | | List<List<Temp>> lists = Lists.partition(new ArrayList<>(temps), 30); |
| | | for (List<Temp> list : lists) { |
| | | List<AlarmRecordDetailVO> alarmRecordDetailList = new ArrayList<>(); |
| | | List<String> resGuidList = new ArrayList<>(); |
| | | // 遍历 |
| | | for (Temp temp : list) { |
| | | resGuidList.add(temp.getReservoirCode()); |
| | | builder.append(temp.getReservoirName()).append(","); |
| | | smsRecordBuilder.append(temp.getReservoirName()).append(","); |
| | | AlarmRecordDetailVO alarmRecordDetail = new AlarmRecordDetailVO(); |
| | |
| | | // 设置内容 |
| | | request.setMessageContent(format); |
| | | // 保存短信发送记录 |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId()); |
| | | String resGuid = resGuidList.size()>0?Strings.join(resGuidList,','):""; |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId(),smsResult.getAlarmRuleId(),resGuid); |
| | | //保存告警记录详情信息 |
| | | if (null != smsRecord) { |
| | | List<AlarmRecordDetail> alarmRecordDetailArrayList = new ArrayList<>(); |
| | |
| | | List<List<Temp>> lists = Lists.partition(new ArrayList<>(infoList), 30); |
| | | for (List<Temp> list : lists) { |
| | | List<AlarmRecordDetailVO> alarmRecordDetailList = new ArrayList<>(); |
| | | List<String> resGuidList = new ArrayList<>(); |
| | | // 遍历 |
| | | for (Temp temp : list) { |
| | | resGuidList.add(temp.getReservoirCode()); |
| | | builder.append(temp.getReservoirName()+"("+temp.getCdNm() +")").append(","); |
| | | smsRecordBuilder.append(temp.getReservoirName()+"("+temp.getCdNm() +")").append(","); |
| | | AlarmRecordDetailVO alarmRecordDetail = new AlarmRecordDetailVO(); |
| | |
| | | String format = String.format(str, substring.split(",")); |
| | | // 设置内容 |
| | | request.setMessageContent(format); |
| | | String resGuid = resGuidList.size()>0? Strings.join(resGuidList,','):""; |
| | | // 保存短信发送记录 |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId()); |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId(),smsResult.getAlarmRuleId(),resGuid); |
| | | //保存告警记录详情信息 |
| | | if (null != smsRecord) { |
| | | List<AlarmRecordDetail> alarmRecordDetailArrayList = new ArrayList<>(); |
| | |
| | | }); |
| | | |
| | | |
| | | // 如果一人对应水库数量超过30个,则分批发送 |
| | | // 如果一人对应水库数量超过15个,则分批发送 |
| | | List<List<Temp>> lists = Lists.partition(new ArrayList<>(infoList), 15); |
| | | for (List<Temp> list : lists) { |
| | | List<String> resGuidList = new ArrayList<>(); |
| | | List<AlarmRecordDetailVO> alarmRecordDetailList = new ArrayList<>(); |
| | | // 遍历 |
| | | for (Temp temp : list) { |
| | | resGuidList.add(temp.getReservoirCode()); |
| | | builder.append(temp.getReservoirName()+"("+temp.getCdNm() +")").append(","); |
| | | smsRecordBuilder.append(temp.getReservoirName()+"("+temp.getCdNm() +")").append(","); |
| | | AlarmRecordDetailVO alarmRecordDetail = new AlarmRecordDetailVO(); |
| | |
| | | String format = String.format(str, substring.split(",")); |
| | | // 设置内容 |
| | | request.setMessageContent(format); |
| | | // 转resGuid |
| | | String resGuid = resGuidList.size()>0? Strings.join(resGuidList,','):""; |
| | | // 保存短信发送记录 |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId()); |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId(),smsResult.getAlarmRuleId(),resGuid); |
| | | //保存告警记录详情信息 |
| | | if (null != smsRecord) { |
| | | List<AlarmRecordDetail> alarmRecordDetailArrayList = new ArrayList<>(); |
| | |
| | | // 设置内容 |
| | | request.setMessageContent(formatContent); |
| | | // 保存短信发送记录 |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId()); |
| | | SmsRecord smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId(),smsResult.getAlarmRuleId(),null); |
| | | AlarmRecordDetail alarmRecordDetail1 = new AlarmRecordDetail(); |
| | | // 短信内容拼接(完成发送的结果信息) |
| | | alarmRecordDetail1.setAlarmContent(formatContent); |
| | |
| | | date_format(ct."gmt_create",'%Y-%m-%d %H:%i:%s') as createTime, |
| | | ct."task_status" as taskStatus, |
| | | date_format(ct."task_schedule_time",'%Y-%m-%d %H:%i:%s') as executeTime, |
| | | date_format(ct."gmt_modified",'%Y-%m-%d %H:%i:%s') as gmtModified, |
| | | ctr."calling_number" as callingNumber, |
| | | ctra."callee_number_count" as calleeNumberCount, |
| | | if(ifnull(scnfr.task_id,0)='0',ctra."connection_count",(ctra."connection_count"+scnfr.num)) as connectionCount, |