guoshilong
2024-02-27 0bdd1bda41e6fa8436d070b1f4e5b1f19f86d9d8
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();
   }
}