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/hk/controller/HkController.java | 21 +++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java | 11 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/inFloodSeason_overFloodTemplate.docx | 0
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/OverWord.java | 141 +++++++++++++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml | 16 ++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx | 0
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/MyDateUtils.java | 39 ++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java | 32 +++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java | 23 +++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java | 8 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/impl/SjztmdServiceImpl.java | 36 +++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java | 8 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/ISjztmdService.java | 2
13 files changed, 330 insertions(+), 7 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
index 4575600..8d4b5d0 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/controller/HkController.java
@@ -333,8 +333,11 @@
public R syncVideo(@RequestBody HkVO hk) {
// 通过水库编号获取区域(区县)名称
AttResAdVO info = attResBaseService.getWaterRegionInfoByResGuid(hk.getRegionIndexCode());
- String resName = hk.getRegionName();
+ // 判断该水库同一个区县下是否存在同水库名称的,如果是存在多个,水库名称前面拼上乡镇名称
+ String resName = setWaterName(hk,info);
+ // 设置区域名称
hk.setRegionName(info.getCountyName());
+ // 判断
// 通过区域名称查询对应的区域编号
String rootRegionId = hkService.regionNodesByParams(hk);
if (null!= rootRegionId && !rootRegionId.equals("")){
@@ -364,4 +367,20 @@
}
}
+ /**
+ * 设置水库名称( 判断该水库同一个区县下是否存在同水库名称的,如果是存在多个,水库名称前面拼上乡镇名称)
+ * @param hk
+ * @param info
+ * @return
+ */
+ private String setWaterName(HkVO hk, AttResAdVO info) {
+ // 根据水库名称、所在区域查询改水库的数量
+ Integer number = attResBaseService.getWaterCountByResNameAndCountyName(hk.getRegionName(),info.getCountyCode());
+ if (number>1){
+ return hk.getRegionName() + "(" + info.getTownName() + ")";
+ }else {
+ return hk.getRegionName();
+ }
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
index bc02ea6..6aab487 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.java
@@ -70,4 +70,12 @@
int getDimResInfoACount();
Boolean updateIsShowStatus(@Param("ids") String ids, @Param("isShow") Integer status);
+
+ /**
+ * 根据水库名称、所在区域查询改水库的数量
+ * @param resName 水库名称
+ * @param countyCode 区县编号
+ * @return
+ */
+ Integer getWaterCountByResNameAndCountyName(@Param("resName") String resName,@Param("countyCode") String countyCode);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
index 263678c..024122d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
@@ -236,5 +236,21 @@
</update>
+ <!--根据水库名称、所在区域查询改水库的数量-->
+ <select id="getWaterCountByResNameAndCountyName" resultType="java.lang.Integer">
+ SELECT
+ count(1)
+ FROM sjzt_md."att_res_base" a
+ LEFT JOIN sjzt_md."att_ad_base" b ON a."interior_ad_guid" = b."guid"
+ LEFT JOIN sjzt_md."att_ad_base" c ON b."p_ad_code" = c."guid"
+ LEFT JOIN sjzt_md."att_ad_base" d ON c."p_ad_code" = d."guid"
+ where a."name" = #{resName}
+ and (
+ (b."ad_grad" = 3 and b."ad_code" = #{countyCode})
+ or
+ (c."ad_grad" = 3 and c."ad_code" = #{countyCode})
+ )
+ </select>
+
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
index b3ad0d8..6cee98b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttResBaseService.java
@@ -57,4 +57,12 @@
int getDimResInfoACount();
Boolean updateIsShowStatus(String ids, Integer status);
+
+ /**
+ * 根据水库名称、所在区域查询改水库的数量
+ * @param resName 水库名称
+ * @param countyName 区县
+ * @return
+ */
+ Integer getWaterCountByResNameAndCountyName(String resName, String countyName);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
index 73d6b39..6a85f17 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResBaseServiceImpl.java
@@ -123,4 +123,15 @@
public Boolean updateIsShowStatus(String ids, Integer status) {
return baseMapper.updateIsShowStatus(ids,status);
}
+
+ /**
+ * 根据水库名称、所在区域查询改水库的数量
+ * @param resName 水库名称
+ * @param countyCode 区县
+ * @return
+ */
+ @Override
+ public Integer getWaterCountByResNameAndCountyName(String resName, String countyCode) {
+ return baseMapper.getWaterCountByResNameAndCountyName(resName,countyCode);
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/MyDateUtils.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/MyDateUtils.java
new file mode 100644
index 0000000..2907625
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/MyDateUtils.java
@@ -0,0 +1,39 @@
+package cn.gistack.sm.sjztmd.util;
+
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.StringUtil;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class MyDateUtils {
+
+ /**
+ * 判断当前日期是否在汛期,汛期
+ * @return
+ */
+ public static Boolean isTodayInFloodSeason(){
+ Boolean inSeason = true;
+
+ Date today = DateUtil.now();
+
+ String todayStr = DateUtil.format(today, "yyyy-MM-dd");
+ String nowYear = todayStr.split("-")[0];
+
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
+ try {
+ Date startDate = sdf.parse(StringUtil.format("{}-05-01",nowYear));
+ Date endDate = sdf.parse(StringUtil.format("{}-11-01",nowYear));
+
+ inSeason = today.after(startDate)&&today.before(endDate);
+ return inSeason;
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java
index bb91bd2..6c7ca14 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java
@@ -2,6 +2,7 @@
+import cn.gistack.sm.sjztmd.util.MyDateUtils;
import cn.gistack.sm.sjztmd.word.service.ISjztmdService;
import cn.gistack.sm.sjztmd.word.util.ExcelUtil;
import cn.gistack.sm.sjztmd.word.util.WordUtil;
@@ -73,8 +74,28 @@
List<OverDetail> overDetailList = sjztmdService.getOverDetailInfo(isShow);
List<SzInfo> szInfoList = sjztmdService.getSzInfo(isShow);
- byte[] data = WordUtil.GetOverInfo(totalList,dzkList,overDetailList,szInfoList);
+ HashMap<String,String> over10Params = new HashMap<>();
+ //small_start_stag=0&small_end_stag=2&mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2
+ over10Params.put("small_start_stag", "10");
+ over10Params.put("mid_start_stag", "10");
+ over10Params.put("big_start_stag", "10");
+ HashMap<String,String> normalParams = new HashMap<>();
+ //small_start_stag=0&small_end_stag=2&mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2
+ normalParams.put("small_start_stag", "0");
+ normalParams.put("mid_start_stag", "0");
+ normalParams.put("big_start_stag", "0");
+
+
+ List<TotalInfo> totalOverList = sjztmdService.getTotalOverInfo(isShow,normalParams);
+ List<TotalInfo> totalOver10List = sjztmdService.getTotalOverInfo(isShow,over10Params);
+ byte[] data = null;
+ if (MyDateUtils.isTodayInFloodSeason()){
+ data = WordUtil.GetOverInfo(totalList,dzkList,overDetailList,szInfoList);
+ }else {
+ data= WordUtil.GetNotInSeasonOverInfo(totalList,dzkList,overDetailList,szInfoList,totalOverList,totalOver10List);
+
+ }
// 创建响应实体并设置响应头,将输出流作为响应体返回给客户端
InputStreamResource resource = new InputStreamResource(new ByteArrayInputStream(data));
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/ISjztmdService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/ISjztmdService.java
index d85aa96..c4b8830 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/ISjztmdService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/ISjztmdService.java
@@ -37,4 +37,6 @@
List<StationExport> getImageStation(HttpServletResponse response, StationParams params, String exportFunc);
List<StationExport> getOsmotic(HttpServletResponse response, StationParams params, String exportFunc);
+
+ List<TotalInfo> getTotalOverInfo(String isShow, HashMap<String, String> over10Params);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/impl/SjztmdServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/impl/SjztmdServiceImpl.java
index 31f8fab..8c2db7e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/impl/SjztmdServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/service/impl/SjztmdServiceImpl.java
@@ -18,6 +18,7 @@
import com.alibaba.fastjson.parser.Feature;
import com.baomidou.dynamic.datasource.annotation.DS;
import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,14 +38,19 @@
@Service
@AllArgsConstructor
@DS("zt")
+@Slf4j
public class SjztmdServiceImpl implements ISjztmdService {
//总计
- private final String RIBAO_SHEET1_TOTAL_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao_sheet1/api?small_start_stag=0&small_end_stag=2&mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2";
+// private final String RIBAO_SHEET1_TOTAL_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao_sheet1/api?small_start_stag=0&small_end_stag=2&mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2";
+ private final String RIBAO_SHEET1_TOTAL_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao_sheet1/api?small_start_stag=0&mid_start_stag=0&big_start_stag=0";
+ private final String RIBAO_SHEET1_OVER_NORM_POOL_STAG = "/services/1234567890ABCDEFGHIJKLMN/ribao/sheet1_over_norm_pool_stag/api?";
//中大型水库
- private final String RIBAO_SHEET2_ZDX_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao/sheet2_zdx/api?mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2";
+// private final String RIBAO_SHEET2_ZDX_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao/sheet2_zdx/api?mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2";
+ private final String RIBAO_SHEET2_ZDX_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao/sheet2_zdx/api?mid_start_stag=0&big_start_stag=0";
//超汛明细
- private final String RIBAO_SHEET3_OVER_STAG_LIST_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao/sheet3_over_stag_list/api?small_start_stag=0&small_end_stag=2&mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2";
+// private final String RIBAO_SHEET3_OVER_STAG_LIST_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao/sheet3_over_stag_list/api?small_start_stag=0&small_end_stag=2&mid_start_stag=0&mid_end_stag=2&big_start_stag=0&big_end_stag=2";
+ private final String RIBAO_SHEET3_OVER_STAG_LIST_URL = "/services/1234567890ABCDEFGHIJKLMN/ribao/sheet3_over_stag_list/api?small_start_stag=0&mid_start_stag=0&big_start_stag=0";
//省直管
private final String SZ_INFO = "/services/1234567890ABCDEFGHIJKLMN/ribao/shengzh_new_rz/api";
@@ -593,6 +599,28 @@
}
@Override
+ public List<TotalInfo> getTotalOverInfo(String isShow, HashMap<String, String> map) {
+
+ String params = "&is_show=" + isShow;
+ if (map != null){
+ for (Map.Entry<String, String> entry : map.entrySet()){
+ String key=entry.getKey();
+ String vlaue = entry.getValue();
+
+ String p = StringUtil.format("&{}={}",key,vlaue);
+ params +=p;
+ }
+ }
+
+ JSONObject ztData = this.getZtData(params, RIBAO_SHEET1_OVER_NORM_POOL_STAG);
+ JSONArray data = ztData.getJSONArray("data");
+ List<TotalInfo> list = data.toJavaList(TotalInfo.class);
+ return list;
+
+ }
+
+
+ @Override
public List<DzkInfo> getDzkInfo(String isShow) {
JSONObject ztData = this.getZtData("&is_show="+isShow, RIBAO_SHEET2_ZDX_URL);
JSONArray data = ztData.getJSONArray("data");
@@ -1127,6 +1155,8 @@
if (activeProfile.equals("test")) {
url = ZtApiUrlConstant.url_prefix_test + url + params;
}
+
+ log.info("请求url地址:{}", url);
//设置请求头
HttpHeaders headers = new HttpHeaders();
headers.add(ZtConfigConstant.header_key, ZtConfigConstant.header_value);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java
index dbbe6ff..c209699 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java
@@ -1,5 +1,6 @@
package cn.gistack.sm.sjztmd.word.util;
+import cn.gistack.sm.sjztmd.util.MyDateUtils;
import cn.gistack.sm.sjztmd.word.vo.*;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.NumbericRenderData;
@@ -96,6 +97,27 @@
return outputStream.toByteArray();
}
+ /**
+ *
+ * @param totalList 全省水库超汛
+ * @param dzkList 大中库超汛
+ * @param overDetailList 超汛明细
+ * @param szInfoList 省直超汛
+ * @param totalOverList 超正常
+ * @param totalOver10List 超正常10cm
+ * @return
+ */
+ public static byte[] GetNotInSeasonOverInfo(List<TotalInfo> totalList, List<DzkInfo> dzkList, List<OverDetail> overDetailList, List<SzInfo> szInfoList, List<TotalInfo> totalOverList, List<TotalInfo> totalOver10List) throws Exception{
+ InputStream inputStream = WordUtil.class.getClassLoader().getResourceAsStream("word/doc/inFloodSeason_overFloodTemplate.docx");
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ OverWord overWord = new OverWord(totalList, dzkList, overDetailList, szInfoList,totalOverList,totalOver10List);
+ XWPFTemplate template = XWPFTemplate.compile(inputStream).render(createOverWordParam(overWord));
+ template.write(outputStream);
+ outputStream.flush();
+ outputStream.close();
+ return outputStream.toByteArray();
+ }
+
private static Map<String, Object> createOverWordParam(OverWord overWord) {
Map<String, Object> params = new HashMap<>();
@@ -105,9 +127,16 @@
params.put("大型水库详情", overWord.getOverBigInfo());
params.put("中型水库详情", overWord.getOverMidInfo());
params.put("省直水库详情", overWord.getProvinceInfo());
+ //不在汛期内
+ if (!MyDateUtils.isTodayInFloodSeason()){
+ params.put("全省水库超正常", overWord.getTotalOverNormalInfo());
+ params.put("全省水库超正常十厘米以上", overWord.getTotalOverNormal10Info());
+ params.put("超正常小型水库详情", overWord.getOverNormalSmallInfo());
+ params.put("超正常大型水库详情", overWord.getOverNormalBigInfo());
+ params.put("超正常中型水库详情", overWord.getOverNormalMidInfo());
+ }
return params;
-
}
private static byte[] GenerateWord(String templatePath, Object object) throws Exception {
@@ -120,4 +149,5 @@
return outputStream.toByteArray();
}
+
}
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
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/inFloodSeason_overFloodTemplate.docx b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/inFloodSeason_overFloodTemplate.docx
new file mode 100644
index 0000000..194dec1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/inFloodSeason_overFloodTemplate.docx
Binary files differ
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx
index 2d34a1b..efe3ffe 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx
Binary files differ
--
Gitblit v1.9.3