From 84d046dc899853dd475768b6bee01e136deda432 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期四, 26 六月 2025 20:29:51 +0800
Subject: [PATCH] 设备器件excel库存信息导出

---
 src/main/java/com/whyc/service/DeviceSpareService.java        |   38 +++++++++++++++++++++++++++++++++-----
 src/main/java/com/whyc/controller/DeviceSpareController.java  |    7 +++++++
 src/main/resources/excel_templates/template_device_spare.xlsx |    0 
 3 files changed, 40 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/whyc/controller/DeviceSpareController.java b/src/main/java/com/whyc/controller/DeviceSpareController.java
index bda2800..58ca625 100644
--- a/src/main/java/com/whyc/controller/DeviceSpareController.java
+++ b/src/main/java/com/whyc/controller/DeviceSpareController.java
@@ -11,6 +11,7 @@
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
 
@@ -48,6 +49,12 @@
         return service.addByExcel(file);
     }
 
+    @ApiOperation("excel瀵煎嚭")
+    @GetMapping("excelExport")
+    public void excelExport(HttpServletResponse response) {
+        service.excelExport(response);
+    }
+
 
     @PostMapping("update")
     @ApiOperation("淇敼")
diff --git a/src/main/java/com/whyc/service/DeviceSpareService.java b/src/main/java/com/whyc/service/DeviceSpareService.java
index c8060d0..a52413a 100644
--- a/src/main/java/com/whyc/service/DeviceSpareService.java
+++ b/src/main/java/com/whyc/service/DeviceSpareService.java
@@ -1,8 +1,9 @@
 package com.whyc.service;
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -13,21 +14,23 @@
 import com.whyc.util.CommonUtil;
 import com.whyc.util.ThreadLocalUtil;
 import org.apache.commons.lang.StringUtils;
-import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 @Service
 public class DeviceSpareService {
@@ -319,4 +322,29 @@
     private void updateQuantityAndPictureBatch(List<DeviceSpare> spareListUpdate) {
         mapper.updateQuantityAndPictureBatch(spareListUpdate);
     }
+
+    public void excelExport(HttpServletResponse response) {
+        //鏌ヨ鎵�鏈夌殑璁惧鍣ㄤ欢
+        List<DeviceSpare> deviceSpareList = mapper.selectList((Wrapper<DeviceSpare>) CommonUtil.nullObject);
+        //鑾峰彇瀵煎嚭妯℃澘鍦板潃
+        ClassPathResource classPathResource = new ClassPathResource("excel_templates/template_device_spare.xlsx");
+        String path = classPathResource.getPath();
+        TemplateExportParams templateExportParams1 = new TemplateExportParams(path,true);
+        // 鏋勫缓瀵煎嚭鏁版嵁妯″瀷
+        Map<String, Object> map = new HashMap<>();
+        map.put("deviceSpareList", deviceSpareList); // 鍋囪妯℃澘涓娇鐢� ${deviceSpareList} 浣滀负鍙橀噺鍚�
+
+        Workbook wb = ExcelExportUtil.exportExcel(templateExportParams1, map);
+        try {
+            LocalDateTime now = LocalDateTime.now();
+            String fileName = "缁翠慨绠$悊鍣ㄤ欢搴撳瓨_"+now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".xlsx";
+            response.setContentType("application/vnd.ms-excel");
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
+            response.flushBuffer();
+            wb.write(response.getOutputStream());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
 }
diff --git a/src/main/resources/excel_templates/template_device_spare.xlsx b/src/main/resources/excel_templates/template_device_spare.xlsx
new file mode 100644
index 0000000..d72e489
--- /dev/null
+++ b/src/main/resources/excel_templates/template_device_spare.xlsx
Binary files differ

--
Gitblit v1.9.1