add:内外部会议导出功能
This commit is contained in:
@@ -58,6 +58,11 @@ public class FieldConvertUtil {
|
||||
// 企标计划 表头
|
||||
public static String exportFieldNamesEsRevisePlan = "企标类别,企标编号,企标名称,计划状态,制修订类型,起草人,内部评审责任人,技术委员会评审负责人,计划标准初稿完成时间,计划标准发布时间,起草责任单位,实际标准发布时间,质量评分";
|
||||
|
||||
// 内外部会议 表头
|
||||
public static String exportFieldNamesInsideOutsideMeeting = "会议名称,课题名称,会议主办单位,会议时间,会议地点,参会人员,会议主要内容,一级会议类别,二级会议类别";
|
||||
// 内外部会议关联表 表头
|
||||
public static String exportFieldNamesMeetingTopic = "议题名称,汇报人,汇报单位,议题主要内容";
|
||||
|
||||
public static String exportBaseFieldNamesBussCode = "起草部门,废止日期,代替企标编号,复审日期,起草人,被代替企标编号,采用标准,文件上传人员,采标程度,引用标准,适用车型,能源类型,适用产品线,上传时间,体系类别,备案日期,关联模块-乘用车VPPS编码,关联模块--乘用车vpps中文名称,关联模块--卡车VPPS编码,关联模块--卡车vpps中文名称";
|
||||
|
||||
public static String exportAttrFieldNamesBuss = "SVPPS,规范性引用文件,废止日期,复审日期,密级,授权,相关部门," +
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
package com.adc.da.utils.util;
|
||||
|
||||
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutsideMeetingVO;
|
||||
import com.adc.da.slrs.InsideOntSideMeeting.entity.MeetingTopic;
|
||||
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 tjzdw
|
||||
* @description
|
||||
* @date 2023/10/20
|
||||
*/
|
||||
public class InsideOutsideMeetingExportUtil {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(InsideOutsideMeetingExportUtil.class);
|
||||
|
||||
|
||||
public static Workbook exportDatas(List<InsideOutsideMeetingVO> datas) {
|
||||
Workbook workbook = new XSSFWorkbook();
|
||||
try {
|
||||
//定义表头
|
||||
String header = FieldConvertUtil.exportFieldNamesInsideOutsideMeeting + "," + FieldConvertUtil.exportFieldNamesMeetingTopic;
|
||||
//创建工作表对象
|
||||
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<InsideOutsideMeetingVO> datas,
|
||||
String header) throws Exception {
|
||||
String[] insideOutsideMeetingHeaderList = FieldConvertUtil.exportFieldNamesInsideOutsideMeeting.split(",");
|
||||
String[] meetingTopicHeaderList = FieldConvertUtil.exportFieldNamesMeetingTopic.split(",");
|
||||
CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象
|
||||
cellStyle.setAlignment(HorizontalAlignment.CENTER);
|
||||
if (datas != null && !datas.isEmpty()) {
|
||||
int rowIndex = 1;
|
||||
for (InsideOutsideMeetingVO data : datas) {
|
||||
String[] headerArr = header.split(",");
|
||||
Row row = sheet.createRow(rowIndex);
|
||||
int cellIndex = 0;
|
||||
if (data.getMeetingTopicList().isEmpty()) {
|
||||
for (String headerName : headerArr) {
|
||||
String value = getValueByName(headerName, data);
|
||||
if (StringUtils.isBlank(value) || "null".equals(value)) {
|
||||
value = "";
|
||||
}
|
||||
row.createCell(cellIndex).setCellValue(value);
|
||||
cellIndex++;
|
||||
}
|
||||
} else {
|
||||
for (String headerName : insideOutsideMeetingHeaderList) {
|
||||
String value = getValueByName(headerName, data);
|
||||
if (StringUtils.isBlank(value) || "null".equals(value)) {
|
||||
value = "";
|
||||
}
|
||||
row.createCell(cellIndex).setCellValue(value);
|
||||
cellIndex++;
|
||||
}
|
||||
int newCellIndex = cellIndex;
|
||||
for (String field : meetingTopicHeaderList) {
|
||||
String topicValue = getMeetingTopicValueByName(field, data.getMeetingTopicList().get(0));
|
||||
if (StringUtils.isBlank(topicValue) || "null".equals(topicValue)) {
|
||||
topicValue = "";
|
||||
}
|
||||
row.createCell(cellIndex).setCellValue(topicValue);
|
||||
cellIndex++;
|
||||
}
|
||||
rowIndex++;
|
||||
for (int index = 1; index < data.getMeetingTopicList().size(); index++) {
|
||||
Row newRow = sheet.createRow(rowIndex);
|
||||
for (String field : meetingTopicHeaderList) {
|
||||
String topicValue = getMeetingTopicValueByName(field, data.getMeetingTopicList().get(index));
|
||||
if (StringUtils.isBlank(topicValue) || "null".equals(topicValue)) {
|
||||
topicValue = "";
|
||||
}
|
||||
newRow.createCell(newCellIndex).setCellValue(topicValue);
|
||||
newCellIndex++;
|
||||
}
|
||||
rowIndex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 根据表头返回相应值
|
||||
public static String getValueByName(String name, InsideOutsideMeetingVO insideOutsideMeeting) throws Exception{
|
||||
String value = "";
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
switch (name) {
|
||||
case "会议名称":
|
||||
value = insideOutsideMeeting.getMeetingName();
|
||||
break;
|
||||
case "课题名称":
|
||||
value = insideOutsideMeeting.getTopicName();
|
||||
break;
|
||||
case "会议主办单位":
|
||||
value = insideOutsideMeeting.getMeetingOrganizer();
|
||||
break;
|
||||
case "会议时间":
|
||||
String meetingTime = null;
|
||||
if (insideOutsideMeeting.getMeetingTime() != null){
|
||||
meetingTime = sdf.format(insideOutsideMeeting.getMeetingTime());
|
||||
}
|
||||
value = meetingTime;
|
||||
break;
|
||||
case "会议地点":
|
||||
value = insideOutsideMeeting.getMeetingAddress();
|
||||
break;
|
||||
case "参会人员":
|
||||
value = insideOutsideMeeting.getParticipants();
|
||||
break;
|
||||
case "会议主要内容":
|
||||
value = insideOutsideMeeting.getMeetingContent();
|
||||
break;
|
||||
case "一级会议类别":
|
||||
value = insideOutsideMeeting.getFirstMeetingType();
|
||||
break;
|
||||
case "二级会议类别":
|
||||
value = insideOutsideMeeting.getSecondMeetingType();
|
||||
break;
|
||||
default:
|
||||
value = null;
|
||||
break;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
public static String getMeetingTopicValueByName (String name, MeetingTopic meetingTopic) {
|
||||
String value = "";
|
||||
switch (name) {
|
||||
case "议题名称":
|
||||
value = meetingTopic.getAgendaName();
|
||||
break;
|
||||
case "汇报人":
|
||||
value = meetingTopic.getReporter();
|
||||
break;
|
||||
case "汇报单位":
|
||||
value = meetingTopic.getReportingUnit();
|
||||
break;
|
||||
case "议题主要内容":
|
||||
value = meetingTopic.getAgendaContent();
|
||||
break;
|
||||
default:
|
||||
value = null;
|
||||
break;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user