From 789ee31d8548162f2b511460e6b1c1e436d00e68 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 04 六月 2026 09:15:40 +0800
Subject: [PATCH] feat(vehicle): 添加车辆管理模块及归还里程功能

---
 src/main/java/com/ruoyi/quality/utils/QualityInspectTemplateExportHelper.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/utils/QualityInspectTemplateExportHelper.java b/src/main/java/com/ruoyi/quality/utils/QualityInspectTemplateExportHelper.java
index 54ad922..5433fd1 100644
--- a/src/main/java/com/ruoyi/quality/utils/QualityInspectTemplateExportHelper.java
+++ b/src/main/java/com/ruoyi/quality/utils/QualityInspectTemplateExportHelper.java
@@ -1,7 +1,10 @@
 package com.ruoyi.quality.utils;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
 import com.ruoyi.quality.pojo.QualityInspect;
 import com.ruoyi.quality.pojo.QualityInspectParam;
@@ -22,7 +25,7 @@
 import java.io.OutputStream;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -47,7 +50,54 @@
     }
 
     public void exportBaiShi(HttpServletResponse response, Long inspectId) {
-        export(response, inspectId, BAISHI_TEMPLATE, "鐧句簨妯$増妫�楠岀粨鏋�");
+        if (inspectId == null) {
+            throw new ServiceException("妫�楠屽崟ID涓嶈兘涓虹┖");
+        }
+
+        QualityInspect inspect = qualityInspectMapper.selectById(inspectId);
+        if (inspect == null) {
+            throw new ServiceException("妫�楠屽崟涓嶅瓨鍦�");
+        }
+
+        List<QualityInspectParam> paramList = qualityInspectParamService.list(
+                Wrappers.<QualityInspectParam>lambdaQuery()
+                        .eq(QualityInspectParam::getInspectId, inspectId)
+                        .orderByAsc(QualityInspectParam::getId));
+        int index = 1;
+        for (QualityInspectParam detail : paramList) {
+            detail.setIndex(index);
+            index++;
+        }
+
+        try (InputStream inputStream = getClass().getResourceAsStream("/static/鐧句簨妯$増.docx")) {
+            if (inputStream == null) {
+                throw new ServiceException("妯℃澘鏂囦欢涓嶅瓨鍦細/static/鐧句簨妯$増.docx");
+            }
+
+            Configure configure = Configure.builder()
+                    .bind("paramList", new HackLoopTableRenderPolicy())
+                    .build();
+
+            XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+                    new HashMap<String, Object>() {{
+                        put("inspect", inspect);
+                        put("paramList", paramList);
+                    }});
+
+            response.reset();
+            response.setContentType("application/msword");
+            response.setCharacterEncoding("UTF-8");
+            String encodedName = URLEncoder.encode("鐧句簨妯$増妫�楠岀粨鏋�", StandardCharsets.UTF_8).replace("+", "%20");
+            response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+            response.setHeader("Content-Disposition", "attachment;filename=" + encodedName + ".docx");
+
+            try (OutputStream outputStream = response.getOutputStream()) {
+                template.write(outputStream);
+                outputStream.flush();
+            }
+        } catch (IOException e) {
+            throw new RuntimeException("瀵煎嚭澶辫触", e);
+        }
     }
 
     public void exportDaLi(HttpServletResponse response, Long inspectId) {

--
Gitblit v1.9.3