From ab06fbcd79f0e48cb83e3f0621e944a90c2b20a0 Mon Sep 17 00:00:00 2001
From: 刘小明 <liuxm_a@163.com>
Date: 星期一, 26 八月 2024 16:24:01 +0800
Subject: [PATCH] 排班导出优化

---
 pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/schedule/ScheduleCtrl.java |   61 +++++++++++++++---------------
 1 files changed, 31 insertions(+), 30 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 962f7d2..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,21 +1,22 @@
 package com.dy.pmsProduct.schedule;
 
 import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.converters.Converter;
 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;
@@ -27,7 +28,8 @@
 @RestController
 @RequestMapping(path="schedule")
 public class ScheduleCtrl {
-
+    private String fileName = "鎺掔彮淇℃伅" ;
+    private String sheetName = "鎺掔彮淇℃伅" ;
     private ScheduleSv sv;
     @Autowired
     public void setScheduleSv(ScheduleSv scheduleSv) {
@@ -100,39 +102,38 @@
         return BaseResponseUtils.buildSuccess(list);
     }
 
-    private String fileName = "鎺掔彮淇℃伅" ;
-    private String sheetName = "鎺掔彮淇℃伅" ;
+
     @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.forEach(sch -> {
-            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);
+        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);
+                    });
+                }
             });
-        });
-
-        try{
-            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
-            response.setCharacterEncoding("utf-8");
-            fileName = URLEncoder.encode(fileName, "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);
-        }catch (Exception e){
-            log.error("瀵煎嚭鎺掔彮淇℃伅寮傚父", e);
         }
+
+        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