| | |
| | | package cn.gistack.sm.sjztmd.word.vo; |
| | | |
| | | import cn.gistack.alerts.sms.vo.SmsResultVO; |
| | | import cn.gistack.sm.intelligentCall.entity.CallTask; |
| | | import cn.gistack.sm.intelligentCall.vo.CallTaskResultVO; |
| | | import lombok.Data; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.tool.utils.ObjectUtil; |
| | |
| | | //超正常中型水库 |
| | | private String overNormalMidInfo; |
| | | |
| | | public OverWord(List<TotalInfo> totalList, List<DzkInfo> dzkList, List<OverDetail> overDetailList,List<SzInfo> szInfoList){ |
| | | private String smsResultInfo; |
| | | private String zdInfo; |
| | | |
| | | public OverWord(List<TotalInfo> totalList, List<DzkInfo> dzkList, List<OverDetail> overDetailList, List<SzInfo> szInfoList, List<SmsResultVO> resultVOList, List<CallTaskResultVO> whtjList, String isNew) { |
| | | this.tm = new SimpleDateFormat("MM月dd日H时").format(new Date()); |
| | | this.hour = new SimpleDateFormat("H时").format(new Date()); |
| | | |
| | | formatTotalInfo(totalList); |
| | | formatDzkInfo(dzkList); |
| | | formatSzInfo(szInfoList); |
| | | formatSmsResultInfo(resultVOList, whtjList); |
| | | } |
| | | |
| | | public OverWord(List<TotalInfo> totalList) { |
| | | this.tm = new SimpleDateFormat("MM月dd日H时").format(new Date()); |
| | | this.hour = new SimpleDateFormat("H时").format(new Date()); |
| | | formatTotalInfo(totalList); |
| | | } |
| | | |
| | | private void formatSmsResultInfo(List<SmsResultVO> resultVOList, List<CallTaskResultVO> whtjList) { |
| | | // 短信预警处理 |
| | | int dxyjCount = 0; |
| | | for (SmsResultVO vo : resultVOList) { |
| | | int number = null == vo.getNumber() ? 0 : vo.getNumber(); |
| | | dxyjCount = dxyjCount + number; |
| | | } |
| | | |
| | | // 外呼统计处理 |
| | | int cityNameIndex = 0; //记录增加行政区划次数 |
| | | String cityNames = ""; //行政区划集合 |
| | | int jtCount = 0; //接通的数量 |
| | | for (CallTaskResultVO callTaskResultVO : whtjList) { |
| | | |
| | | if(null == callTaskResultVO.getId()) { |
| | | continue; |
| | | } |
| | | |
| | | if (StringUtil.isNotBlank(callTaskResultVO.getCityName())) { |
| | | if (StringUtil.isBlank(cityNames)) { |
| | | cityNames = cityNames + callTaskResultVO.getCityName(); |
| | | } else { |
| | | //如果存在不添加 |
| | | if (cityNames.indexOf(callTaskResultVO.getCityName()) < 0 && cityNameIndex < 4) { |
| | | cityNames = cityNames + "、" + callTaskResultVO.getCityName(); |
| | | cityNameIndex = cityNameIndex + 1; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | if (callTaskResultVO.getCallResult().equals("200000")) { |
| | | jtCount = jtCount + 1; |
| | | } |
| | | |
| | | if (callTaskResultVO.getIsSmsFill().equals("已反馈")) { |
| | | jtCount = jtCount + 1; |
| | | } |
| | | |
| | | } |
| | | |
| | | double whtjCount = whtjList.size() > 0 ? whtjList.size() : 1; |
| | | double jtl = Double.valueOf(jtCount) / whtjCount * 100; |
| | | String str = StringUtil.format("过去24小时内,发送水库短信预警{}条,抽查{}等水库防汛责任人{}人次,应答率{},责任人履职情况总体较好。", |
| | | dxyjCount, cityNames.replace("恩施土家族苗族自治州","恩施州"), whtjList.size(), String.format("%.2f", jtl) + "%"); |
| | | this.smsResultInfo = str; |
| | | } |
| | | |
| | | public OverWord(List<TotalInfo> totalList, List<DzkInfo> dzkList, List<OverDetail> overDetailList,List<SzInfo> szInfoList,List<TotalInfo> totalOverList, List<TotalInfo> totalOver10List){ |
| | |
| | | |
| | | /** |
| | | * 构建超正常信息 |
| | | * |
| | | * @param totalOverList |
| | | * @param totalOver10List |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 构建省直信息 |
| | | * |
| | | * @param szInfoList |
| | | */ |
| | | private void formatSzInfo(List<SzInfo> szInfoList) { |
| | | List<String> list = new ArrayList<>(); |
| | | |
| | | List<String> listZd = new ArrayList<>(); |
| | | |
| | | for (int i = 0; i < szInfoList.size(); i++) { |
| | | SzInfo szInfo = szInfoList.get(i); |
| | | if (szInfo.getType().equals("省直水库")) { |
| | | String text = generateSzInfo(szInfo); |
| | | list.add(text); |
| | | } else { |
| | | listZd.add(generateSzInfo(szInfo)); |
| | | } |
| | | |
| | | } |
| | | |
| | | // this.provinceInfo = String.join("\n\r\r\r\r",list); |
| | | this.provinceInfo = String.join("\n",list); |
| | | this.zdInfo = String.join("\n", listZd); |
| | | } |
| | | |
| | | private String generateSzInfo(SzInfo szInfo){ |
| | |
| | | String flse_lim_stag=""; |
| | | String control_z = ""; |
| | | String wat_shed_area = ""; |
| | | String weir_top_elevation = ""; |
| | | |
| | | switch (resNm){ |
| | | case "高关水库": |
| | | flse_lim_stag = "118"; |
| | | control_z="117"; |
| | | wat_shed_area = "303"; |
| | | break; |
| | | case "王英水库": |
| | | flse_lim_stag = "70"; |
| | | control_z="67"; |
| | | wat_shed_area = "243"; |
| | | break; |
| | | case "吴岭水库": |
| | | flse_lim_stag = "62.20"; |
| | | control_z=""; |
| | | wat_shed_area = "102"; |
| | | break; |
| | | case "富水水库": |
| | | flse_lim_stag = "57"; |
| | | control_z="55"; |
| | | wat_shed_area = "2450"; |
| | | break; |
| | | case "漳河水库": |
| | | flse_lim_stag = "122.6"; |
| | | control_z="122"; |
| | | wat_shed_area = "2212"; |
| | | break; |
| | | } |
| | | if (null != szInfo.getFlse_lim_stag()) |
| | | flse_lim_stag = String.valueOf(szInfo.getFlse_lim_stag()); |
| | | if (null != szInfo.getControl_z()) |
| | | control_z = String.valueOf(szInfo.getControl_z()); |
| | | if (null != szInfo.getWat_shed_area()) |
| | | wat_shed_area = String.valueOf(szInfo.getWat_shed_area()); |
| | | if (null != szInfo.getWeir_top_elevation()) |
| | | weir_top_elevation = String.valueOf(szInfo.getWeir_top_elevation()); |
| | | |
| | | // 之前临时处理逻辑 --2024-06-20去除-- |
| | | // switch (resNm) { |
| | | // case "高关水库": |
| | | // flse_lim_stag = "118"; |
| | | // control_z = "117"; |
| | | // wat_shed_area = ""; |
| | | // break; |
| | | // case "王英水库": |
| | | // flse_lim_stag = "70"; |
| | | // control_z = "67"; |
| | | // wat_shed_area = ""; |
| | | // break; |
| | | // case "吴岭水库": |
| | | // flse_lim_stag = "62.20"; |
| | | // control_z = ""; |
| | | // wat_shed_area = "102"; |
| | | // break; |
| | | // case "富水水库": |
| | | // flse_lim_stag = "55"; |
| | | // control_z = "54"; |
| | | // wat_shed_area = ""; |
| | | // break; |
| | | // case "漳河水库": |
| | | // flse_lim_stag = "122.6"; |
| | | // control_z = "121.8"; |
| | | // wat_shed_area = ""; |
| | | // break; |
| | | // } |
| | | |
| | | List<String> detailList = new ArrayList<>(); |
| | | if (StringUtil.isNotBlank(weir_top_elevation)) { |
| | | detailList.add(StringUtil.format("堰顶高程{}米", weir_top_elevation)); |
| | | } |
| | | if (StringUtil.isNotBlank(flse_lim_stag)) { |
| | | detailList.add(StringUtil.format("汛限水位{}米", flse_lim_stag)); |
| | | } |
| | | if (StringUtil.isNotBlank(flse_lim_stag)){ |
| | | detailList.add(StringUtil.format("汛限水位{}米",flse_lim_stag)); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 构建大中库信息 |
| | | * |
| | | * @param dzkList |
| | | */ |
| | | private void formatDzkInfo(List<DzkInfo> dzkList) { |
| | |
| | | if (ObjectUtil.isNotEmpty(dzkInfo.getTb_flse_lim_stag())){ |
| | | detailList.add(StringUtil.format("汛限水位{}米",dzkInfo.getTb_flse_lim_stag())); |
| | | } |
| | | if (ObjectUtil.isNotEmpty(dzkInfo.getTb_weir_top_elevation())) { |
| | | detailList.add(StringUtil.format("堰顶高程{}米", dzkInfo.getTb_weir_top_elevation())); |
| | | } |
| | | |
| | | String detail = String.join(",",detailList); |
| | | text = StringUtil.format(" {}{}{}({})。",dzkInfo.getP_ad_name(),dzkInfo.getAd_name(),dzkInfo.getRes_name(),detail); |
| | |
| | | |
| | | /** |
| | | * 构建全省水库超汛限信息 |
| | | * |
| | | * @param totalList |
| | | * @return |
| | | */ |