项目库-导出excel
This commit is contained in:
+112
-3
@@ -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<LawsProjectLibrary, ILawsProjectLibraryService> {
|
||||
@Autowired
|
||||
private ILawsProjectLibraryService lawsProjectLibraryService;
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
@@ -119,8 +134,102 @@ public class LawsProjectLibraryController extends JeroController<LawsProjectLibr
|
||||
/**
|
||||
* 导出excel
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, LawsProjectLibrary lawsProjectLibrary) {
|
||||
return super.exportXls(request, lawsProjectLibrary, LawsProjectLibrary.class, "项目库");
|
||||
@AutoLog(value = "项目库-导出excel")
|
||||
@ApiOperation(value="项目库-导出excel", notes="项目库-导出excel")
|
||||
@PostMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, LawsProjectLibrary lawsProjectLibrary, HttpServletResponse response) {
|
||||
String outFileName = MessageUtils.getLanguage().equals("EN") ? "Internal Work Group Personnel Table" + System.currentTimeMillis() + ".xlsx" : "内部工作组人员表" + System.currentTimeMillis() + ".xlsx";
|
||||
String ENCODING = "UTF-8";
|
||||
ExcelWriter writer = ExcelUtil.getWriter(true);
|
||||
|
||||
// 通过工具类创建writer并且进行别名
|
||||
assembleWriter(writer);
|
||||
|
||||
//获取数据
|
||||
List<LawsProjectLibrary> dos = null;
|
||||
String selections = request.getParameter("selections");
|
||||
if (StringUtils.isNotBlank(selections)){
|
||||
dos = lawsProjectLibraryService.listByIds(Arrays.asList(selections.split(",")));
|
||||
}else {
|
||||
lawsProjectLibrary.setDelFlag("0");
|
||||
QueryWrapper<LawsProjectLibrary> 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<LawsProjectLibrary> 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", "项目健康状态");
|
||||
}
|
||||
}
|
||||
|
||||
-7
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user