From 0bdd1bda41e6fa8436d070b1f4e5b1f19f86d9d8 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 27 Feb 2024 14:34:46 +0800
Subject: [PATCH] Merge branch 'jtdev' into 20240222-patrol

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java |  141 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 140 insertions(+), 1 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 a73216e..ec5ff96 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
@@ -7,6 +7,7 @@
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -17,14 +18,28 @@
 	private String tm;
 	private String hour;
 
-	//超汛限
+	//全省超汛限
 	private String totalInfo;
+	//超汛限小型水库
 	private String overSmallInfo;
+	//超汛限大型水库
 	private String overBigInfo;
+	//超汛限中型水库
 	private String overMidInfo;
 
 	//省直水库
 	private String provinceInfo;
+
+	//全省水库超正常
+	private String totalOverNormalInfo;
+	//超正常小型水库
+	private String overNormalSmallInfo;
+	//全省水库超正常10cm以上
+	private String totalOverNormal10Info;
+	//超正常大型水库
+	private String overNormalBigInfo;
+	//超正常中型水库
+	private String overNormalMidInfo;
 
 	public OverWord(List<TotalInfo> totalList, List<DzkInfo> dzkList, List<OverDetail> overDetailList,List<SzInfo> szInfoList){
 		this.tm = new SimpleDateFormat("MM月dd日H时").format(new Date());
@@ -35,6 +50,130 @@
 		formatSzInfo(szInfoList);
 	}
 
+	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());
+
+		formatTotalInfo(totalList);
+		formatDzkInfo(dzkList);
+		formatSzInfo(szInfoList);
+
+		formatOverNormal(totalOverList,totalOver10List);
+	}
+
+	/**
+	 * 构建超正常信息
+	 * @param totalOverList
+	 * @param totalOver10List
+	 */
+	private void formatOverNormal(List<TotalInfo> totalOverList, List<TotalInfo> totalOver10List) {
+
+		int total = 0;
+		int big = 0;
+		int mid = 0;
+		int small = 0;
+		int dangerCountTotal = 0;
+		int overDangerCountTotal = 0;
+		List<String> smallList = new ArrayList<>();
+		List<String> midList = new ArrayList<>();
+		List<String> bigList = new ArrayList<>();
+
+
+		for (int i = 0; i < totalOverList.size(); i++) {
+			TotalInfo totalInfo = totalOverList.get(i);
+			total += totalInfo.getCount_all();
+			big += totalInfo.getBig_all();
+			mid += totalInfo.getMid_all();
+			small += totalInfo.getSmall_all();
+			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());
+				smallList.add(smallRegionCout);
+			}
+			// "mid_over_detail": "许家冲水库-5.59,游河水库-1.42,马鞍山水库-0.2,桃园河水库-3.19,白果河水库-1.56,两河口水库-4.97",
+			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->{
+					String reservoirName = item.split("~")[0];
+					bigList.add(reservoirName);
+				});
+			}
+
+			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->{
+					String reservoirName = item.split("~")[0];
+					midList.add(reservoirName);
+				});
+			}
+		}
+
+		String totalValue =
+			StringUtil.format("今日{},全省共有{}座水库超正常水位,其中大型水库{}座、中型水库{}座、小型水库{}座。全省水库持续安全运行。全省病险水库中,有{}座超正常水位,有{}座没有超正常但超了控制运用水位",
+				this.hour,total,big,mid,small,dangerCountTotal,overDangerCountTotal);
+
+		String totalOverNormal10Value = getOverNormal10(totalOver10List);
+
+		String smallValue = String.join("、",smallList);
+		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= "    其中,没有超正常的中型水库。";
+		}
+
+		this.totalOverNormalInfo = totalValue;
+		this.overNormalSmallInfo =smallValue;
+		this.overNormalBigInfo = bigValue;
+		this.overNormalMidInfo = midValue;
+		this.totalOverNormal10Info = totalOverNormal10Value;
+
+	}
+
+	//获取超正常10cm的水库
+	private String getOverNormal10(List<TotalInfo> totalOver10List) {
+
+		int total = 0;
+		int big = 0;
+		int mid = 0;
+		int small = 0;
+		int dangerCountTotal = 0;
+		int overDangerCountTotal = 0;
+
+		for (int i = 0; i < totalOver10List.size(); i++) {
+			TotalInfo totalInfo = totalOver10List.get(i);
+			total += totalInfo.getCount_all();
+			big += totalInfo.getBig_all();
+			mid += totalInfo.getMid_all();
+			small += totalInfo.getSmall_all();
+			dangerCountTotal += totalInfo.getDanger_count_all();
+			overDangerCountTotal += totalInfo.getOver_danger_count_all();
+		}
+
+		String totalValue =
+			StringUtil.format("今日{},全省共有{}座水库超正常水位,其中大型水库{}座、中型水库{}座、小型水库{}座。全省水库持续安全运行。全省病险水库中,有{}座超正常水位,有{}座没有超正常但超了控制运用水位",
+				this.hour,total,big,mid,small,dangerCountTotal,overDangerCountTotal);
+
+		return totalValue;
+	}
+
 	/**
 	 * 构建省直信息
 	 * @param szInfoList

--
Gitblit v1.9.3