From 08a962d2925baa255207fdf979e6fee794f1773b Mon Sep 17 00:00:00 2001
From: ke <893754509@qq.com>
Date: Fri, 19 Jul 2024 12:25:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java | 279 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 186 insertions(+), 93 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java
index a22c8cc..65999d4 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java
+++ b/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,16 +44,74 @@
//超正常中型水库
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, List<DzkInfo> dzkList, List<OverDetail> overDetailList,List<SzInfo> szInfoList,List<TotalInfo> totalOverList, List<TotalInfo> totalOver10List){
+ 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) {
this.tm = new SimpleDateFormat("MM月dd日H时").format(new Date());
this.hour = new SimpleDateFormat("H时").format(new Date());
@@ -58,11 +119,12 @@
formatDzkInfo(dzkList);
formatSzInfo(szInfoList);
- formatOverNormal(totalOverList,totalOver10List);
+ formatOverNormal(totalOverList, totalOver10List);
}
/**
* 构建超正常信息
+ *
* @param totalOverList
* @param totalOver10List
*/
@@ -88,28 +150,28 @@
dangerCountTotal += totalInfo.getDanger_count_all();
overDangerCountTotal += totalInfo.getOver_danger_count_all();
- if (totalInfo.getSmall_all() != 0){
- String smallRegionCout = StringUtil.format("{}{}座",totalInfo.getP_ad_name(),totalInfo.getSmall_all());
+ if (totalInfo.getSmall_all() != 0) {
+ String smallRegionCout = StringUtil.format("{}{}座", totalInfo.getP_ad_name(), totalInfo.getSmall_all());
smallList.add(smallRegionCout);
}
// "mid_over_detail": "许家冲水库-5.59,游河水库-1.42,马鞍山水库-0.2,桃园河水库-3.19,白果河水库-1.56,两河口水库-4.97",
- if (totalInfo.getBig_over_detail() != null){
+ if (totalInfo.getBig_over_detail() != null) {
String bigOverDetail = totalInfo.getBig_over_detail();
//许家冲水库-5.59 游河水库-1.42 马鞍山水库-0.2
List<String> list = Arrays.asList(bigOverDetail.split(","));
- list.forEach(item->{
+ list.forEach(item -> {
String reservoirName = item.split("~")[0];
bigList.add(reservoirName);
});
}
- if (totalInfo.getMid_over_detail() != null){
+ if (totalInfo.getMid_over_detail() != null) {
String midOverDetail = totalInfo.getMid_over_detail();
//许家冲水库-5.59 游河水库-1.42 马鞍山水库-0.2
List<String> list = Arrays.asList(midOverDetail.split(","));
- list.forEach(item->{
+ list.forEach(item -> {
String reservoirName = item.split("~")[0];
midList.add(reservoirName);
});
@@ -118,34 +180,34 @@
String totalValue =
StringUtil.format("今日{},全省共有{}座水库超正常水位,其中大型水库{}座、中型水库{}座、小型水库{}座。全省水库持续安全运行。全省病险水库中,有{}座超正常水位,有{}座没有超正常但超了控制运用水位",
- this.hour,total,big,mid,small,dangerCountTotal,overDangerCountTotal);
+ this.hour, total, big, mid, small, dangerCountTotal, overDangerCountTotal);
String totalOverNormal10Value = getOverNormal10(totalOver10List);
String smallValue = "";
- if (smallList.size()>0){
- smallValue = String.join("、",smallList);
- }else {
+ if (smallList.size() > 0) {
+ smallValue = String.join("、", smallList);
+ } else {
smallValue = "没有超正常的小型水库";
}
- String bigValue="";
- if (bigList.size()>0){
- bigValue=
- StringUtil.format(" 其中,超正常的大型水库有{}。",String.join("、",bigList));
- }else{
- bigValue= " 其中,没有超正常的大型水库。";
+ String bigValue = "";
+ if (bigList.size() > 0) {
+ bigValue =
+ StringUtil.format(" 其中,超正常的大型水库有{}。", String.join("、", bigList));
+ } else {
+ bigValue = " 其中,没有超正常的大型水库。";
}
String midValue = "";
- if (midList.size()>0){
- midValue=
- StringUtil.format(" 其中,超正常的中型水库有{}。",String.join("、",midList));
- }else{
- midValue= " 其中,没有超正常的中型水库。";
+ if (midList.size() > 0) {
+ midValue =
+ StringUtil.format(" 其中,超正常的中型水库有{}。", String.join("、", midList));
+ } else {
+ midValue = " 其中,没有超正常的中型水库。";
}
this.totalOverNormalInfo = totalValue;
- this.overNormalSmallInfo =smallValue;
+ this.overNormalSmallInfo = smallValue;
this.overNormalBigInfo = bigValue;
this.overNormalMidInfo = midValue;
this.totalOverNormal10Info = totalOverNormal10Value;
@@ -174,97 +236,124 @@
String totalValue =
StringUtil.format("今日{},全省共有{}座水库超正常水位,其中大型水库{}座、中型水库{}座、小型水库{}座。全省水库持续安全运行。全省病险水库中,有{}座超正常水位,有{}座没有超正常但超了控制运用水位",
- this.hour,total,big,mid,small,dangerCountTotal,overDangerCountTotal);
+ this.hour, total, big, mid, small, dangerCountTotal, overDangerCountTotal);
return totalValue;
}
/**
* 构建省直信息
+ *
* @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);
- String text = generateSzInfo(szInfo);
- list.add(text);
+ 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.provinceInfo = String.join("\n", list);
+ this.zdInfo = String.join("\n", listZd);
}
- private String generateSzInfo(SzInfo szInfo){
+ private String generateSzInfo(SzInfo szInfo) {
String text = "";
- String oldTm = new SimpleDateFormat("MM月dd日H时").format(DateUtil.parse(szInfo.getOld_tm(),"yyyy-MM-dd HH:mm:ss"));
+ String oldTm = new SimpleDateFormat("MM月dd日H时").format(DateUtil.parse(szInfo.getOld_tm(), "yyyy-MM-dd HH:mm:ss"));
Double oldRz = szInfo.getOld_rz();
- String newTm = new SimpleDateFormat("MM月dd日H时").format(DateUtil.parse(szInfo.getNew_tm(),"yyyy-MM-dd HH:mm:ss"));
+ String newTm = new SimpleDateFormat("MM月dd日H时").format(DateUtil.parse(szInfo.getNew_tm(), "yyyy-MM-dd HH:mm:ss"));
Double newRz = szInfo.getNew_rz();
Double diffRz = Math.abs(szInfo.getDiff_rz());
String resNm = szInfo.getStcd();
String upOrDown = "";
- if (szInfo.getDiff_rz()>=0){
+ if (szInfo.getDiff_rz() >= 0) {
upOrDown = "上涨";
- }else {
+ } else {
upOrDown = "下降";
}
- String flse_lim_stag="";
+ 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(flse_lim_stag)){
- detailList.add(StringUtil.format("汛限水位{}米",flse_lim_stag));
+ if (StringUtil.isNotBlank(weir_top_elevation)) {
+ detailList.add(StringUtil.format("堰顶高程{}米", weir_top_elevation));
}
- if (StringUtil.isNotBlank(control_z)){
- detailList.add(StringUtil.format("控制运用水位{}米",control_z));
+ if (StringUtil.isNotBlank(flse_lim_stag)) {
+ detailList.add(StringUtil.format("汛限水位{}米", flse_lim_stag));
}
- if (StringUtil.isNotBlank(wat_shed_area)){
- detailList.add(StringUtil.format("集雨面积{}平方千米",wat_shed_area));
+ if (StringUtil.isNotBlank(flse_lim_stag)) {
+ detailList.add(StringUtil.format("汛限水位{}米", flse_lim_stag));
}
- String detail = StringUtil.join(detailList,",");
+ if (StringUtil.isNotBlank(control_z)) {
+ detailList.add(StringUtil.format("控制运用水位{}米", control_z));
+ }
+ if (StringUtil.isNotBlank(wat_shed_area)) {
+ detailList.add(StringUtil.format("集雨面积{}平方千米", wat_shed_area));
+ }
+ String detail = StringUtil.join(detailList, ",");
text = StringUtil.format(" {}{}水位{}米,{}库水位{}米,({}{}米,{})。",
- resNm,oldTm,oldRz,newTm,newRz,upOrDown,diffRz,detail);
+ resNm, oldTm, oldRz, newTm, newRz, upOrDown, diffRz, detail);
return text;
}
/**
* 构建大中库信息
+ *
* @param dzkList
*/
private void formatDzkInfo(List<DzkInfo> dzkList) {
@@ -289,45 +378,49 @@
// this.overBigInfo = String.join("\n\r\r\r\r",bigListInfo);
// this.overMidInfo = String.join("\n\r\r\r\r",midListInfo);
- this.overBigInfo = String.join("\n",bigListInfo);
- this.overMidInfo = String.join("\n",midListInfo);
+ this.overBigInfo = String.join("\n", bigListInfo);
+ this.overMidInfo = String.join("\n", midListInfo);
}
- private String generateDzkInfo(DzkInfo dzkInfo){
+ private String generateDzkInfo(DzkInfo dzkInfo) {
String text = "";
List<String> detailList = new ArrayList<>();
- if (StringUtil.isNotBlank(dzkInfo.getIs_gate())){
- detailList.add(StringUtil.format("溢洪道{}",dzkInfo.getIs_gate()));
+ if (StringUtil.isNotBlank(dzkInfo.getIs_gate())) {
+ detailList.add(StringUtil.format("溢洪道{}", dzkInfo.getIs_gate()));
}
- if (ObjectUtil.isNotEmpty(dzkInfo.getOver_stag())){
- detailList.add(StringUtil.format("超汛限水位{}米",dzkInfo.getOver_stag()));
+ if (ObjectUtil.isNotEmpty(dzkInfo.getOver_stag())) {
+ detailList.add(StringUtil.format("超汛限水位{}米", dzkInfo.getOver_stag()));
}
- if (ObjectUtil.isNotEmpty(dzkInfo.getTot_cap())){
- detailList.add(StringUtil.format("总库容{}万立方米",dzkInfo.getTot_cap()));
+ if (ObjectUtil.isNotEmpty(dzkInfo.getTot_cap())) {
+ detailList.add(StringUtil.format("总库容{}万立方米", dzkInfo.getTot_cap()));
}
- if (ObjectUtil.isNotEmpty(dzkInfo.getWat_shed_area())){
- detailList.add(StringUtil.format("集雨面积{}平方千米",dzkInfo.getWat_shed_area()));
+ if (ObjectUtil.isNotEmpty(dzkInfo.getWat_shed_area())) {
+ detailList.add(StringUtil.format("集雨面积{}平方千米", dzkInfo.getWat_shed_area()));
}
- if (ObjectUtil.isNotEmpty(dzkInfo.getTb_norm_pool_stag())){
- detailList.add(StringUtil.format("正常蓄水位{}米",dzkInfo.getTb_norm_pool_stag()));
+ if (ObjectUtil.isNotEmpty(dzkInfo.getTb_norm_pool_stag())) {
+ detailList.add(StringUtil.format("正常蓄水位{}米", dzkInfo.getTb_norm_pool_stag()));
}
- if (ObjectUtil.isNotEmpty(dzkInfo.getTb_flse_lim_stag())){
- detailList.add(StringUtil.format("汛限水位{}米",dzkInfo.getTb_flse_lim_stag()));
+ 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);
+ String detail = String.join(",", detailList);
+ text = StringUtil.format(" {}{}{}({})。", dzkInfo.getP_ad_name(), dzkInfo.getAd_name(), dzkInfo.getRes_name(), detail);
return text;
}
/**
* 构建全省水库超汛限信息
+ *
* @param totalList
* @return
*/
- private void formatTotalInfo(List<TotalInfo> totalList){
+ private void formatTotalInfo(List<TotalInfo> totalList) {
String totalLabel = "全省水库超汛限:";
String smallLable = "超汛限的小型水库有:";
@@ -349,22 +442,22 @@
dangerCountTotal += totalInfo.getDanger_count_all();
overDangerCountTotal += totalInfo.getOver_danger_count_all();
- if (totalInfo.getSmall_all() == 0){
+ if (totalInfo.getSmall_all() == 0) {
continue;
}
- String smallRegionCout = StringUtil.format("{}{}座",totalInfo.getP_ad_name(),totalInfo.getSmall_all());
+ String smallRegionCout = StringUtil.format("{}{}座", totalInfo.getP_ad_name(), totalInfo.getSmall_all());
smallList.add(smallRegionCout);
}
String totalValue =
StringUtil.format("今日{},全省共有{}座水库超汛限水位,其中大型水库{}座、中型水库{}座、小型水库{}座。全省水库持续安全运行。全省病险水库中,有{}座超汛限水位,有{}座没有超汛限但超了控制运用水位",
- this.hour,total,big,mid,small,dangerCountTotal,overDangerCountTotal);
+ this.hour, total, big, mid, small, dangerCountTotal, overDangerCountTotal);
- String smallValue = String.join("、",smallList);
+ String smallValue = String.join("、", smallList);
this.totalInfo = totalValue;
- this.overSmallInfo =smallValue;
+ this.overSmallInfo = smallValue;
}
}
--
Gitblit v1.9.3