feat: 企标计划导出功能

This commit is contained in:
2023-08-30 16:21:34 +08:00
parent 7860a92fad
commit 6dbc57394d
6 changed files with 260 additions and 3 deletions
@@ -0,0 +1,136 @@
package com.adc.da.utils.util;
import com.adc.da.slrs.esRevisePlan.entity.EsRevisePlan;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* @author: Mzaxd
* @Date: 2023/8/29 17:27
*/
public class EsRevisePlanExportUtil {
private static final Logger logger = LoggerFactory.getLogger(BussStandExportUtil.class);
public static Workbook exportDatas(List<EsRevisePlan> datas) {
Workbook workbook = new XSSFWorkbook();
try {
StringBuilder attrBud = new StringBuilder();
//定义表头
String header = FieldConvertUtil.exportFieldNamesEsRevisePlan + "," + attrBud.toString();
//创建工作表对象
Sheet sheet = workbook.createSheet();
// 创建头部
createHeader(workbook, sheet, header);
// 创建数据
createDatas(workbook, sheet, datas, header);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
return workbook;
}
public static void createHeader(Workbook workbook, Sheet sheet, String header) {
CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象
cellStyle.setAlignment(HorizontalAlignment.CENTER);
Row rowHeader = sheet.createRow(0);//开始创建标题行
if (StringUtils.isNotBlank(header)) {
String[] headerArr = header.split(",");
for (int i = 0; i < headerArr.length; i++) {
rowHeader.createCell(i).setCellValue(headerArr[i]);
}
}
}
public static void createDatas(Workbook workbook, Sheet sheet, List<EsRevisePlan> datas,
String header) throws Exception {
CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象
cellStyle.setAlignment(HorizontalAlignment.CENTER);
if (datas != null && !datas.isEmpty()) {
for (int i = 0; i < datas.size(); i++) {
EsRevisePlan esRevisePlan = datas.get(i);
Row row = sheet.createRow(i + 1);
String[] headerArr = header.split(",");
int sheetNum = 0;
for (String headerName : headerArr) {
String value = getValueByName(headerName, esRevisePlan);
if (StringUtils.isBlank(value) || "null".equals(value)) {
value = "";
}
row.createCell(sheetNum).setCellValue(value);
sheetNum++;
}
}
}
}
// 根据表头返回相应值
public static String getValueByName(String name, EsRevisePlan esRevisePlan) throws Exception{
String value = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
switch (name) {
case "企标类别":
value = esRevisePlan.getBussSort();
break;
case "企标编号":
value = esRevisePlan.getStandNumber();
break;
case "企标名称":
value = esRevisePlan.getEsName();
break;
case "计划状态":
value = esRevisePlan.getPlanStatus();
break;
case "制修订类型":
value = esRevisePlan.getReviseStatus();
break;
case "起草人":
value = esRevisePlan.getDrafterName();
break;
case "内部评审责任人":
value = esRevisePlan.getResPersonName();
break;
case "技术委员会评审负责人":
value = esRevisePlan.getWgLeaderName();
break;
case "计划标准初稿完成时间":
String draftTime = null;
if (esRevisePlan.getDraftTime() != null){
draftTime = sdf.format(esRevisePlan.getDraftTime());
}
value = draftTime;
break;
case "计划标准发布时间":
String releaseTime = null;
if (esRevisePlan.getReleaseTime() != null){
releaseTime = sdf.format(esRevisePlan.getReleaseTime());
}
value = releaseTime;
break;
case "起草责任单位":
value = esRevisePlan.getUnitName();
break;
case "实际标准发布时间":
String actualTime = null;
if (esRevisePlan.getActualTime() != null){
actualTime = sdf.format(esRevisePlan.getActualTime());
}
value = actualTime;
break;
case "质量评分":
value = String.valueOf(esRevisePlan.getScore());
break;
default:
value = null;
break;
}
return value;
}
}
@@ -2,7 +2,6 @@ package com.adc.da.utils.util;
import com.adc.da.util.LoginUserUtil;
import com.adc.da.util.UUIDUtils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import java.io.BufferedReader;
@@ -56,6 +55,9 @@ public class FieldConvertUtil {
public static String exportBaseFieldNamesBuss = "企标编号,中文名称,英文名称,文本状态,发布日期,企标实施日期,企标制修订状态";
// 企标计划 表头
public static String exportFieldNamesEsRevisePlan = "企标类别,企标编号,企标名称,计划状态,制修订类型,起草人,内部评审责任人,技术委员会评审负责人,计划标准初稿完成时间,计划标准发布时间,起草责任单位,实际标准发布时间,质量评分";
public static String exportBaseFieldNamesBussCode = "起草部门,废止日期,代替企标编号,复审日期,起草人,被代替企标编号,采用标准,文件上传人员,采标程度,引用标准,适用车型,能源类型,适用产品线,上传时间,体系类别,备案日期,关联模块-乘用车VPPS编码,关联模块--乘用车vpps中文名称,关联模块--卡车VPPS编码,关联模块--卡车vpps中文名称";
public static String exportAttrFieldNamesBuss = "SVPPS,规范性引用文件,废止日期,复审日期,密级,授权,相关部门," +