From 6250972b924a8e45ad61fe4cd51d6db60a67013c Mon Sep 17 00:00:00 2001
From: aix <vip_xiaobin810@163.com>
Date: Mon, 15 Jul 2024 13:54:57 +0800
Subject: [PATCH] 资料整编导出优化

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/util/WordUtil.java |   28 ++++++++++++++++++++++++----
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/TbWordVO.java   |   19 +++++++++++--------
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/skcgmb.docx                    |    0 
 3 files changed, 35 insertions(+), 12 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 36ed4f8..c0d2f18 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
@@ -33,6 +33,26 @@
 		return outputStream.toByteArray();
 	}
 
+	/**
+	 * 去除小数位为0的
+	 * @param num
+	 * @return
+	 */
+	public static String removeTrailingZero(String num) {
+		// 检查是否包含小数点
+		if (num.contains(".")) {
+			// 分割整数和小数部分
+			String[] parts = num.split("\\.");
+			if (parts.length == 2) {
+				// 去除小数部分末尾的0,并检查是否仅剩下小数点(例如"123.")
+				String decimalPart = parts[1].replaceAll("0+$", "").replaceAll("^\\.$", "");
+				// 如果小数部分处理后为空,则返回整数部分;否则拼接整数和小数部分
+				return decimalPart.isEmpty() ? parts[0] : parts[0] + "." + decimalPart;
+			}
+		}
+		// 如果不包含小数点或处理失败,则返回原字符串
+		return num;
+	}
 
 	/**
 	 * 根据水库id获取数据
@@ -48,12 +68,12 @@
 		params.put("河流名称", tbWordVO.getLocRvName());
 		params.put("水库功能", tbWordVO.getResFuncText());
 		params.put("调节性能", tbWordVO.getAdjustPropText());
-		params.put("水库坝址以上控制流域面积", tbWordVO.getConArea());
-		params.put("流域多年平均降雨量", tbWordVO.getMoyearRainAvg());
-		params.put("多年平均年径流量", tbWordVO.getMoyearFlAvg());
+		params.put("水库坝址以上控制流域面积", removeTrailingZero(tbWordVO.getConArea()));
+		params.put("流域多年平均降雨量", removeTrailingZero(tbWordVO.getMoyearRainAvg()));
+		params.put("多年平均年径流量", removeTrailingZero(tbWordVO.getMoyearFlAvg()));
 		params.put("设计洪水标准", tbWordVO.getDesFlSta());
 		params.put("校核洪水标准", tbWordVO.getChecFlSta());
-		params.put("总库容", tbWordVO.getTotalCap());
+		params.put("总库容", removeTrailingZero(tbWordVO.getTotalCap()));
 		params.put("水文特征", tbWordVO.getHydrologicalCharacteristics());
 		params.put("工程等别", tbWordVO.getEngGrad());
 		params.put("挡水建筑物泄洪建筑物正常溢洪道", tbWordVO.getBuildingText());
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/TbWordVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/TbWordVO.java
index cc520ef..16d8fc9 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/TbWordVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/vo/TbWordVO.java
@@ -2,6 +2,7 @@
 
 import cn.gistack.sm.sjztmd.entity.*;
 import cn.gistack.sm.sjztmd.word.enums.*;
+import cn.gistack.sm.sjztmd.word.util.WordUtil;
 import com.alibaba.nacos.common.utils.StringUtils;
 import lombok.Data;
 import org.checkerframework.checker.formatter.qual.UnknownFormat;
@@ -498,29 +499,31 @@
 		//水文特征
 		List<String> hydrologicalCharacteristicsList = new ArrayList<>();
 
+		List<String> hydrologicalCharacteristicsList2 = new ArrayList<>();
+
 		if (tbAttResStagChar.getAdjustStorCap() != null) {
-			hydrologicalCharacteristicsList.add(StringUtil.format("兴利库容{}万m³", tbAttResStagChar.getAdjustStorCap().toString()));
+			hydrologicalCharacteristicsList.add(StringUtil.format("兴利库容{}万m³", WordUtil.removeTrailingZero(tbAttResStagChar.getAdjustStorCap().toString())));
 		}
 		if (tbAttResStagChar.getFlprCap() != null) {
-			hydrologicalCharacteristicsList.add(StringUtil.format("调洪库容{}万m³", tbAttResStagChar.getFlprCap().toString()));
+			hydrologicalCharacteristicsList.add(StringUtil.format("调洪库容{}万m³", WordUtil.removeTrailingZero(tbAttResStagChar.getFlprCap().toString())));
 		}
 		if (tbAttResStagChar.getDeadCap() != null) {
-			hydrologicalCharacteristicsList.add(StringUtil.format("死库容{}万m³", tbAttResStagChar.getDeadCap().toString()));
+			hydrologicalCharacteristicsList.add(StringUtil.format("死库容{}万m³", WordUtil.removeTrailingZero(tbAttResStagChar.getDeadCap().toString())));
 		}
 		if (tbAttResStagChar.getChecFlStag() != null) {
-			hydrologicalCharacteristicsList.add(StringUtil.format("校核洪水位{}m", tbAttResStagChar.getChecFlStag().toString()));
+			hydrologicalCharacteristicsList2.add(StringUtil.format(this.resName + "校核洪水位{}m", WordUtil.removeTrailingZero(tbAttResStagChar.getChecFlStag().toString())));
 		}
 		if (tbAttResStagChar.getDesFlStag() != null) {
-			hydrologicalCharacteristicsList.add(StringUtil.format("设计洪水位{}m", tbAttResStagChar.getDesFlStag().toString()));
+			hydrologicalCharacteristicsList2.add(StringUtil.format("设计洪水位{}m", WordUtil.removeTrailingZero(tbAttResStagChar.getDesFlStag().toString())));
 		}
 		if (tbAttResStagChar.getCorNormStag() != null) {
-			hydrologicalCharacteristicsList.add(StringUtil.format("正常蓄水位{}m", tbAttResStagChar.getCorNormStag().toString()));
+			hydrologicalCharacteristicsList2.add(StringUtil.format("正常蓄水位{}m", WordUtil.removeTrailingZero(tbAttResStagChar.getCorNormStag().toString())));
 		}
 		if (tbAttResStagChar.getDeadStag() != null) {
-			hydrologicalCharacteristicsList.add(StringUtil.format("死水位{}m", tbAttResStagChar.getDeadStag().toString()));
+			hydrologicalCharacteristicsList2.add(StringUtil.format("死水位{}m", WordUtil.removeTrailingZero(tbAttResStagChar.getDeadStag().toString())));
 		}
 
-		this.hydrologicalCharacteristics = String.join(",", hydrologicalCharacteristicsList);
+		this.hydrologicalCharacteristics = String.join(",", hydrologicalCharacteristicsList) + ";" + String.join(",", hydrologicalCharacteristicsList2);
 	}
 
 	private void formatTbAttResWaterDelivery(List<TbAttResWaterDelivery> tbAttResWaterDeliveryList) {
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/skcgmb.docx b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/skcgmb.docx
index 54cb737..139e3f9 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/skcgmb.docx
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/skcgmb.docx
Binary files differ

--
Gitblit v1.9.3