From eb832a81fb17402b1dded01459a01d7d99f16262 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 09 六月 2026 14:43:25 +0800
Subject: [PATCH] refactor(ai): 重构 Pinecone 向量存储配置和服务实现
---
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