From 09c8120288ea7df454c10d67911ab8643f2f4235 Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期二, 17 十二月 2024 11:06:33 +0800
Subject: [PATCH] 1. 完成数据产品中间结果基本信息和具体信息入库

---
 src/main/kotlin/cn/flightfeather/supervision/business/report/BaseExcel.kt |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/report/BaseExcel.kt b/src/main/kotlin/cn/flightfeather/supervision/business/report/BaseExcel.kt
index 6f4c5b7..ab3cf6f 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/report/BaseExcel.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/report/BaseExcel.kt
@@ -1,12 +1,14 @@
 package cn.flightfeather.supervision.business.report
 
+import cn.flightfeather.supervision.business.report.bean.BaseTemplateResult
 import org.apache.poi.hssf.usermodel.HSSFWorkbook
+import java.io.File
 import java.io.FileOutputStream
 import java.io.OutputStream
-import java.util.*
 
 /**
  * 鍚勬ā鏉垮悎骞惰緭鍑轰负鏁翠綋鏂囨。
+ * 鍗曚釜鏁版嵁婧�
  */
 abstract class BaseExcel(val dataSource: DataSource) {
 
@@ -14,18 +16,40 @@
 
     abstract val fileName: String
 
+    // 涓棿缁撴灉瀵硅薄 by hc 2024.12.06
+    private val objectResults: MutableList<MutableList<BaseTemplateResult>> = mutableListOf()
+
     // excel鏂囨。
     private var workbook = HSSFWorkbook()
 
+    fun getReportName(): String = "${dataSource.areaName()}-${fileName}.xlsx"
+
+    // 杈撳嚭鍒板璞�
+    fun toObject() {
+        templates.forEach {
+            if (!it.isExecuted) {
+                it.execute()
+            }
+            it.toObject()
+            objectResults.add(it.resultObjects)
+        }
+    }
+
     fun toFile(path: String) {
-        val fileName = "${dataSource.areaName()}-${fileName}-${Date().time}.xls"
-        val out = FileOutputStream(path + fileName)
+        val fileName = getReportName()
+        val file = File(path + fileName)
+        if (!file.parentFile.exists()) {
+            file.parentFile.mkdirs()
+        }
+        val out = FileOutputStream(file)
         toOutputStream(out)
     }
 
     fun toOutputStream(out: OutputStream) {
         templates.forEach {
-            it.execute()
+            if (!it.isExecuted) {
+                it.execute()
+            }
             it.toWorkBook(workbook)
         }
         workbook.write(out)

--
Gitblit v1.9.3