skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/IAttResManagePersonClient.java
@@ -53,10 +53,11 @@ /** * 根据水库编号查询除责任人之外的人员信息 * @param res_cd * @param areaList * @return */ @GetMapping(GET_USER_LIST_BY_RES_GUID) List<PersonVO> getUserListByResGuid(@RequestParam("res_cd") String res_cd); List<PersonVO> getUserListByResGuid(@RequestParam("res_cd") String res_cd, @RequestParam("areaList") String areaList); @PostMapping(SYNCHARONIZATION_ADD_USER) int syncharonization_add_user(); skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sjztmd/feign/IAttResManagePersonClientFallback.java
@@ -1,10 +1,8 @@ package cn.gistack.sm.sjztmd.feign; import cn.gistack.sm.sjztmd.entity.AttResManagePerson; import cn.gistack.sm.sjztmd.vo.PersonVO; import org.springblade.core.tool.api.R; import org.springframework.stereotype.Component; import java.util.List; import java.util.Set; @@ -34,11 +32,6 @@ } @Override public List<PersonVO> getUserListByResGuid(String res_cd) { return null; } @Override public int syncharonization_add_user() { return 0; } @@ -57,4 +50,9 @@ public List<PersonVO> getCityCountyPersonListByResGuid(String res_cd) { return null; } @Override public List<PersonVO> getUserListByResGuid(String res_cd, String areaList) { return null; } } skjcmanager/skjcmanager-service/skjcmanager-alerts/pom.xml
@@ -53,6 +53,11 @@ <artifactId>skjcmanager-user-api</artifactId> <version>3.0.1.RELEASE</version> </dependency> <dependency> <groupId>cn.gistack</groupId> <artifactId>skjcmanager-system-api</artifactId> <version>3.0.1.RELEASE</version> </dependency> </dependencies> <build> skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml
@@ -4,7 +4,9 @@ <!--自定义分页列表查询--> <select id="selectAlarmRulePage" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRuleVO"> select sar.* from YWXT.sm_alarm_rule sar where sar.is_deleted = 0 select sar.* from YWXT.sm_alarm_rule sar where sar.is_deleted = 0 <if test="alarmRule.type!=null and alarmRule.type!=''"> and sar.type = #{alarmRule.type} </if> skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/service/impl/AlarmRuleServiceImpl.java
@@ -4,9 +4,13 @@ import cn.gistack.alerts.alarmRule.mapper.AlarmRuleMapper; import cn.gistack.alerts.alarmRule.service.AlarmRuleService; import cn.gistack.alerts.alarmRule.vo.AlarmRuleVO; import cn.gistack.system.feign.ISysClient; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * 告警规则服务实现层 @@ -15,6 +19,9 @@ */ @Service public class AlarmRuleServiceImpl extends BaseServiceImpl<AlarmRuleMapper, AlarmRule> implements AlarmRuleService { @Autowired private ISysClient sysClient; /** * 自定义分页列表查询 @@ -25,9 +32,17 @@ @Override public Object selectAlarmRulePage(IPage<AlarmRuleVO> page, AlarmRuleVO alarmRule) { if (null != alarmRule.getIsExport()){ return baseMapper.selectAlarmRulePage(null,alarmRule); List<AlarmRuleVO> alarmRuleVOS = baseMapper.selectAlarmRulePage(null, alarmRule); for (AlarmRuleVO alarmRuleVO : alarmRuleVOS) { alarmRuleVO.setAlarmPerson(String.join(",",sysClient.getRoleNames(alarmRuleVO.getAlarmPerson()).getData())); } return alarmRuleVOS; } return page.setRecords(baseMapper.selectAlarmRulePage(page,alarmRule)); List<AlarmRuleVO> alarmRuleVOS = baseMapper.selectAlarmRulePage(page, alarmRule); for (AlarmRuleVO alarmRuleVO : alarmRuleVOS) { alarmRuleVO.setAlarmPerson(String.join(",",sysClient.getRoleNames(alarmRuleVO.getAlarmPerson()).getData())); } return page.setRecords(alarmRuleVOS); } /** skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
@@ -51,4 +51,17 @@ add("over_z"); }}; /** * 水位初次超汛限告警(水库技术责任人、巡查责任人) */ public static List<String> waterMoreDesignList = new ArrayList<String>() {{ add("town_nm"); add("res_nm"); add("rz"); add("over_des_wtr_level"); add("diff_dam"); add("drp_24"); }}; } skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiUrlConstant.java
@@ -37,4 +37,9 @@ */ public static final String over_z_res_api = "/services/1234567890ABCDEFGHIJKLMN/over_z_res"; /** * */ public static final String over_des_rz_warn_api = "/services/1234567890ABCDEFGHIJKLMN/over_des_rz/warn"; } skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
New file @@ -0,0 +1,352 @@ package cn.gistack.alerts.notice.service.impl; import cn.gistack.alerts.alarmRule.entity.AlarmRecord; import cn.gistack.alerts.alarmRule.entity.AlarmRule; import cn.gistack.alerts.alarmRule.service.AlarmRecordService; import cn.gistack.alerts.notice.enums.PersonEnum; import cn.gistack.alerts.notice.util.FormatUtil; import cn.gistack.alerts.sms.entity.SmsTemplate; import cn.gistack.alerts.sms.service.ISmsTemplateService; import cn.gistack.alerts.sms.vo.SmsRequestTemplate; import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient; import cn.gistack.sm.sjztmd.vo.PersonVO; import cn.gistack.system.feign.ISysClient; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; @Component public class NoticeHandle { @Autowired private AlarmRecordService alarmRecordService; @Autowired private ISmsTemplateService smsTemplateService; @Autowired private IAttResManagePersonClient attResManagePersonClient; @Autowired private ISysClient sysClient; /** * 短信发送数据组装 * * @param jsonArray * @param templateId * @param alarmRule * @param columnsList 列名集合信息 * @param flag 是否包含日期 * @param adCode 行政区编号 * @return */ public SmsRequestTemplate getSendSmsTemplate(JSONArray jsonArray, String templateId, AlarmRule alarmRule, List<String> columnsList, Boolean flag, String adCode) { // 通过模板id 查询模板相关信息 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())); // 列名数据转换 getColumnData(jsonArray, columnsList,smsRequestTemplate,alarmRule,flag,adCode); //返回 return smsRequestTemplate; } return null; } /** * 列名数据转换 * @param jsonArray * @param columnsList * @param smsRequestTemplate * @param flag * @param adCode * @return */ private void getColumnData(JSONArray jsonArray, List<String> columnsList, SmsRequestTemplate smsRequestTemplate, AlarmRule alarmRule, Boolean flag, String adCode) { List<PersonVO> personLists = new ArrayList<>(); List<List<String>> lists = new ArrayList<>(); for (int i = 0; i < jsonArray.size(); i++) { if (null!=adCode){ // city_cd,county_cd 过滤数据 String county_cd = jsonArray.getJSONObject(i).getString("county_cd"); if (county_cd.equals(adCode)) { jointData(jsonArray, columnsList, alarmRule, flag, personLists, lists, i); } }else { jointData(jsonArray, columnsList, alarmRule, flag, personLists, lists, i); } } // 设置信息 smsRequestTemplate.setPersonVOList(personLists); smsRequestTemplate.setTemplateContent(lists); } /** * 拼接列数据设置告警人员信息 * @param jsonArray * @param columnsList * @param alarmRule * @param flag * @param personLists * @param lists * @param i * @return */ private void jointData(JSONArray jsonArray, List<String> columnsList, AlarmRule alarmRule, Boolean flag, List<PersonVO> personLists, List<List<String>> lists, int i) { // 根据水库编号,所在区域查询需要发送的人员手机号及设置 String res_cd = jsonArray.getJSONObject(i).getString("res_cd"); // 判断时间是否存在 String tm = jsonArray.getJSONObject(i).getString("tm"); String day = ""; String hour = ""; String minute = ""; if (null != tm && !tm.equals("") && flag) { flag = true; // 加入天,时,分 day = tm.substring(8, 10); hour = tm.substring(11, 13); minute = tm.substring(14, 16); } else { flag = false; } // 获取告警人员信息 getAlarmPersonList(jsonArray, columnsList, alarmRule, flag, personLists, lists, i, res_cd, day, hour, minute); } /** * 获取告警人员信息 * @param jsonArray * @param columnsList * @param alarmRule * @param flag * @param personLists * @param lists * @param i * @param res_cd * @param day * @param hour * @param minute */ private void getAlarmPersonList(JSONArray jsonArray, List<String> columnsList, AlarmRule alarmRule, Boolean flag, List<PersonVO> personLists, List<List<String>> lists, int i, String res_cd, String day, String hour, String minute) { // 查询告警人员信息 List<PersonVO> personVOList = getPersonListByResGuid(res_cd, alarmRule); if (personVOList.size() > 0) { for (PersonVO personVO : personVOList) { List<String> list = new ArrayList<>(); list.add(res_cd); list.add(personVO.getPhone()); if (flag) { list.add(day); list.add(hour); list.add(minute); } // 变量将值放入集合中 for (String column : columnsList) { String[] split = column.split(","); String format = ""; for (String s : split) { format = format + jsonArray.getJSONObject(i).getString(s); } list.add(format); } lists.add(list); } } personLists.addAll(personVOList); } /** * 保存告警记录信息 * @param list * @param alarmRule 告警规则 * @param uuid 临时id * @return */ public AlarmRecord saveAlarmRecord(List<String> list, AlarmRule alarmRule, String uuid) { AlarmRecord alarmRecord = alarmRecordService.getOne(new QueryWrapper<AlarmRecord>() .eq("temp_code",uuid) .eq("alarm_rule_id",alarmRule.getId()) .eq("reservoir_number",list.get(0)) ); if (null!=alarmRecord) { return alarmRecord; }else { AlarmRecord alarm = new AlarmRecord(); // 设置相关信息 alarm.setAlarmRuleId(alarmRule.getId().toString()); alarm.setReservoirNumber(list.get(0)); alarm.setAlarmCondition(alarmRule.getRuleRemark()); alarm.setTempCode(uuid); // 新增 boolean save = alarmRecordService.save(alarm); if (save) { return alarm; } } // 返回 return null; } /** * 查询告警人员信息 * @param res_cd 水库 guid * @param alarmRule * @return */ private List<PersonVO> getPersonListByResGuid(String res_cd,AlarmRule alarmRule) { // 查询对应的角色信息 List<String> roles = sysClient.getRoleNames(alarmRule.getAlarmPerson()).getData(); List<String> personList = new ArrayList<>(); List<String> areaList = new ArrayList<>(); // 遍历 for (String role : roles) { if (role.contains("责任人")){ personList.add(PersonEnum.findByName(role).getType().toString()); }else { areaList.add(role); } } // 根据角色,水库编号查询对应的告警人员信息 List<PersonVO> list = new ArrayList<>(); //1. 根据水库编号查询除责任人之外的人员信息 if (areaList.size() > 0) { List<PersonVO> personVOList = attResManagePersonClient.getUserListByResGuid(res_cd,String.join(",",areaList)); list.addAll(personVOList); } //2. 根据水库编号及责任人类型查询相关责任人信息 List<PersonVO> personVOList1 = attResManagePersonClient.getPersonListByResGuid(res_cd,String.join(",",personList)); // 合并人员数据 list.addAll(personVOList1); // 返回数据 return list; } /** * 依次添加巡查责任人,技术责任人信息 * @param list */ public void addPatrolTechnologyInfo(List<String> list) { // 查询巡查责任人姓名,技术责任人姓名信息 List<PersonVO> personVOList = attResManagePersonClient.getPersonListByResGuid(list.get(0),"4,5"); 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(); } } // 巡查责任人姓名 list.add(xczrr); // 技术责任人姓名 list.add(jszrr); }else { // 巡查责任人姓名 list.add(""); // 技术责任人姓名 list.add(""); } } /** * 拼接市县水利部人员姓名及联系方式 * @param list */ public 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(""); } } /** * 依次添加行政责任人,主管部门责任人,技术责任人,巡查责任人信息 * @param list * @param personTypes */ public void addWaterMoreDesignPatrolTechnologyInfo(List<String> list,String personTypes) { String[] split = personTypes.split(","); // 查询巡查责任人姓名,技术责任人姓名信息 List<PersonVO> personVOList = attResManagePersonClient.getPersonListByResGuid(list.get(0),personTypes); if (personVOList.size()>0) { String xzzrr = " "; String zgzrr = " "; String jszrr = " "; String xczrr = " "; for (PersonVO personVO : personVOList) { String str = null!=personVO.getPhone() ? ":"+personVO.getPhone():""; if (personVO.getType().equals(split[0])) { xzzrr = personVO.getName() + str; } if (personVO.getType().equals(split[1])) { zgzrr = personVO.getName()+ str; } if (personVO.getType().equals(split[2])) { jszrr = personVO.getName()+ str; } if (personVO.getType().equals(split[3])) { xczrr = personVO.getName()+ str; } } // 行政 list.add(xzzrr); // 主管 list.add(zgzrr); // 技术责任人姓名 list.add(jszrr); // 巡查责任人姓名 list.add(xczrr); }else { for (String type : split) { list.add(""); } } } } skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -50,234 +51,13 @@ private AlarmRuleService alarmRuleService; @Autowired private AlarmRecordService alarmRecordService; @Autowired private ISmsTemplateService smsTemplateService; @Autowired private RestTemplate restTemplate; @Autowired private IAttResManagePersonClient attResManagePersonClient; private NoticeHandle noticeHandle; /** * 短信发送数据组装 * * @param jsonArray * @param templateId * @param alarmRule * @param columnsList 列名集合信息 * @param flag 是否包含日期 * @return */ private SmsRequestTemplate getSendSmsTemplate(JSONArray jsonArray, String templateId, AlarmRule alarmRule, List<String> columnsList, Boolean flag) { // 通过模板id 查询模板相关信息 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())); // 列名数据转换 getColumnData(jsonArray, columnsList,smsRequestTemplate,alarmRule,flag); //返回 return smsRequestTemplate; } return null; } /** * 列名数据转换 * @param jsonArray * @param columnsList * @param smsRequestTemplate * @param flag * @return */ private void getColumnData(JSONArray jsonArray, List<String> columnsList, SmsRequestTemplate smsRequestTemplate, AlarmRule alarmRule, Boolean flag) { List<PersonVO> personLists = new ArrayList<>(); List<List<String>> lists = new ArrayList<>(); for (int i = 0; i < jsonArray.size(); i++) { String county_cd = jsonArray.getJSONObject(i).getString("county_cd"); // city_cd,county_cd if (county_cd.equals("421303000000")) { // 根据水库编号,所在区域查询需要发送的人员手机号及设置 String res_cd = jsonArray.getJSONObject(i).getString("res_cd"); // 判断时间是否存在 String tm = jsonArray.getJSONObject(i).getString("tm"); String day = ""; String hour = ""; String minute = ""; if (null != tm && !tm.equals("") && flag) { flag = true; // 加入天,时,分 day = tm.substring(8, 10); hour = tm.substring(11, 13); minute = tm.substring(14, 16); } else { flag = false; } // 查询告警人员信息 List<PersonVO> personVOList = getPersonListByResGuid(res_cd, alarmRule); if (personVOList.size() > 0) { for (PersonVO personVO : personVOList) { List<String> list = new ArrayList<>(); list.add(res_cd); list.add(personVO.getPhone()); if (flag) { list.add(day); list.add(hour); list.add(minute); } // 变量将值放入集合中 for (String column : columnsList) { String[] split = column.split(","); String format = ""; for (String s : split) { format = format + jsonArray.getJSONObject(i).getString(s); } list.add(format); } lists.add(list); } } personLists.addAll(personVOList); } } // 设置信息 smsRequestTemplate.setPersonVOList(personLists); smsRequestTemplate.setTemplateContent(lists); } /** * 保存告警记录信息 * @param list * @param alarmRule 告警规则 * @param uuid 临时id * @return */ private AlarmRecord saveAlarmRecord(List<String> list,AlarmRule alarmRule,String uuid) { AlarmRecord alarmRecord = alarmRecordService.getOne(new QueryWrapper<AlarmRecord>() .eq("temp_code",uuid) .eq("alarm_rule_id",alarmRule.getId()) .eq("reservoir_number",list.get(0)) ); if (null!=alarmRecord) { return alarmRecord; }else { AlarmRecord alarm = new AlarmRecord(); // 设置相关信息 alarm.setAlarmRuleId(alarmRule.getId().toString()); alarm.setReservoirNumber(list.get(0)); alarm.setAlarmCondition(alarmRule.getRuleRemark()); alarm.setTempCode(uuid); // 新增 boolean save = alarmRecordService.save(alarm); if (save) { return alarm; } } // 返回 return null; } /** * 查询告警人员信息 * @param res_cd 水库 guid * @param alarmRule * @return */ private List<PersonVO> getPersonListByResGuid(String res_cd,AlarmRule alarmRule) { // 查询对应的角色信息 String roles = alarmRule.getAlarmPerson(); String[] roleArray = roles.split(","); List<String> personList = new ArrayList<>(); List<String> areaList = new ArrayList<>(); // 遍历 for (String role : roleArray) { if (role.contains("责任人")){ personList.add(PersonEnum.findByName(role).getType().toString()); }else { areaList.add(role); } } // 根据角色,水库编号查询对应的告警人员信息 List<PersonVO> list = new ArrayList<>(); //1. 根据水库编号查询除责任人之外的人员信息 if (areaList.size() > 0) { List<PersonVO> personVOList = attResManagePersonClient.getUserListByResGuid(res_cd); list.addAll(personVOList); } //2. 根据水库编号及责任人类型查询相关责任人信息 List<PersonVO> personVOList1 = attResManagePersonClient.getPersonListByResGuid(res_cd,String.join(",",personList)); // 合并人员数据 list.addAll(personVOList1); // 返回数据 return list; } /** * 依次添加巡查责任人,技术责任人信息 * @param list */ private void addPatrolTechnologyInfo(List<String> list) { // 查询巡查责任人姓名,技术责任人姓名信息 List<PersonVO> personVOList = attResManagePersonClient.getPersonListByResGuid(list.get(0),"4,5"); 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(); } } // 巡查责任人姓名 list.add(xczrr); // 技术责任人姓名 list.add(jszrr); }else { // 巡查责任人姓名 list.add(""); // 技术责任人姓名 list.add(""); } } /** * 拼接市县水利部人员姓名及联系方式 * @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(""); } } /** * 默认实现 @@ -307,14 +87,12 @@ // 调用中台服务接口查询数据 JSONArray ztData = getZtData("", ZtApiUrlConstant.res_z_null_api); // 只发短信,将发短信信息组装好 SmsRequestTemplate smsRequestTemplate = getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterInfoNotList,false); SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterInfoNotList,false,null); // 拼接内容后面的联系方式,当前模板拼接平台服务电话 // 遍历,拼接平台服务电话 for (List<String> list : smsRequestTemplate.getTemplateContent()) { // 添加平台电话 list.add(PtInfoConstant.serverPhone); // 保存告警记录信息 AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule,uuid); AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid); if (null != alarmRecord) { list.add(alarmRecord.getId().toString()); } @@ -343,11 +121,11 @@ JSONArray ztData = getZtData("", ZtApiUrlConstant.res_z_not_normal_api); // 只发短信,将发短信信息组装好 SmsRequestTemplate smsRequestTemplate = getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterDataExcList,false); = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterDataExcList,false,null); // 拼接后面内容 for (List<String> list : smsRequestTemplate.getTemplateContent()) { // 保存告警记录信息 AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule,uuid); AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid); if (null != alarmRecord) { list.add(alarmRecord.getId().toString()); } @@ -375,14 +153,14 @@ // 调用中台服务接口查询数据 JSONArray ztData = getZtData("", ZtApiUrlConstant.res_diff_dead_z_api); // 只发短信,将发短信信息组装好 SmsRequestTemplate smsRequestTemplate = getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true); SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null); // 拼接内容后面的联系方式,当前模板县水利部人员姓名电话 // 遍历,拼接县水利部人员电话 for (List<String> list : smsRequestTemplate.getTemplateContent()) { // 查询县水利部人员(通过水库编号) // list.add("测试:13112341234"); // 保存告警记录信息 AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule,uuid); AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid); if (null != alarmRecord) { list.add(alarmRecord.getId().toString()); } @@ -424,16 +202,16 @@ // 调用中台服务接口查询数据 JSONArray ztData = getZtData("", ZtApiUrlConstant.res_diff_dead_z_api); // 只发送站内信 SmsRequestTemplate smsRequestTemplate = getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true); SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterLessDeadList,true,null); // 拼接内容后面的联系方式,当前模板县水利部人员姓名电话 // 遍历,拼接县水利部人员电话 for (List<String> list : smsRequestTemplate.getTemplateContent()) { // 后面依次拼接 巡查责任人姓名,技术责任人姓名,市县水利部门人员姓名电话(暂时不要) addPatrolTechnologyInfo(list); noticeHandle.addPatrolTechnologyInfo(list); // 市县水利部门人员姓名电话(暂时不要) // list.add("测试:13112341234"); // 保存告警记录信息 AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule,uuid); AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid); if (null != alarmRecord) { list.add(alarmRecord.getId().toString()); // list.add("999"); @@ -455,6 +233,7 @@ * @return */ public String waterFirstOverHandle(String arg1, String arg2) { String adCode = "421303000000"; String templateId = "2431012216671"; String uuid = templateId + UUID.randomUUID().toString(); // 查询当前策略对应的告警规则信息 @@ -464,16 +243,16 @@ JSONArray ztData = getZtData("", ZtApiUrlConstant.over_z_res_api); // 只发短信,将发短信信息组装好 SmsRequestTemplate smsRequestTemplate = getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true); = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterFirstOverList,true,adCode); // 拼接后面内容 if (smsRequestTemplate.getPersonVOList().size()>0) { for (List<String> list : smsRequestTemplate.getTemplateContent()) { // 依次拼接巡查责任人,技术责任人姓名 addPatrolTechnologyInfo(list); noticeHandle.addPatrolTechnologyInfo(list); // 拼接市县水利部人员姓名及联系方式 addCityCountyBusinessPersonInfo(list); noticeHandle.addCityCountyBusinessPersonInfo(list); // 保存告警记录信息 AlarmRecord alarmRecord = saveAlarmRecord(list,alarmRule,uuid); AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid); if (null != alarmRecord) { list.add(alarmRecord.getId().toString()); // list.add("999"); @@ -534,8 +313,37 @@ * @return */ public String waterMoreDesignHandle(String arg1, String arg2) { // 业务逻辑处理 2... return ""; String templateId = "2431012248604"; String uuid = templateId + UUID.randomUUID().toString(); // 查询当前策略对应的告警规则信息 AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1)); if (null!=alarmRule) { // 调用中台服务接口查询数据 JSONArray ztData = getZtData("", ZtApiUrlConstant.over_des_rz_warn_api); // 只发短信,将发短信信息组装好 SmsRequestTemplate smsRequestTemplate = noticeHandle.getSendSmsTemplate(ztData, templateId,alarmRule, ZtApiDataColumnConstant.waterMoreDesignList,true,null); // 拼接后面内容 if (smsRequestTemplate.getPersonVOList().size()>0) { for (List<String> list : smsRequestTemplate.getTemplateContent()) { // 依次添加行政责任人,主管部门责任人,技术责任人,巡查责任人信息(姓名,联系电话) noticeHandle.addWaterMoreDesignPatrolTechnologyInfo(list,"1,2,4,5"); // 拼接市县水利部人员姓名及联系方式 noticeHandle.addCityCountyBusinessPersonInfo(list); // 保存告警记录信息 AlarmRecord alarmRecord = noticeHandle.saveAlarmRecord(list,alarmRule,uuid); if (null != alarmRecord) { list.add(alarmRecord.getId().toString()); } } // 调用短信服务 Map<String, Object> map = smsService.sendSignMsg(smsRequestTemplate); // 返回 return "本次-水位初次超汛限告警短信成功通知数量:" + map.get("smsRecord"); } } // 返回 return "水位超设计洪水位告警"; } /** skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/feign/AttResManagePersonClient.java
@@ -77,11 +77,12 @@ /** * * @param res_cd * @param areaList * @return */ @Override public List<PersonVO> getUserListByResGuid(String res_cd) { return adBaseService.getPersonListByResGuid(res_cd); public List<PersonVO> getUserListByResGuid(String res_cd,String areaList) { return adBaseService.getPersonListByResGuid(res_cd,areaList); } @Override skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.java
@@ -37,7 +37,7 @@ * @param res_cd * @return */ List<PersonVO> getPersonListByResGuid(@Param("res_cd")String res_cd); List<PersonVO> getPersonListByResGuid(@Param("res_cd")String res_cd,@Param("roleName") String areaList); AttAdBaseVO getDetail(@Param("attAdBase") AttAdBase attAdBase); skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.xml
@@ -96,15 +96,19 @@ <!--根据水库编号查询除责任人之外的人员信息--> <select id="getPersonListByResGuid" resultType="cn.gistack.sm.sjztmd.vo.PersonVO"> select bu.real_name,bu.phone,bd.ad_code from YWXT.blade_user bu left join YWXT.blade_dept bd on instr(bu.dept_id,bd.id)>0 and bd.is_deleted = 0 select bu.real_name as name,bu.phone,bd.ad_code 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 bd.ad_code in ( select "ad_code" from SJZT_MD."att_ad_base" start with "ad_code" = (select "interior_ad_guid" from SJZT_MD."att_res_base" where "guid" = #{res_cd} ) CONNECT BY PRIOR "p_ad_code" = "ad_code" ) and br.role_name like concat('%',#{roleName},'%') and bu.phone is not null and bu.phone!='' </select> <select id="getDetail" resultType="cn.gistack.sm.sjztmd.vo.AttAdBaseVO"> SELECT region."guid", skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttAdBaseService.java
@@ -32,9 +32,10 @@ /** * 根据水库编号查询除责任人之外的人员信息 * @param res_cd * @param areaList * @return */ List<PersonVO> getPersonListByResGuid(String res_cd); List<PersonVO> getPersonListByResGuid(String res_cd,String areaList); /** * 获取详情 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java
@@ -75,8 +75,8 @@ * @return */ @Override public List<PersonVO> getPersonListByResGuid(String res_cd) { return baseMapper.getPersonListByResGuid(res_cd); public List<PersonVO> getPersonListByResGuid(String res_cd,String areaList) { return baseMapper.getPersonListByResGuid(res_cd,areaList); } @Override skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/AlarmXxlJob.java
@@ -171,7 +171,7 @@ * @return * @throws Exception */ @XxlJob("waterMoreDesignHandle") @XxlJob("waterMoreDesignHandle_0704") public ReturnT<String> waterMoreDesignHandle(String param){ XxlJobLogger.log("开始执行任务..."); // 创建外呼任务