From a8385a2b16593c8c6db45c2f45f88f04b099fddd Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 04 Dec 2023 11:20:49 +0800
Subject: [PATCH] 超汛日报excel、word导出

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java |  106 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 65 insertions(+), 41 deletions(-)

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 2f9a089..b180882 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,10 +1,13 @@
 package cn.gistack.sm.sjztmd.word.util;
 
-import cn.gistack.sm.sjztmd.word.vo.TbWordVO;
+import cn.gistack.sm.sjztmd.word.vo.*;
 import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.data.NumbericRenderData;
 
 import java.io.*;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,25 +28,10 @@
 		return outputStream.toByteArray();
 	}
 
-	public static byte[] GetEightFloodInfo() throws Exception{
-		String templatePath = "word/doc/eightFloodInfoTemplate.docx";
-		HashMap<String,Object> map = new HashMap<>();
-		byte[] bytes = GenerateWord(templatePath, map);
-		return bytes;
-	}
-
-	private static byte[] GenerateWord(String templatePath,Object object) throws Exception {
-		InputStream inputStream = WordUtil.class.getClassLoader().getResourceAsStream(templatePath);
-		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-		XWPFTemplate template = XWPFTemplate.compile(inputStream).render(object);
-		template.write(outputStream);
-		outputStream.flush();
-		outputStream.close();
-		return outputStream.toByteArray();
-	}
 
 	/**
 	 * 根据水库id获取数据
+	 *
 	 * @return
 	 */
 	private static Map<String, Object> createParams(TbWordVO tbWordVO) {
@@ -53,7 +41,7 @@
 		params.put("县", tbWordVO.getCountyName());
 		params.put("镇", tbWordVO.getTownName());
 		params.put("河流名称", tbWordVO.getLocRvName());
-		params.put("水库功能",tbWordVO.getResFuncText());
+		params.put("水库功能", tbWordVO.getResFuncText());
 		params.put("调节性能", tbWordVO.getAdjustPropText());
 		params.put("水库坝址以上控制流域面积", tbWordVO.getConArea());
 		params.put("流域多年平均降雨量", tbWordVO.getMoyearRainAvg());
@@ -62,34 +50,70 @@
 		params.put("校核洪水标准", tbWordVO.getChecFlSta());
 		params.put("总库容", tbWordVO.getTotalCap());
 		params.put("水文特征", tbWordVO.getHydrologicalCharacteristics());
-		params.put("工程等别",tbWordVO.getEngGrad());
-		params.put("挡水建筑物泄洪建筑物正常溢洪道",tbWordVO.getBuildingText());
-		params.put("主坝信息",tbWordVO.getMainDamInfo());
-		params.put("挡水建筑物泄洪建筑物正常溢洪道等详情",tbWordVO.getBuildingInfo());
-		params.put("输水建筑物输水道形式",tbWordVO.getAqueductType());//若有两个以上输水建筑物,则描述设计流量较大的,若只有一个输水建筑物则去掉“主要”
-		params.put("断面尺寸",tbWordVO.getSection());
-		params.put("进口底槛高程",tbWordVO.getThresholdElevation());
-		params.put("设计流量",tbWordVO.getDesignFlow());
-		params.put("电站信息",tbWordVO.getPowerStationInfo());
-		params.put("保护城市",tbWordVO.getProtectCity());
-		params.put("保护人口保护耕地",tbWordVO.getProtectPersonLand());
-		params.put("保护铁路",tbWordVO.getProtectThings());//铁路、公路、管线、企业几个依次罗列,超过三个列出第二个后为“XX等”,后面不需罗列
-		params.put("经济效益",tbWordVO.getEconomicBenefit());//若既有灌溉又有供水,则有“此外,”,无灌溉有供水直接介绍供水
-		params.put("工程始建时间",tbWordVO.getStartTime());
-		params.put("下闸蓄水时间",tbWordVO.getWaterStorageTm());
+		params.put("工程等别", tbWordVO.getEngGrad());
+		params.put("挡水建筑物泄洪建筑物正常溢洪道", tbWordVO.getBuildingText());
+		params.put("主坝信息", tbWordVO.getMainDamInfo());
+		params.put("挡水建筑物泄洪建筑物正常溢洪道等详情", tbWordVO.getBuildingInfo());
+		params.put("输水建筑物输水道形式", tbWordVO.getAqueductType());//若有两个以上输水建筑物,则描述设计流量较大的,若只有一个输水建筑物则去掉“主要”
+		params.put("断面尺寸", tbWordVO.getSection());
+		params.put("进口底槛高程", tbWordVO.getThresholdElevation());
+		params.put("设计流量", tbWordVO.getDesignFlow());
+		params.put("电站信息", tbWordVO.getPowerStationInfo());
+		params.put("保护城市", tbWordVO.getProtectCity());
+		params.put("保护人口保护耕地", tbWordVO.getProtectPersonLand());
+		params.put("保护铁路", tbWordVO.getProtectThings());//铁路、公路、管线、企业几个依次罗列,超过三个列出第二个后为“XX等”,后面不需罗列
+		params.put("经济效益", tbWordVO.getEconomicBenefit());//若既有灌溉又有供水,则有“此外,”,无灌溉有供水直接介绍供水
+		params.put("工程始建时间", tbWordVO.getStartTime());
+		params.put("下闸蓄水时间", tbWordVO.getWaterStorageTm());
 		// 鉴定时间 > 除险加固
-		params.put("安全鉴定和除险加固",tbWordVO.getSafetyMonitorText());
+		params.put("安全鉴定和除险加固", tbWordVO.getSafetyMonitorText());
 		// 鉴定时间 < 除险加固
 		//params.put("安全鉴定和除险加固","2012年9月,水库进行安全鉴定,鉴定结果为“三类坝”(加一个双引号),工程主要存在问题为坝顶及心墙顶欠高,大坝渗透系数偏大,溢洪道过流能力不足、边墙高度不足等(加一个“等”)。
 		// 针对水库安全鉴定发现的问题,水库除险加固工程于2019年11月动工,2022年6月蓄水验收。");
-		params.put("管理单位名称",tbWordVO.getMUnitName());
-		params.put("管理单位性质",tbWordVO.getMUnitNature());
-		params.put("主管部门",tbWordVO.getCUnitName());// 水库基本信息表,不是填报表
-		params.put("管理单位职工人数",tbWordVO.getMUnitPersonNumber());
-		params.put("主管部门责任人",tbWordVO.getCompetentDepartmentInfo());  // 责任人信息表,不是填报表
-		params.put("行政主管单位",tbWordVO.getAdministrativeUnit());
-		params.put("行政责任人职务手机号码",tbWordVO.getAdministrativeInfo()); // 责任人信息表,不是填报表
+		params.put("管理单位名称", tbWordVO.getMUnitName());
+		params.put("管理单位性质", tbWordVO.getMUnitNature());
+		params.put("主管部门", tbWordVO.getCUnitName());// 水库基本信息表,不是填报表
+		params.put("管理单位职工人数", tbWordVO.getMUnitPersonNumber());
+		params.put("主管部门责任人", tbWordVO.getCompetentDepartmentInfo());  // 责任人信息表,不是填报表
+		params.put("行政主管单位", tbWordVO.getAdministrativeUnit());
+		params.put("行政责任人职务手机号码", tbWordVO.getAdministrativeInfo()); // 责任人信息表,不是填报表
 		return params;
 	}
 
+
+	public static byte[] GetOverInfo(List<TotalInfo> totalList, List<DzkInfo> dzkList, List<OverDetail> overDetailList,List<SzInfo> szInfoList) throws Exception {
+		InputStream inputStream = WordUtil.class.getClassLoader().getResourceAsStream("word/doc/overFloodTemplate.docx");
+		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+		OverWord overWord = new OverWord(totalList, dzkList, overDetailList, szInfoList);
+		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<>();
+
+		params.put("时间", overWord.getTm());
+		params.put("全省水库超汛限", overWord.getTotalInfo());
+		params.put("小型水库详情", overWord.getOverSmallInfo());
+		params.put("大型水库详情", overWord.getOverBigInfo());
+		params.put("中型水库详情", overWord.getOverMidInfo());
+		params.put("省直水库详情", overWord.getProvinceInfo());
+
+		return params;
+
+	}
+
+	private static byte[] GenerateWord(String templatePath, Object object) throws Exception {
+		InputStream inputStream = WordUtil.class.getClassLoader().getResourceAsStream(templatePath);
+		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+		XWPFTemplate template = XWPFTemplate.compile(inputStream).render(object);
+		template.write(outputStream);
+		outputStream.flush();
+		outputStream.close();
+		return outputStream.toByteArray();
+	}
+
 }

--
Gitblit v1.9.3