use of com.bc.pmpheep.back.bo.DecPositionBO in project pmph by BCSquad.
the class ExcelHelper method fromDecPositionBOList.
/**
* 根据教材遴选表业务对象(DecPositionBO)集合创建工作簿,适用于主编/副主编导出
*
* @param dataSource
* DecPositionBO业务对象集合
* @param sheetName
* 工作表名称
* @return 根据Map集合创建的工作簿
*/
public Workbook fromDecPositionBOList(List<DecPositionBO> dataSource, String sheetName) {
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet(sheetName);
Row header = sheet.createRow(0);
header.createCell(0).setCellValue("书序");
header.createCell(1).setCellValue("书名");
header.createCell(2).setCellValue("版次");
header.createCell(3).setCellValue("序号");
header.createCell(4).setCellValue("姓名");
header.createCell(5).setCellValue("申报单位");
header.createCell(6).setCellValue("编写职位");
// 设置表头样式
headerStyleSetup(workbook, 1);
/**
* 重新设置头背景颜色end **
*/
for (int i = 0; i < 7; i++) {
Cell cell = workbook.getSheet(sheetName).getRow(0).getCell(i);
CellStyle style = cell.getCellStyle();
style.setFillBackgroundColor(HSSFColorPredefined.GREY_50_PERCENT.getIndex());
cell.setCellStyle(style);
}
/**
* 重新设置头背景颜色end **
*/
/* 设置行计数器 */
int rowCount = 1;
if (null != dataSource && !dataSource.isEmpty()) {
/* 遍历list中的对象 */
for (DecPositionBO bo : dataSource) {
List<WriterBO> writers = bo.getWriters();
if (CollectionUtil.isEmpty(writers)) {
continue;
}
Integer zhuBianTotalNum = 0;
Integer fuZhuBianTotalNum = 0;
for (WriterBO writer : writers) {
Integer chosenPosition = writer.getChosenPosition();
if (null != chosenPosition && (chosenPosition == 12 || chosenPosition == 4)) {
zhuBianTotalNum++;
} else if (null != chosenPosition && (chosenPosition == 10 || chosenPosition == 2)) {
fuZhuBianTotalNum++;
}
}
Row row = sheet.createRow(rowCount);
row.createCell(0).setCellValue(bo.getSort());
row.createCell(1).setCellValue(bo.getTextbookName());
row.createCell(2).setCellValue(bo.getTextbookRound());
int writerNum = 1;
for (WriterBO writer : writers) {
if (writerNum > 1) {
row = sheet.createRow(rowCount);
row.createCell(0);
row.createCell(1);
row.createCell(2);
}
row.createCell(3).setCellValue(String.valueOf(writerNum));
row.createCell(4).setCellValue(writer.getRealname());
row.createCell(5).setCellValue(writer.getChosenOrgName());
Integer chosenPosition = writer.getChosenPosition();
if (null == chosenPosition) {
continue;
}
String position = "";
String rank = "";
if (null != writer.getRank()) {
rank = String.valueOf(writer.getRank());
}
if (null != chosenPosition && chosenPosition == 12) {
position = "主编 " + zhuBianTotalNum + "-" + rank + ",数字编委";
} else if (null != chosenPosition && chosenPosition == 4) {
position = "主编 " + zhuBianTotalNum + "-" + rank;
} else if (null != chosenPosition && chosenPosition == 10) {
position = "副主编 " + fuZhuBianTotalNum + "-" + rank + ",数字编委";
} else if (null != chosenPosition && chosenPosition == 2) {
position = "副主编 " + fuZhuBianTotalNum + "-" + rank;
} else if (null != chosenPosition && chosenPosition == 9) {
position = "编委,数字编委";
} else if (null != chosenPosition && chosenPosition == 1) {
position = "编委";
}
row.createCell(6).setCellValue(position);
writerNum++;
rowCount++;
}
}
}
int[] maxLength = { 2, 12, 2, 2, 5, 15, 9 };
return dataStyleSetup(workbook, 1, rowCount, new ColumnProperties(7, maxLength));
}
use of com.bc.pmpheep.back.bo.DecPositionBO in project pmph by BCSquad.
the class FileDownLoadController method exportEditors.
/**
* 角色遴选 批量导出主编、副主编
*
* @param textbookIds
* @param request
* @param response
* @throws IllegalAccessException
*/
@LogDetail(businessType = BUSSINESS_TYPE, logRemark = "角色遴选 批量导出主编、副主编")
@RequestMapping(value = "/position/exportEditors", method = RequestMethod.GET)
public void exportEditors(Long[] textbookIds, HttpServletRequest request, HttpServletResponse response) throws IllegalAccessException, Exception {
List<DecPositionBO> list;
Workbook workbook = null;
try {
list = textbookService.getExcelDecByMaterialId(textbookIds);
workbook = excelHelper.fromDecPositionBOList(list, "主编-副主编");
} catch (CheckedServiceException | IllegalArgumentException e) {
throw new CheckedServiceException(CheckedExceptionBusiness.FILE, CheckedExceptionResult.FILE_CREATION_FAILED, "数据表格化的时候失败");
}
// 通过书籍id获取教材信息
Material material = materialService.getMaterialByName(textbookIds);
String fileName = returnFileName(request, material.getMaterialName() + ".xls");
response.setCharacterEncoding("utf-8");
response.setContentType("application/force-download");
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
try (OutputStream out = response.getOutputStream()) {
workbook.write(out);
out.flush();
out.close();
} catch (Exception e) {
logger.warn("文件下载时出现IO异常:{}", e.getMessage());
throw new CheckedServiceException(CheckedExceptionBusiness.FILE, CheckedExceptionResult.FILE_DOWNLOAD_FAILED, "文件在传输时中断");
}
}
use of com.bc.pmpheep.back.bo.DecPositionBO in project pmph by BCSquad.
the class ExcelHelperTest method makeDecPositionBOList.
private List<DecPositionBO> makeDecPositionBOList() {
List<DecPositionBO> list = new ArrayList<>(3);
for (int i = 1; i < 4; i++) {
DecPositionBO bo = new DecPositionBO();
bo.setSort(i);
bo.setTextbookName("书" + i);
bo.setTextbookRound(i + 5);
List<WriterBO> writers = new ArrayList<>();
for (int j = 0; j < 10; j++) {
WriterBO writer = new WriterBO();
writer.setRealname("随机姓名" + j);
writer.setChosenOrgName("随机学校" + j);
switch(j % 4) {
case 0:
writer.setChosenPosition(1);
break;
case 1:
writer.setChosenPosition(2);
break;
case 2:
writer.setChosenPosition(4);
break;
case 3:
writer.setChosenPosition(8);
break;
}
writer.setRank(j + 1);
writers.add(writer);
}
bo.setWriters(writers.toString());
list.add(bo);
}
return list;
}
use of com.bc.pmpheep.back.bo.DecPositionBO in project pmph by BCSquad.
the class ExcelHelperTest method fromDecPositionBOList.
@Test
@Ignore
public void fromDecPositionBOList() throws IOException, SecurityException, IllegalArgumentException, IllegalAccessException {
List<DecPositionBO> list = makeDecPositionBOList();
Workbook workbook = excelHelper.fromDecPositionBOList(list, "遴选表");
String path = this.getClass().getResource("/").getPath().concat("position.xls");
FileOutputStream out = new FileOutputStream(path);
workbook.write(out);
out.flush();
out.close();
}
Aggregations