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