From 5e75ef24e5dd45ae934dc7f03f6c7736ca73c9ff Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期二, 27 八月 2024 15:01:32 +0800
Subject: [PATCH] fix order search

---
 pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/schedule/ScheduleCtrl.java |   53 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 33 insertions(+), 20 deletions(-)

diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/schedule/ScheduleCtrl.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/schedule/ScheduleCtrl.java
index d583cb9..32367ed 100644
--- a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/schedule/ScheduleCtrl.java
+++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/schedule/ScheduleCtrl.java
@@ -1,19 +1,22 @@
 package com.dy.pmsProduct.schedule;
 
-import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.EasyExcel;
 import com.dy.common.aop.SsoPowerAop;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pmsGlobal.aop.Log;
 import com.dy.pmsGlobal.pojoPr.PrSchedule;
-import com.dy.pmsGlobal.util.QrCodeUtil;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -25,8 +28,8 @@
 @RestController
 @RequestMapping(path="schedule")
 public class ScheduleCtrl {
-    private static final String fileName = "鎺掔彮淇℃伅" ;
-    private static final String sheetName = "鎺掔彮淇℃伅" ;
+    private String fileName = "鎺掔彮淇℃伅" ;
+    private String sheetName = "鎺掔彮淇℃伅" ;
     private ScheduleSv sv;
     @Autowired
     public void setScheduleSv(ScheduleSv scheduleSv) {
@@ -103,24 +106,34 @@
     @PostMapping(path="export")
     @SsoPowerAop(power = "-1")
     @Log("瀵煎嚭鎺掔彮")
-    public void exportSchedule(@RequestBody QueryVo queryVo, HttpServletResponse response){
-        List<Converter> list = new ArrayList<>() ;
+    public void exportSchedule(@RequestBody QueryVo queryVo, HttpServletResponse response) throws IOException {
+        List<ExcelVo> list = new ArrayList<>();
 
         List<PrSchedule> schList = sv.selectAll(queryVo);
-        // 浣跨敤骞惰娴佹彁楂樻�ц兘
-        schList.parallelStream().forEach(sch -> {
-            sch.relList.forEach(rel -> {
-                ExcelVo vo = new ExcelVo();
-                vo.userName = sch.userName;
-                vo.scheduleDate = sch.scheduleDate;
-                vo.dt = sch.dt;
-                vo.planName = rel.planName;
-                vo.nodeName = rel.nodeName;
-                vo.stationName = rel.stationName;
-                vo.workDetails = rel.workDetails;
-                list.add(vo);
+        if (CollectionUtils.isNotEmpty(schList)) {
+            schList.forEach(sch -> {
+                if (CollectionUtils.isNotEmpty(sch.relList)) {
+                    sch.relList.forEach(rel -> {
+                        ExcelVo vo = new ExcelVo();
+                        vo.id = sch.id.toString();
+                        vo.userName = sch.userName;
+                        vo.scheduleDate = sch.scheduleDate;
+                        vo.dt = sch.dt;
+                        vo.planName = rel.planName;
+                        vo.nodeName = rel.nodeName;
+                        vo.stationName = rel.stationName;
+                        vo.workDetails = rel.workDetails;
+                        list.add(vo);
+                    });
+                }
             });
-        });
-        QrCodeUtil.downloadExcel(response, fileName,sheetName,list);
+        }
+
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setCharacterEncoding("utf-8");
+        fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8).replaceAll("\\+", "%20");
+        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+        EasyExcel.write(response.getOutputStream(), list.get(0).getClass()).sheet(sheetName)
+                .registerWriteHandler(new CustomCellWriteHandler()).doWrite(list);
     }
 }

--
Gitblit v1.8.0