From dec8951aae400e54f6ee83a8f95867dba9da8af1 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期五, 23 五月 2025 17:17:33 +0800
Subject: [PATCH] [钣金计划大表] 优化:焊缝统计导出Excel样式

---
 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java
index 48d9042..54354ff 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java
@@ -7,23 +7,28 @@
 import com.aps.common.log.annotation.Log;
 import com.aps.common.log.enums.BusinessType;
 import com.aps.common.security.annotation.RequiresPermissions;
+import com.aps.common.security.utils.DictUtils;
 import com.aps.core.domain.ApsGasPipelinePrediction;
-import com.aps.core.domain.ApsMaterialProductGroupManagement;
 import com.aps.core.service.IApsGasPipelinePredictionService;
+import com.aps.system.api.domain.SysDictData;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.SneakyThrows;
 import org.apache.commons.io.IOUtils;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ByteArrayResource;
 import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.InputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
@@ -70,13 +75,28 @@
      */
     @SneakyThrows
     @Operation(summary = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", description = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘")
-    @RequiresPermissions("gasPipeline:prediction:template")
-    @Log(title = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", businessType = BusinessType.EXPORT)
+//    @RequiresPermissions("gasPipeline:prediction:template")
+//    @Log(title = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", businessType = BusinessType.EXPORT)
     @GetMapping("/template")
     public ResponseEntity<ByteArrayResource> exportTemplate() {
-        byte[] file = IOUtils.resourceToByteArray("/templates/涓婁紶姘斾綋棰勬祴鏁版嵁妯℃澘.xlsx");
+        byte[] file = IOUtils.resourceToByteArray("/templates/姘斾綋棰勬祴鏁版嵁妯℃澘v1.0.xlsx");
+        Workbook workbook = WorkbookFactory.create(new ByteArrayInputStream(file));
+        Sheet sheet = workbook.getSheet("瀛楀吀-鐢熶骇鍩哄湴");
+        List<SysDictData> sysDictDataList = DictUtils.getDictCache("aps_factory");
+        if (sysDictDataList != null) {
+            for (int i = 0; i < sysDictDataList.size(); i++) {
+                Row row = sheet.createRow(i + 1);
+                row.createCell(0).setCellValue(sysDictDataList.get(i).getDictValue());
+                row.createCell(1).setCellValue(sysDictDataList.get(i).getDictLabel());
+            }
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            workbook.write(baos);
+            file = baos.toByteArray();
+        }
+        workbook.close();
         ByteArrayResource resource = new ByteArrayResource(file);
         return ResponseEntity.ok()
+                .header("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION)
                 .header(HttpHeaders.CONTENT_DISPOSITION,
                         String.format("attachment;filename=%s", URLEncoder.encode("姘斾綋棰勬祴鏁版嵁妯℃澘.xlsx", StandardCharsets.UTF_8)))
                 .header(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")

--
Gitblit v1.9.3