From 6992aaf0587c09f7c511c1afd12e1519d91363d3 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Thu, 14 Dec 2023 15:38:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/cjl' into qa --- screen-api/src/main/java/com/moral/api/controller/AllocationController.java | 112 +++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 83 insertions(+), 29 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..07c8d6e 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,56 +1,56 @@ 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.enums.AllocationApproveEnum; +import com.moral.api.pojo.enums.ChangeEnum; +import com.moral.api.pojo.enums.YesOrNo; +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 lombok.extern.slf4j.Slf4j; +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.*; +import java.util.concurrent.atomic.AtomicReference; @Api(tags = {"������������"}) @RestController @RequestMapping("allocation") +@Slf4j public class AllocationController { + @Value("${file.path}") + private String basePath; @Autowired private AllocationService allocationService; @@ -99,6 +99,7 @@ */ @PostMapping("update") @ApiOperation("������") + public ResultMessage update(@Valid @RequestBody AllocationUpdateCond allocationUpdateCond){ allocationService.updateAll(allocationUpdateCond); return ResultMessage.ok(); @@ -172,7 +173,6 @@ return ResultMessage.ok(ObjectUtils.isEmpty(map1)? "0":map1); } - @GetMapping("unitExel") public void unitExel(HttpServletResponse response,HttpServletRequest request){ Map<String, Object> params = WebUtils.getParametersStartingWith(request, null); @@ -220,4 +220,58 @@ } + + @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){ + log.error("error result ",e); + } + + } + + + 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++){ + AllocationExcelExt excelExt = list.get(i); + AllocationListExcelVo item = AllocationListExcelVo.convert(excelExt); + List<String> urls = new ArrayList<>(); + for(FileAddressVo z : excelExt.getFileBaseList()){ + urls.add(handleFileRealPath(z.getFileAddress())); + } + item.setChangeTypeStr(Objects.isNull(excelExt.getChangeType())?" ":ChangeEnum.getByValue(excelExt.getChangeType()).getName()); + item.setChangeStr(Objects.isNull(excelExt.getIsChange())?"���": YesOrNo.getByValue(excelExt.getIsChange()).getName()); + item.setWriteCellDataFile(urls); + List<String> urlsAfter = new ArrayList<>(); + for(FileAddressVo z : excelExt.getFileChangeList()){ + urlsAfter.add(handleFileRealPath(z.getFileAddress())); + } + item.setWriteCellDataFileResult(urlsAfter); + item.setEscalationTimeStr(DateUtils.dateToDateString(excelExt.getEscalationTime(),DateUtils.yyyy_MM_dd_EN)); + item.setChangeTimeStr(Objects.isNull(excelExt.getChangeTime())?" ":DateUtils.dateToDateString(excelExt.getChangeTime(),DateUtils.yyyy_MM_dd_EN)); + 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); + response.getOutputStream().close(); + }catch (Exception e){ + log.error("error result ",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