From df67fe187fae9ce9f486ea2f14c95a14d843e4a1 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Wed, 15 Nov 2023 14:23:56 +0800 Subject: [PATCH] fix:增加导出功能 --- screen-api/src/main/java/com/moral/api/controller/AllocationController.java | 98 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 70 insertions(+), 28 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/AllocationController.java b/screen-api/src/main/java/com/moral/api/controller/AllocationController.java index 86f968a..afdc6de 100644 --- a/screen-api/src/main/java/com/moral/api/controller/AllocationController.java +++ b/screen-api/src/main/java/com/moral/api/controller/AllocationController.java @@ -1,49 +1,45 @@ package com.moral.api.controller; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.apache.commons.collections4.CollectionUtils; +import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.AllocationLog; -import com.moral.api.pojo.enums.SysDictTypeEnum; +import com.moral.api.entity.ResponsibilityUnit; +import com.moral.api.pojo.ext.allocation.AllocationExcelExt; import com.moral.api.pojo.ext.allocation.AllocationExt; import com.moral.api.pojo.ext.allocation.AllocationPageExt; import com.moral.api.pojo.query.allocation.*; import com.moral.api.pojo.query.allocationextension.AllocationExtensionAddCond; - +import com.moral.api.pojo.vo.allocation.AllocationListExcelVo; import com.moral.api.pojo.vo.allocation.AllocationPageVo; import com.moral.api.pojo.vo.allocation.AllocationVo; - -import com.moral.constant.PageResult; -import io.swagger.annotations.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.ObjectUtils; - -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; - -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.moral.api.entity.ResponsibilityUnit; - +import com.moral.api.pojo.vo.file.FileAddressVo; import com.moral.api.service.AllocationService; -import com.moral.api.utils.EasyExcelUtils; -import com.moral.api.utils.NoModelWriteData; +import com.moral.api.utils.*; import com.moral.constant.Constants; +import com.moral.constant.PageResult; import com.moral.constant.ResultMessage; import com.moral.util.DateUtils; import com.moral.util.WebUtils; +import io.swagger.annotations.*; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; - +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.net.URL; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; @Api(tags = {"������������"}) @@ -51,6 +47,8 @@ @RequestMapping("allocation") public class AllocationController { + @Value("${file.path}") + private String basePath; @Autowired private AllocationService allocationService; @@ -220,4 +218,48 @@ } + + @GetMapping("listExcel") + @ApiOperation("������������") + public void listExcel(@RequestParam @ApiParam(value = "id",name = "������id") List<Integer> id,HttpServletResponse response){ + + List<AllocationExcelExt> extList = allocationService.listExcel(id); + try { + genImageExcel(extList,response); + }catch (Exception e){ + + } + + } + + private final String PARHTINAGE = "https://qx.7drlb.com/api/file/preview/"; + + private void genImageExcel(List<AllocationExcelExt> list, HttpServletResponse response) throws IOException { + if (CollectionUtils.isEmpty(list)) { + return; + } + List<AllocationListExcelVo> demoDataList = new ArrayList<>(); + for(int i = 0;i<list.size();i++){ + AllocationListExcelVo item = AllocationListExcelVo.convert(list.get(i)); + List<String> urls = new ArrayList<>(); + for(FileAddressVo z : list.get(i).getFileBaseList()){ + urls.add(handleFileRealPath(z.getFileAddress())); + } + item.setWriteCellDataFile(urls); + demoDataList.add(item); + } + try { + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + + URLEncoder.encode("���������������", "utf-8") + ".xlsx"); + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + EasyExcel.write(response.getOutputStream(), AllocationListExcelVo.class) + .registerWriteHandler(new CustomImageModifyHandler()).sheet("���������").doWrite(demoDataList); + }catch (Exception e){ + + } + } + private String handleFileRealPath(String path) { + return basePath.replaceAll(StringUtils.BACKSLASH.concat(StringUtils.BACKSLASH), StringUtils.SLASH).concat(StringUtils.SLASH).concat(path); + } + } -- Gitblit v1.8.0