优化企标导入

This commit is contained in:
SUNJIABIN
2023-03-30 20:43:09 +08:00
parent fc3704555a
commit 5ad13178ff
6 changed files with 173 additions and 24 deletions
@@ -467,7 +467,8 @@ public class SarBussionessStandController extends BaseController<SarBussionessSt
HSSFCellStyle cellStyle =workbook.createCellStyle();
cellStyle.setWrapText(true);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
Row rowHeader = sheetItems.createRow(0);//开始创建标题行
Row rowHeader = sheetItems.createRow(1);//开始创建标题行
Row row2 = sheetItems.createRow(0);//开始创建填写说明
String exportFieldName = FieldConvertUtil.exportFieldName;
if (org.apache.commons.lang3.StringUtils.isNotBlank(exportFieldName)) {
@@ -476,6 +477,9 @@ public class SarBussionessStandController extends BaseController<SarBussionessSt
rowHeader.createCell(i).setCellValue(headerArr[i]);
}
}
Cell cellA2 = row2.createCell(0);
cellA2.setCellValue(FieldConvertUtil.exportName);
String repFileName = fileName2.replaceAll("/","_");
excelOS = new FileOutputStream(fileNowPath + "/" + repFileName);
response.setHeader("Content-Disposition",
@@ -2045,7 +2045,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
return Result.error("请选择需要导入的目录");
}
//给出头部信息
String[] headerExcel = {"企标类别,标准年份,企标编号,中文名称,英文名称,文本状态,发布日期,企标实施日期,企标制修订状态,起草部门,代替企标编号,复审日期,起草人,被代替企标编号,采用标准,文件上传人员,采标程度,引用标准,适用车型,能源类型,适用产品线,体系类别,备案日期,关联模块-乘用车VPPS编码,关联模块--卡车VPPS编码,发布稿附件,编制说明附件,历史版本附件,其他文件附件,修改单附件,关联文件附件,"};
String[] headerExcel = {"*企标类别,*标准年份,企标编号,*中文名称,英文名称,*文本状态,发布日期,企标实施日期,企标制修订状态,起草部门,代替企标编号,复审日期,起草人,采用标准,采标程度,引用标准,适用车型,能源类型,适用产品线,体系类别,备案日期,关联模块-乘用车VPPS编码,关联模块--卡车VPPS编码,发布稿附件,编制说明附件,历史版本附件,其他文件附件,修改单附件,关联文件附件,"};
//获取文件全称
String fileNameStr = file.getOriginalFilename();
@@ -2095,24 +2095,35 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Sheet sheet = workbook.getSheetAt(0);
if (sheet != null) {
StringBuilder sb = new StringBuilder();
Row row = sheet.getRow(1);
for (int i = 0; i < 29; i++) {
sb.append(row.getCell(i).getStringCellValue()).append(",");
}
//获取总条数
int rowNum = sheet.getLastRowNum();
int rowNum = sheet.getPhysicalNumberOfRows();
//循环遍历
for (int i = 0; i <= rowNum; i++) {
Row row = sheet.getRow(i);
Row headerRow = sheet.getRow(0);
for (int i = 1; i <= rowNum; i++) {
row = sheet.getRow(i);
Row headerRow = sheet.getRow(1);
boolean isBlank = sarLawsInfoEOService.isRowEmpty(row);
if (row != null && !isBlank) {
int columNos = headerRow.getLastCellNum();// 表头总共的列数
int columNos = row.getLastCellNum();// 表头总共的列数
Map<String, String> rowList = new LinkedHashMap<>();
for (int j = 0; j < columNos; j++) {
Cell cell = row.getCell(j);
Cell headerCell = headerRow.getCell(j);
if (cell != null) {
if (i == 0) {
cell.setCellType(CellType.STRING);
sb.append(cell.getStringCellValue() + ",");
if (i == 1) {
// cell.setCellType(CellType.STRING);
// sb.append(cell.getStringCellValue() + ",");
} else {
if (CellType.NUMERIC == cell.getCellType() && HSSFDateUtil.isCellDateFormatted(cell)) {
Date d = cell.getDateCellValue();
@@ -2123,7 +2134,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
}
}
} else {
if (i != 0) {
if (i != 0 && i != 1) {
rowList.put(headerCell.getStringCellValue(), "");
}
}
@@ -2137,19 +2148,136 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
return Result.error("fail", "读取失败,请严格按照模板文件导入数据");
}
SarBussStandAttrInfoExecl sarBussStandAttrInfo = new SarBussStandAttrInfoExecl();
if (i != 0) {
if (i != 0 && i != 1) {
String standSort = rowList.get("企标类别");
String standSort = rowList.get("*企标类别");
if (StringUtils.isNotBlank(standSort)) {
if (standSort.length() > 100) {
return Result.error("企标类别输入过长");
}
sarBussStandAttrInfo.setStandSort(standSort);
switch (standSort){
case "BZJ":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "FT":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q-HD":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q-IOUM":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/ASB":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/BFC":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/BQB":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/CBFC":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FD":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FL":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT A":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT B":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT E":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT F":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT G":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT M":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT P":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT Q":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT R":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT S":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT T":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT V":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT X":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT Y":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/FT Z":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/MGB":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/QCBFC":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/QCFLC":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/SGZGS":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/SH":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q/SY":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "QB/NE":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "QC/T":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "QJ/SH":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "Q房/AYJ":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "TFT":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "津Q/NK":
sarBussStandAttrInfo.setStandSort(standSort);
break;
case "鲁Q/LX":
sarBussStandAttrInfo.setStandSort(standSort);
break;
default:
return Result.error("请输入正确的企标类别");
}
} else {
return Result.error("企标类别不能为空");
}
String standYear = rowList.get("标准年份");
String standYear = rowList.get("*标准年份");
if (StringUtils.isNotBlank(standYear)) {
if (standYear.length() > 100) {
return Result.error("标准年份输入过长");
@@ -2162,7 +2290,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
String standNumber = rowList.get("企标编号");
sarBussStandAttrInfo.setStandNumber(standNumber);
String standName = rowList.get("中文名称");
String standName = rowList.get("*中文名称");
if (StringUtils.isNotBlank(standName)) {
if (standName.length() > 100) {
return Result.error("输入的标准名称过长");
@@ -2175,7 +2303,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
String standEnName = rowList.get("英文名称");
sarBussStandAttrInfo.setStandEnName(standEnName);
String textStatusBuss = rowList.get("文本状态");
String textStatusBuss = rowList.get("*文本状态");
if (StringUtils.isNotBlank(textStatusBuss)) {
if (textStatusBuss.length() > 200) {
return Result.error("输入的文本状态过长");
@@ -2207,7 +2335,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
sarBussStandAttrInfo.setTextStatusBuss("1w7cegukbs");
break;
default:
return Result.error("请提供准确的文本状态");
return Result.error("请提供正确的文本状态");
}
} else {
return Result.error("文本状态不能为空");
@@ -2259,15 +2387,13 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
sarBussStandAttrInfo.setQcrbuss(qcrbuss);
}
String bdtqbbhbuss = rowList.get("被代替企标编号");
sarBussStandAttrInfo.setBdtqbbhbuss(bdtqbbhbuss);
//// //采用标准 13
String cybz = rowList.get("采用标准");
sarBussStandAttrInfo.setCybz(cybz);
String wjscrybuss = rowList.get("文件上传人员");
sarBussStandAttrInfo.setWjscrybuss(wjscrybuss);
String userId = com.adc.da.util.LoginUserUtil.getUserId();
String userName = tsUserService.userIdByName(userId);
sarBussStandAttrInfo.setWjscrybuss(userName);
//// //采标程度 15
String cycd = rowList.get("采标程度");