短信导入发送数据返回提示修改,告警短信发送修改(新增市县水利部人员查询并放入短信中)
20 files modified
1 files added
| | |
| | | package cn.gistack.alerts.notice.feign; |
| | | |
| | | import feign.Request; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 告警 feign 远程调用 |
| | |
| | | |
| | | /** |
| | | * 发送告警通知 |
| | | * @param options 单独超时时间设置 |
| | | * @param name |
| | | * @param content |
| | | * @param type |
| | | * @return |
| | | */ |
| | | @GetMapping(CREATE_ALARM_NOTICE_TASK_JOB_HANDLER) |
| | | String createAlarmNoticeTaskJobHandler(@RequestParam("name") String name, |
| | | void createAlarmNoticeTaskJobHandler(@RequestParam("name") String name, |
| | | @RequestParam("content") String content, |
| | | @RequestParam("title") String type); |
| | | |
| | |
| | | package cn.gistack.alerts.notice.feign; |
| | | |
| | | import feign.Request; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | |
| | | public class NoticeClientFallBack implements NoticeClient { |
| | | |
| | | @Override |
| | | public String createAlarmNoticeTaskJobHandler(String name, String content, String type) { |
| | | return null; |
| | | public void createAlarmNoticeTaskJobHandler(String name, String content, String type) { |
| | | } |
| | | } |
| | |
| | | String SYNCHARONIZATION_ADD_USER = API_PREFIX + "/synchronizationAddUser"; |
| | | String SYNCHARONIZATION_UPDATE_USER = API_PREFIX + "/synchronizationUpdateUser"; |
| | | String GET_PERSON_LIST_BY_WATER_CODE_LIST = API_PREFIX + "/getPersonListByWaterCodeList"; |
| | | String GET_CITY_COUNTY_PERSONG_LIST_BY_RES_GUID = API_PREFIX + "/getCityCountyPersonListByResGuid"; |
| | | |
| | | @GetMapping(QUERY_LIST_BY_PHONE) |
| | | R queryListByPhone(@RequestParam("userPhone") String userPhone); |
| | |
| | | */ |
| | | @PostMapping(GET_PERSON_LIST_BY_WATER_CODE_LIST) |
| | | Set<String> getPersonListByWaterCodeList(@RequestBody List<String> list); |
| | | |
| | | /** |
| | | * 根据水库编号查询市县水利部人员姓名及联系方式 |
| | | * @param res_cd 水库编号 |
| | | * @return |
| | | */ |
| | | @GetMapping(GET_CITY_COUNTY_PERSONG_LIST_BY_RES_GUID) |
| | | List<PersonVO> getCityCountyPersonListByResGuid(@RequestParam("res_cd") String res_cd); |
| | | } |
| | |
| | | public Set<String> getPersonListByWaterCodeList(List<String> list) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<PersonVO> getCityCountyPersonListByResGuid(String res_cd) { |
| | | return null; |
| | | } |
| | | } |
| | |
| | | package cn.gistack.alerts.notice.feign; |
| | | |
| | | import cn.gistack.alerts.notice.strategy.NoticeStrategyContext; |
| | | import feign.Request; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springblade.core.tenant.annotation.NonDS; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | |
| | | */ |
| | | @GetMapping(CREATE_ALARM_NOTICE_TASK_JOB_HANDLER) |
| | | @Override |
| | | public String createAlarmNoticeTaskJobHandler(String name, String content, String type) { |
| | | return applicationContext.doSomethingByStrategy(name, content, type); |
| | | public void createAlarmNoticeTaskJobHandler(String name, String content, String type) { |
| | | applicationContext.doSomethingByStrategy(name, content, type); |
| | | } |
| | | } |
| | |
| | | private void addPatrolTechnologyInfo(List<String> list) { |
| | | // 查询巡查责任人姓名,技术责任人姓名信息 |
| | | 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 (personVOList.size()>0) { |
| | | String xczrr = ""; |
| | | String jszrr = ""; |
| | | for (PersonVO personVO : personVOList) { |
| | | if (personVO.getType().equals("5")) { |
| | | xczrr = personVO.getName(); |
| | | } |
| | | if (personVO.getType().equals("4")) { |
| | | jszrr = personVO.getName(); |
| | | } |
| | | } |
| | | if (personVO.getType().equals("4")){ |
| | | jszrr = personVO.getName(); |
| | | } |
| | | // 巡查责任人姓名 |
| | | list.add(xczrr); |
| | | // 技术责任人姓名 |
| | | list.add(jszrr); |
| | | }else { |
| | | // 巡查责任人姓名 |
| | | list.add("?"); |
| | | // 技术责任人姓名 |
| | | list.add("?"); |
| | | } |
| | | // 巡查责任人姓名 |
| | | list.add(xczrr); |
| | | // 技术责任人姓名 |
| | | list.add(jszrr); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 拼接市县水利部人员姓名及联系方式 |
| | | * @param list |
| | | */ |
| | | private void addCityCountyBusinessPersonInfo(List<String> list) { |
| | | // 根据水库编号查询市县水利部人员姓名及联系方式 |
| | | List<PersonVO> personVOList = attResManagePersonClient.getCityCountyPersonListByResGuid(list.get(0)); |
| | | if (personVOList.size()>0){ |
| | | // 如果没有找到人员? |
| | | StringBuilder builder = new StringBuilder(); |
| | | for (PersonVO personVO : personVOList) { |
| | | builder.append(personVO.getName()).append(":").append(personVO.getPhone()).append(","); |
| | | } |
| | | // 拼接水利部人员信息 |
| | | list.add(builder.substring(0,builder.length()-1)); |
| | | }else { |
| | | list.add("?"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | for (List<String> list : smsRequestTemplate.getTemplateContent()) { |
| | | // 依次拼接巡查责任人,技术责任人姓名 |
| | | addPatrolTechnologyInfo(list); |
| | | // 拼接市县水利部人员姓名及联系方式 |
| | | addCityCountyBusinessPersonInfo(list); |
| | | // 保存告警记录信息 |
| | | AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule); |
| | | if (null != alarmRecord) { |
| | | list.add(alarmRecord.getId().toString()); |
| | | // list.add("999"); |
| | | } |
| | | } |
| | | // 调用短信服务 |
| | |
| | | return "水位初次超汛限告警"; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 策略7: 水位小幅超汛限告警 |
| | | * |
| | |
| | | if(validatePhone(request.getUserNumber())) { |
| | | // 发送操作 |
| | | ComResult<SMSSendDataResult> resultComResult = SmsUtils.sendMsg(request); |
| | | SmsResponseVO smsResponse = new SmsResponseVO(); |
| | | smsResponse.setCode(resultComResult.getCode().toString()); |
| | | smsResponse.setMsg(resultComResult.getMsg()); |
| | | // 记录发送记录操作 |
| | | SmsResult smsResult = smsService.saveSendResult(smsResponse,request, 1); |
| | | SmsResult smsResult = smsService.saveSendResult(resultComResult.getCode().toString(),resultComResult.getMsg(),request, 1); |
| | | if (null != smsResult){ |
| | | smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId()); |
| | | } |
| | |
| | | request.setTemplateId(templateId); |
| | | // 发送操作 |
| | | ComResult<SMSSendDataResult> resultComResult = SmsUtils.sendMsg(request); |
| | | SmsResponseVO smsResponse = new SmsResponseVO(); |
| | | smsResponse.setCode(resultComResult.getCode().toString()); |
| | | smsResponse.setMsg(resultComResult.getMsg()); |
| | | // 记录发送记录操作 |
| | | SmsResult smsResult = smsService.saveSendResult(smsResponse,request, 1); |
| | | SmsResult smsResult = smsService.saveSendResult(resultComResult.getCode().toString(),resultComResult.getMsg(),request, 1); |
| | | if (null != smsResult){ |
| | | smsService.saveSendRecord(request, resultComResult.getCode().toString(),resultComResult.getMsg(),smsResult.getId()); |
| | | } |
| | |
| | | request.setUserNumber(userNumber); |
| | | request.setTemplateId(templateId); |
| | | request.setMessageContent(messageContent); |
| | | SmsResponseVO smsResponse = new SmsResponseVO(); |
| | | smsResponse.setCode(code); |
| | | smsResponse.setMsg(msg); |
| | | // 记录发送记录操作 |
| | | SmsResult smsResult = smsService.saveSendResult(smsResponse,request, number); |
| | | SmsResult smsResult = smsService.saveSendResult(code,msg,request, number); |
| | | if (null != smsResult){ |
| | | smsService.saveSendRecord(request, code,msg,smsResult.getId()); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 保存短信发送结果 |
| | | * @param smsResponse |
| | | * @param code |
| | | * @param msg |
| | | * @param request |
| | | * @param number |
| | | * @return |
| | | */ |
| | | SmsResult saveSendResult(SmsResponseVO smsResponse, SMSSendRequest request, Integer number); |
| | | SmsResult saveSendResult(String code,String msg, SMSSendRequest request, Integer number); |
| | | |
| | | /** |
| | | * 短信发送记录保存 |
| | |
| | | List<ComResult<SMSSendDataResult>> list = new ArrayList<>(); |
| | | if (phoneNumbers.size()>0){ |
| | | // 先保存结果记录 |
| | | SmsResult smsResult = saveSendResult(null,request, phoneNumbers.size()); |
| | | SmsResult smsResult = saveSendResult(null,null,request, phoneNumbers.size()); |
| | | // 遍历发送 |
| | | for (String phone : phoneNumbers) { |
| | | request.setUserNumber(phone); |
| | |
| | | request.setTemplateId(smsTemplate.getTemplateId()); |
| | | List<List<String>> templateContent = smsRequestTemplate.getTemplateContent(); |
| | | // 先保存结果记录 |
| | | SmsResult smsResult = saveSendResult(null,request, templateContent.size()); |
| | | SmsResult smsResult = saveSendResult(null,null,request, templateContent.size()); |
| | | List<SmsRecord> smsRecordList = new ArrayList<>(); |
| | | // 遍历处理 |
| | | for (List<String> list : templateContent) { |
| | |
| | | String format = String.format(s, list.toArray()); |
| | | // 设置内容 |
| | | request.setMessageContent(format); |
| | | // 保存记录 |
| | | // 保存短信发送记录 |
| | | smsRecord = saveSendRecord(request, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId()); |
| | | if (null != smsRecord){ |
| | | alarmRecordDetail.setAlarmContent(format); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 发送 具名 变量模板短信(告警定制) |
| | | * @param smsRequestTemplate |
| | | * @return |
| | | */ |
| | | // @Override |
| | | // public Map<String, Object> sendSignMsg(SmsRequestTemplate smsRequestTemplate) { |
| | | // // 取出数据 |
| | | // SMSSendRequest request = new SMSSendRequest(); |
| | | // SmsTemplate smsTemplate = smsRequestTemplate.getSmsTemplate(); |
| | | // request.setTemplateId(smsTemplate.getTemplateId()); |
| | | // // 批量发送短信 |
| | | // Map<String, Object> map = batchSendAlertsSms(smsRequestTemplate.getSmsTemplate(), smsRequestTemplate.getTemplateContent()); |
| | | // int count = Integer.parseInt(map.get("errCount").toString()); |
| | | // ComResult<DynSMSSendDataResult> resultComResult =(ComResult<DynSMSSendDataResult>) map.get("resultComResult"); |
| | | // // 保存短信结果记录 |
| | | // SmsResult smsResult = saveSendResult(resultComResult.getCode().toString(),resultComResult.getMsg(),request, smsRequestTemplate.getTemplateContent().size()-count); |
| | | // // 保存详情记录(短信详情,告警详情) |
| | | //// List<SmsRecord> smsRecordList = saveAlertsAndSmsDetail(smsResult,resultComResult,smsRequestTemplate.getSmsTemplate(), smsRequestTemplate.getTemplateContent(),request); |
| | | // // 设置返回数据 |
| | | // Map<String, Object> params = new HashMap<>(2); |
| | | //// params.put("smsRecord",smsRecordList.size()); |
| | | // // 返回 |
| | | // return params; |
| | | // } |
| | | |
| | | /** |
| | | * 保存详情记录(短信详情,告警详情) |
| | | * @param smsResult |
| | | * @param resultComResult |
| | | * @param smsTemplate |
| | | * @param templateContent |
| | | * @param request |
| | | * @return |
| | | */ |
| | | private List<SmsRecord> saveAlertsAndSmsDetail(SmsResult smsResult, |
| | | ComResult<DynSMSSendDataResult> resultComResult, |
| | | SmsTemplate smsTemplate, |
| | | List<List<String>> templateContent, |
| | | SMSSendRequest request) { |
| | | 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("短信"); |
| | | // 删除 最后一个 告警记录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, resultComResult.getCode().toString(), resultComResult.getMsg(), smsResult.getId()); |
| | | if (null != smsRecord){ |
| | | alarmRecordDetail.setAlarmContent(format); |
| | | alarmRecordDetail.setSendRecordId(smsRecord.getId()); |
| | | alarmRecordDetail.setCreateTime(new Date()); |
| | | // 保存告警记录详情信息 |
| | | boolean save = alarmRecordDetailService.save(alarmRecordDetail); |
| | | } |
| | | } |
| | | smsRecordList.add(smsRecord); |
| | | } |
| | | // 返回 |
| | | return smsRecordList; |
| | | } |
| | | |
| | | /** |
| | | * 批量发送告警短信 |
| | | * @param smsTemplate |
| | | * @param templateContent |
| | | */ |
| | | private Map<String, Object> batchSendAlertsSms(SmsTemplate smsTemplate, List<List<String>> templateContent) { |
| | | Map<String, Object> map = new HashMap<>(2); |
| | | int count = 0; |
| | | StringBuilder builder = new StringBuilder(); |
| | | // 拼接短信标题数组 |
| | | String [] titleArr = getSmsTitleArr(smsTemplate); |
| | | // 遍历,拼接短信 |
| | | for (List<String> list : templateContent) { |
| | | // 删除 最后一个 告警记录id |
| | | list.remove(list.size() - 1); |
| | | // 删除 0 水库编码 |
| | | list.remove(0); |
| | | String join = String.join(",", list); |
| | | // 转换,校验手机号码 |
| | | if (validator(list.get(0))){ |
| | | builder.append(join).append(";"); |
| | | }else { |
| | | count++; |
| | | } |
| | | } |
| | | String datas = builder.toString(); |
| | | String[] rows = datas.split(";"); |
| | | String[][] dyns = new String[rows.length + 1][titleArr.length]; |
| | | dyns[0] = titleArr; |
| | | int rowNum = 1; |
| | | for (String row : rows) { |
| | | String[] cols = row.split(","); |
| | | dyns[rowNum++] = cols; |
| | | } |
| | | //请求参数 |
| | | ComResult<DynSMSSendDataResult> resultComResult = sendDynSMSSendDataResultComResult(smsTemplate.getTemplateId(), dyns); |
| | | map.put("resultComResult",resultComResult); |
| | | map.put("errCount",count); |
| | | //返回 |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * 保存站内信记录信息 |
| | | * @param smsRequestTemplate |
| | | * @return |
| | |
| | | request.setTemplateId(smsTemplate.getTemplateId()); |
| | | List<List<String>> templateContent = smsRequestTemplate.getTemplateContent(); |
| | | // 先保存结果记录 |
| | | SmsResult smsResult = saveSendResult(null,request, templateContent.size()); |
| | | SmsResult smsResult = saveSendResult(null,null,request, templateContent.size()); |
| | | List<SmsRecord> smsRecordList = new ArrayList<>(); |
| | | // 遍历处理 |
| | | for (List<String> list : templateContent) { |
| | |
| | | |
| | | /** |
| | | * 发送记录保存 |
| | | * @param smsResponse 响应消息 |
| | | * @param code 响应消息cdoe |
| | | * @param msg 响应消息 |
| | | * @param request 发送信息 |
| | | * @param number 号码个数 |
| | | */ |
| | | @Override |
| | | public SmsResult saveSendResult(SmsResponseVO smsResponse, SMSSendRequest request, Integer number) { |
| | | public SmsResult saveSendResult(String code,String msg, SMSSendRequest request, Integer number) { |
| | | // 先保存结果表 |
| | | SmsResult smsResult = new SmsResult(); |
| | | smsResult.setTemplateId(request.getTemplateId()); |
| | | smsResult.setContent(request.getMessageContent()); |
| | | smsResult.setNumber(number); |
| | | if (null!= smsResponse) { |
| | | smsResult.setResCode(smsResponse.getCode()); |
| | | smsResult.setResMsg(smsResponse.getMsg()); |
| | | } |
| | | smsResult.setResCode(code); |
| | | smsResult.setResMsg(msg); |
| | | //插入记录 |
| | | boolean save = smsResultService.save(smsResult); |
| | | if (save){ |
| | |
| | | dyns[rowNum++] = cols; |
| | | } |
| | | ComResult<DynSMSSendDataResult> resultComResult = sendDynSMSSendDataResultComResult(templateId, dyns); |
| | | SmsResponseVO smsResponse = new SmsResponseVO(); |
| | | smsResponse.setCode(resultComResult.getCode().toString()); |
| | | smsResponse.setMsg(resultComResult.getMsg()); |
| | | SmsResult smsResult = getSaveSmsResult(smsResponse,templateId, rows, ""); |
| | | SmsResult smsResult = getSaveSmsResult(resultComResult.getCode().toString(),resultComResult.getMsg(),templateId, rows); |
| | | if (null != smsResult) { |
| | | List<SmsRecord> smsRecordList = new ArrayList<>(); |
| | | Pattern compile = Pattern.compile("[^0-9]"); |
| | |
| | | |
| | | /** |
| | | * 保存短信发送结果 |
| | | * @param smsResponse |
| | | * @param code |
| | | * @param msg |
| | | * @param templateId |
| | | * @param rows |
| | | * @param content |
| | | * @return |
| | | */ |
| | | private SmsResult getSaveSmsResult(SmsResponseVO smsResponse,String templateId, String[] rows, String content) { |
| | | private SmsResult getSaveSmsResult(String code,String msg,String templateId, String[] rows) { |
| | | SMSSendRequest request = new SMSSendRequest(); |
| | | request.setTemplateId(templateId); |
| | | request.setMessageContent(content); |
| | | request.setUserNumber(""); |
| | | // 先保存结果记录 |
| | | return saveSendResult(smsResponse,request, rows.length); |
| | | return saveSendResult(code,msg,request, rows.length); |
| | | } |
| | | |
| | | /** |
| | |
| | | ComResult<DynSMSSendDataResult> resultComResult = (ComResult<DynSMSSendDataResult>)batchSendSmsMap.get("resultComResult"); |
| | | errPhones = (List<String>) batchSendSmsMap.get("errPhones"); |
| | | // 计算差值 |
| | | Integer diff = size - errPhones.size(); |
| | | Integer diff = personList.size() - errPhones.size(); |
| | | if (resultComResult.getCode()==0){ |
| | | String successMsg = "发送成功!共导入水库个数 "+ size +" 个,其中发送号码 "+ diff + " 个。"; |
| | | // 返回 |
| | |
| | | String[] cols = row.split(","); |
| | | dyns[rowNum++] = cols; |
| | | } |
| | | //请求参数 |
| | | //请求发送短信 |
| | | ComResult<DynSMSSendDataResult> resultComResult = sendDynSMSSendDataResultComResult(smsTemplate.getTemplateId(), dyns); |
| | | SmsResponseVO smsResponse = new SmsResponseVO(); |
| | | smsResponse.setCode(resultComResult.getCode().toString()); |
| | | smsResponse.setMsg(resultComResult.getMsg()); |
| | | SmsResult smsResult = getSaveSmsResult(smsResponse,smsTemplate.getTemplateId(), rows, ""); |
| | | // 保存发送结果 |
| | | SmsResult smsResult = getSaveSmsResult(resultComResult.getCode().toString(),resultComResult.getMsg(),smsTemplate.getTemplateId(), rows); |
| | | // 异步记录发送记录 |
| | | asyncService.batchSaveSendRecord(smsResult,rows,smsTemplate,resultComResult); |
| | | // 返回 |
| | |
| | | public Set<String> getPersonListByWaterCodeList(List<String> list) { |
| | | return attResManagePersonService.getPersonListByWaterCodeList(list); |
| | | } |
| | | |
| | | /** |
| | | * 根据水库编号查询市县水利部人员姓名及联系方式 |
| | | * @param res_cd 水库编号 |
| | | * @return |
| | | */ |
| | | @Override |
| | | @GetMapping(GET_CITY_COUNTY_PERSONG_LIST_BY_RES_GUID) |
| | | public List<PersonVO> getCityCountyPersonListByResGuid(String res_cd) { |
| | | return attResManagePersonService.getCityCountyPersonListByResGuid(res_cd); |
| | | } |
| | | } |
| | |
| | | |
| | | import cn.gistack.sm.sjztmd.dto.AttResBaseUserDTO; |
| | | import cn.gistack.sm.sjztmd.entity.AttResBase; |
| | | import cn.gistack.sm.sjztmd.vo.AttResBaseVO; |
| | | import cn.gistack.sm.sjztmd.vo.ManagePersonVO; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | |
| | | Boolean updateResBaseByGuid(@Param("attResBase") AttResBase attResBase); |
| | | |
| | | /** |
| | | * 查询当前水库对应的市级编号和县区编号 |
| | | * @param res_cd |
| | | * @return |
| | | */ |
| | | AttResBaseVO getCityCountyCodeByResGuid(@Param("guid") String res_cd); |
| | | } |
| | |
| | | WHERE "guid" = #{attResBase.guid} |
| | | </update> |
| | | |
| | | <!--查询当前水库对应的市级编号和县区编号--> |
| | | <select id="getCityCountyCodeByResGuid" resultType="cn.gistack.sm.sjztmd.vo.AttResBaseVO"> |
| | | SELECT |
| | | case when b."ad_grad" = 3 THEN b."ad_code" |
| | | when c."ad_grad" = 3 THEN c."ad_code" END AS countyCode, |
| | | case when b."ad_grad" = 2 THEN b."ad_code" |
| | | when c."ad_grad" = 2 THEN c."ad_code" |
| | | ELSE d."ad_code" END AS cityCode |
| | | FROM sjzt_md."att_res_base" a |
| | | LEFT JOIN sjzt_md."att_ad_base" b ON a."interior_ad_guid" = b."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 a."guid" = #{guid} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | */ |
| | | @DS("zt") |
| | | Set<String> getPersonListByWaterCodeList(@Param("list") List<String> list); |
| | | |
| | | /** |
| | | * 根据水库编号查询市县水利部人员姓名及联系方式 |
| | | * @param res_cd 水库编号 |
| | | * @param roleAlias 角色别名 |
| | | * @param type 人员类型 |
| | | * @return |
| | | */ |
| | | List<PersonVO> getCityCountyPersonListByResGuid(@Param("adCode") String res_cd, |
| | | @Param("roleAlias") String roleAlias, |
| | | @Param("type") String type); |
| | | } |
| | |
| | | group by b."user_phone" |
| | | </select> |
| | | |
| | | <!--根据水库编号查询市县水利部人员姓名及联系方式--> |
| | | <select id="getCityCountyPersonListByResGuid" resultType="cn.gistack.sm.sjztmd.vo.PersonVO"> |
| | | select real_name as name,phone,#{type} as type from YWXT.blade_user bu |
| | | left join YWXT.blade_dept bd on locate(bd.id,bu.dept_id)>0 and bd.is_deleted = 0 |
| | | left join YWXT.blade_role br on locate(br.id,bu.role_id)>0 and br.is_deleted = 0 |
| | | where bu.is_deleted = 0 |
| | | and br.role_alias = #{roleAlias} |
| | | and bd.ad_code = #{adCode} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | import cn.gistack.sm.sjztmd.entity.AttAdBase; |
| | | import cn.gistack.sm.sjztmd.entity.AttResBase; |
| | | import cn.gistack.sm.sjztmd.vo.AttAdBaseVO; |
| | | import cn.gistack.sm.sjztmd.vo.AttResBaseVO; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | |
| | | Object getAttResBaseUserPage(IPage<AttResBaseUserDTO> page, Map<String, Object> params); |
| | | |
| | | Boolean updateResBaseByGuid(AttResBase attResBase); |
| | | |
| | | /** |
| | | * 查询当前水库对应的市级编号和县区编号 |
| | | * @param res_cd |
| | | * @return |
| | | */ |
| | | AttResBaseVO getCityCountyCodeByResGuid(String res_cd); |
| | | } |
| | |
| | | * @return |
| | | */ |
| | | Set<String> getPersonListByWaterCodeList(List<String> list); |
| | | |
| | | /** |
| | | * 根据水库编号查询市县水利部人员姓名及联系方式 |
| | | * @param res_cd 水库编号 |
| | | * @return |
| | | */ |
| | | List<PersonVO> getCityCountyPersonListByResGuid(String res_cd); |
| | | } |
| | |
| | | import cn.gistack.sm.sjztmd.entity.AttResBase; |
| | | import cn.gistack.sm.sjztmd.mapper.AttResBaseMapper; |
| | | import cn.gistack.sm.sjztmd.service.IAttResBaseService; |
| | | import cn.gistack.sm.sjztmd.vo.AttResBaseVO; |
| | | import cn.gistack.sm.sjztmd.vo.ManagePersonVO; |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | attResBase.setUpdateTime(DateUtil.now()); |
| | | return baseMapper.updateResBaseByGuid(attResBase); |
| | | } |
| | | |
| | | /** |
| | | * 查询当前水库对应的市级编号和县区编号 |
| | | * @param res_cd |
| | | * @return |
| | | */ |
| | | @Override |
| | | public AttResBaseVO getCityCountyCodeByResGuid(String res_cd) { |
| | | return baseMapper.getCityCountyCodeByResGuid(res_cd); |
| | | } |
| | | } |
| | |
| | | package cn.gistack.sm.sjztmd.service.impl; |
| | | |
| | | import cn.gistack.sm.sjztmd.entity.AttResBase; |
| | | import cn.gistack.sm.sjztmd.entity.AttResManagePerson; |
| | | import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson; |
| | | import cn.gistack.sm.sjztmd.mapper.AttResManagePersonMapper; |
| | | import cn.gistack.sm.sjztmd.service.IAttResBaseService; |
| | | import cn.gistack.sm.sjztmd.service.IAttResManagePersonService; |
| | | import cn.gistack.sm.sjztmd.vo.AttResBaseVO; |
| | | import cn.gistack.sm.sjztmd.vo.PersonVO; |
| | | import cn.gistack.sm.sjztmd.vo.UserPersonVO; |
| | | import cn.gistack.system.user.entity.User; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private IUserClient userClient; |
| | | |
| | | @Autowired |
| | | private IAttResBaseService attResBaseService; |
| | | |
| | | @Override |
| | | public Boolean saveOrUpdateResManagePerson(AttResManagePerson attResManagePerson) { |
| | |
| | | public Set<String> getPersonListByWaterCodeList(List<String> list) { |
| | | return baseMapper.getPersonListByWaterCodeList(list); |
| | | } |
| | | |
| | | /** |
| | | * 根据水库编号查询市县水利部人员姓名及联系方式 |
| | | * @param res_cd 水库编号 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<PersonVO> getCityCountyPersonListByResGuid(String res_cd) { |
| | | List<PersonVO> personVOList = new ArrayList<>(); |
| | | // 查询当前水库对应的市级编号和县区编号 |
| | | AttResBaseVO attResBaseVO = attResBaseService.getCityCountyCodeByResGuid(res_cd); |
| | | if (null!= attResBaseVO) { |
| | | // 通过编号查询对应的人员 |
| | | List<PersonVO> cityPerson = baseMapper.getCityCountyPersonListByResGuid(attResBaseVO.getCityCode(), "sdglywuser", "市州水库管理业务人员"); |
| | | List<PersonVO> countyPerson = baseMapper.getCityCountyPersonListByResGuid(attResBaseVO.getCountyCode(), "qxglywuser", "区县水库管理业务人员"); |
| | | // 和 |
| | | personVOList.addAll(cityPerson); |
| | | personVOList.addAll(countyPerson); |
| | | } |
| | | // 返回 |
| | | return personVOList; |
| | | } |
| | | } |
| New file |
| | |
| | | package cn.gistack.sm.sjztmd.vo; |
| | | |
| | | import lombok.Data; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * 实体类 |
| | | * |
| | | * @author Chill |
| | | */ |
| | | @Data |
| | | public class AttResBaseVO implements Serializable { |
| | | |
| | | /** |
| | | * 市编号 |
| | | */ |
| | | private String cityCode; |
| | | |
| | | /** |
| | | * 区县编号 |
| | | */ |
| | | private String countyCode; |
| | | } |
| | |
| | | import com.xxl.job.core.biz.model.ReturnT; |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.xxl.job.core.log.XxlJobLogger; |
| | | import feign.Request; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * 告警定时任务执行器 |
| | |
| | | public ReturnT<String> waterInfoNotHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位信息接收不到","","waterInfoNotHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位信息接收不到","","waterInfoNotHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterDataExcHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位数据异常","","waterDataExcHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位数据异常","","waterDataExcHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterLessDeadHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位超低于死水位","","waterLessDeadHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位超低于死水位","","waterLessDeadHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterMoreDeadLessHJHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位高于死水位,低于旱警水位","","waterMoreDeadLessHJHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位高于死水位,低于旱警水位","","waterMoreDeadLessHJHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterComeOverHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位接近汛限告警","","waterComeOverHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位接近汛限告警","","waterComeOverHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @XxlJob("waterFirstOverHandle") |
| | | @XxlJob("waterFirstOverHandle_test") |
| | | public ReturnT<String> waterFirstOverHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位初次超汛限告警","","waterFirstOverHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位初次超汛限告警","","waterFirstOverHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterSmallScaleOverHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位小幅超汛限告警","","waterSmallScaleOverHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位小幅超汛限告警","","waterSmallScaleOverHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterBigScaleOverHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位大幅超汛限告警","","waterBigScaleOverHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位大幅超汛限告警","","waterBigScaleOverHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterComeDesignHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位接近设计洪水位告警","","waterComeDesignHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位接近设计洪水位告警","","waterComeDesignHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterMoreDesignHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位超设计洪水位告警","","waterMoreDesignHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位超设计洪水位告警","","waterMoreDesignHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterMoreCheckHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("水位超校核洪水位告警","","waterMoreCheckHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("水位超校核洪水位告警","","waterMoreCheckHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterComeOneHourUpHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("近1h水位陡升","","waterComeOneHourUpHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("近1h水位陡升","","waterComeOneHourUpHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> waterComeOneHourDownHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("近1h水位陡降","","waterComeOneHourDownHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("近1h水位陡降","","waterComeOneHourDownHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> rainstormHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("暴雨降雨预警","","rainstormHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("暴雨降雨预警","","rainstormHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> alreadyHeavyRainHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("已降大雨告警","","alreadyHeavyRainHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("已降大雨告警","","alreadyHeavyRainHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> alreadyRainstormHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("已降暴雨告警","","alreadyRainstormHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("已降暴雨告警","","alreadyRainstormHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> twoHourRainHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("2小时降雨告警","","twoHourRainHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("2小时降雨告警","","twoHourRainHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |
| | |
| | | public ReturnT<String> sixHourRainHandle(String param){ |
| | | XxlJobLogger.log("开始执行任务..."); |
| | | // 创建外呼任务 |
| | | String result = noticeClient.createAlarmNoticeTaskJobHandler("6小时降雨告警","","sixHourRainHandle"); |
| | | XxlJobLogger.log("任务响应结果:" + result); |
| | | noticeClient.createAlarmNoticeTaskJobHandler("6小时降雨告警","","sixHourRainHandle"); |
| | | XxlJobLogger.log("结束自动创建任务..."); |
| | | // 返回 |
| | | return ReturnT.SUCCESS; |