From 7d597b7d522ab38df6c8cc75a865a2def7cbac3b Mon Sep 17 00:00:00 2001 From: caozhen <18736171426@139.com> Date: Mon, 11 Sep 2023 17:08:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93-=E5=AF=BC=E5=87=BAe?= =?UTF-8?q?xcel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsProjectLibraryController.java | 115 +++++++++++++++++- .../entity/LawsProjectLibrary.java | 7 -- 2 files changed, 112 insertions(+), 10 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsProjectLibraryController.java b/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsProjectLibraryController.java index 97a6a49c..1c386bfe 100644 --- a/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsProjectLibraryController.java +++ b/laws-modules/src/main/java/com/jero/modules/projectLibrary/controller/LawsProjectLibraryController.java @@ -1,14 +1,27 @@ package com.jero.modules.projectLibrary.controller; +import java.io.OutputStream; import java.util.Arrays; +import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.api.vo.Result; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.query.QueryGenerator; import com.jero.common.util.MessageUtils; import com.jero.modules.laws.common.constant.ResultCommon; import com.jero.modules.projectLibrary.entity.LawsProjectLibrary; import com.jero.modules.projectLibrary.service.ILawsProjectLibraryService; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; +import com.sun.deploy.net.URLEncoder; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +48,8 @@ import org.apache.poi.ss.formula.functions.T; public class LawsProjectLibraryController extends JeroController { @Autowired private ILawsProjectLibraryService lawsProjectLibraryService; + @Autowired + private ISysUserService sysUserService; /** * 分页列表查询 @@ -119,8 +134,102 @@ public class LawsProjectLibraryController extends JeroController dos = null; + String selections = request.getParameter("selections"); + if (StringUtils.isNotBlank(selections)){ + dos = lawsProjectLibraryService.listByIds(Arrays.asList(selections.split(","))); + }else { + lawsProjectLibrary.setDelFlag("0"); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsProjectLibrary, request.getParameterMap()); + dos = lawsProjectLibraryService.list(queryWrapper); + } + this.translate(dos); + if (dos.isEmpty()){ + throw new JeroBootException("请选择数据导出!"); + } + + //导出表头只保留别名中的字段 + writer.setOnlyAlias(true); + //表格高度 + writer.setDefaultRowHeight(18); + //表格宽度 + writer.setColumnWidth(-1, 20); + //放入数据 + writer.write(dos, true); + try { + // 获取我们的输出流 + final OutputStream output = response.getOutputStream(); + response.setContentType("application/vnd.ms-excel;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + outFileName + ";filename*=utf-8" + + URLEncoder.encode(outFileName, ENCODING)); + writer.flush(output, true); + writer.close(); + // 这里可以自行关闭资源或者写一个关闭资源的工具类 + IoUtil.close(output); + } catch (Exception e) { + log.error("导出失败:", e); + } + return null; } + + /** + * 翻译项目来源、项目负责人、项目健康状态 + */ + private void translate(List dos){ + for (LawsProjectLibrary aDo : dos) { + String projectSource = aDo.getProjectSource(); + String projectHealth = aDo.getProjectHealth(); + String projectLeader = aDo.getProjectLeader(); + + switch (projectSource) { + case "1": + aDo.setProjectSource("本地新增"); + break; + case "2": + aDo.setProjectSource("PMS"); + break; + default: + aDo.setProjectSource(""); + } + + switch (projectHealth) { + case "1": + aDo.setProjectHealth("预警"); + break; + case "2": + aDo.setProjectHealth("风险"); + break; + case "3": + aDo.setProjectHealth("正常"); + break; + default: + aDo.setProjectHealth(""); + } + + if (StringUtils.isNotBlank(projectLeader)) { + SysUser sysUser = sysUserService.getById(projectLeader); + aDo.setProjectLeader(sysUser.getRealname() + "(" + sysUser.getWorkNo() + ")"); + } + } + } + + private void assembleWriter(ExcelWriter writer) { + writer.addHeaderAlias("projectSource", "项目来源"); + writer.addHeaderAlias("projectName", "项目名称"); + writer.addHeaderAlias("projectLeader", "项目负责人"); + writer.addHeaderAlias("workNumber", "工作令编号"); + writer.addHeaderAlias("projectHealth", "项目健康状态"); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/projectLibrary/entity/LawsProjectLibrary.java b/laws-modules/src/main/java/com/jero/modules/projectLibrary/entity/LawsProjectLibrary.java index 8f85af67..c00c4486 100644 --- a/laws-modules/src/main/java/com/jero/modules/projectLibrary/entity/LawsProjectLibrary.java +++ b/laws-modules/src/main/java/com/jero/modules/projectLibrary/entity/LawsProjectLibrary.java @@ -40,29 +40,24 @@ public class LawsProjectLibrary implements Serializable { /**项目来源(1-本地新增、2-PMS)*/ @Dict(dicCode = "project_source") - @Excel(name = "项目来源(1-本地新增、2-PMS)", width = 15) @ApiModelProperty(value = "项目来源(1-本地新增、2-PMS)") private String projectSource; /**项目名称*/ @NotBlank(message = "projectName not null") - @Excel(name = "项目名称", width = 15) @ApiModelProperty(value = "项目名称") private String projectName; /**工作令编号*/ - @Excel(name = "工作令编号", width = 15) @ApiModelProperty(value = "工作令编号") private String workNumber; /**项目负责人*/ - @Excel(name = "项目负责人", width = 15) @ApiModelProperty(value = "项目负责人") private String projectLeader; /**项目健康度(1-预警、2-风险、3-正常)*/ @Dict(dicCode = "project_health") - @Excel(name = "项目健康度(1-预警、2-风险、3-正常)", width = 15) @ApiModelProperty(value = "项目健康度(1-预警、2-风险、3-正常)") private String projectHealth; @@ -87,12 +82,10 @@ public class LawsProjectLibrary implements Serializable { private Date updateTime; /**所属部门*/ - @Excel(name = "所属部门", width = 15) @ApiModelProperty(value = "所属部门") private String orgCode; /**删除状态(0-正常,1-删除)*/ - @Excel(name = "删除状态(0-正常,1-删除)", width = 15) @ApiModelProperty(value = "删除状态(0-正常,1-删除)") private String delFlag; }