ke
2024-07-19 08a962d2925baa255207fdf979e6fee794f1773b
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java
@@ -1,5 +1,8 @@
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;
@@ -41,13 +44,71 @@
   //超正常中型水库
   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){
@@ -63,6 +124,7 @@
   /**
    * 构建超正常信息
    *
    * @param totalOverList
    * @param totalOver10List
    */
@@ -181,19 +243,28 @@
   /**
    * 构建省直信息
    *
    * @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){
@@ -216,36 +287,53 @@
      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));
      }
@@ -265,6 +353,7 @@
   /**
    * 构建大中库信息
    *
    * @param dzkList
    */
   private void formatDzkInfo(List<DzkInfo> dzkList) {
@@ -315,6 +404,9 @@
      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);
@@ -324,6 +416,7 @@
   /**
    * 构建全省水库超汛限信息
    *
    * @param totalList
    * @return
    */