fix: scc导入问题

This commit is contained in:
2024-07-19 14:36:35 +08:00
parent f4189c9284
commit 782d4da197
3 changed files with 75 additions and 53 deletions
@@ -1,16 +1,9 @@
package com.jero.modules.activiti.process.standardComplianceCheck.entity.vo; package com.jero.modules.activiti.process.standardComplianceCheck.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.jero.common.aspect.annotation.Dict; import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.laws.utils.ExcelExportUtilPro;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@Data @Data
public class WithoutDistributeExcelTemplate { public class WithoutDistributeExcelTemplate {
@@ -56,7 +49,7 @@ public class WithoutDistributeExcelTemplate {
*/ */
@ApiModelProperty(value = "合规评估结果") @ApiModelProperty(value = "合规评估结果")
@Dict(dicCode = "evaluation_result") @Dict(dicCode = "evaluation_result")
@Excel(name = "评估结果", width = 15, orderNum = "6", dicCode = "evaluation_result") @Excel(name = "评估结果", width = 15, orderNum = "6")
private String result; private String result;
/** /**
@@ -77,7 +70,7 @@ public class WithoutDistributeExcelTemplate {
* 整改周期 * 整改周期
*/ */
@ApiModelProperty(value = "整改周期") @ApiModelProperty(value = "整改周期")
@Excel(name = "整改方案", width = 15, orderNum = "9") @Excel(name = "整改周期", width = 15, orderNum = "9")
private String correctionPeriod; private String correctionPeriod;
/** /**
@@ -111,23 +104,24 @@ public class WithoutDistributeExcelTemplate {
/** /**
* 附件 * 附件
*/ */
@ApiModelProperty(value = "佐证材料") // @ApiModelProperty(value = "佐证材料")
@ExcelCollection(name = "", orderNum = "14") // @ExcelCollection(name = "", orderNum = "14")
@TableField(exist = false) // @TableField(exist = false)
private List<ExcelExportUtilPro.FileDetails> fileList = Collections.emptyList(); // private List<ExcelExportUtilPro.FileDetails> fileList = Collections.emptyList();
/** /**
* 佐证材料 * 佐证材料
*/ */
@ApiModelProperty(value = "佐证材料") @ApiModelProperty(value = "佐证材料")
@Excel(name = "佐证材料", width = 15, orderNum = "13")
@Dict(dictTable = "oss_file", dicCode = "id", dicText = "file_name") @Dict(dictTable = "oss_file", dicCode = "id", dicText = "file_name")
private String material; private String material;
private String sort; private String sort;
public List<String> obtainFileIds() { // public List<String> obtainFileIds() {
return material != null ? Arrays.asList(material.split(",")) : Collections.emptyList(); // return material != null ? Arrays.asList(material.split(",")) : Collections.emptyList();
} // }
} }
@@ -513,10 +513,10 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
.copyBeanList(detailInfoList, WithoutDistributeExcelTemplate.class); .copyBeanList(detailInfoList, WithoutDistributeExcelTemplate.class);
List<WithoutDistributeExcelTemplate> newRecordsExport = new ArrayList<>(data); List<WithoutDistributeExcelTemplate> newRecordsExport = new ArrayList<>(data);
Workbook workbook = ExcelExportUtil Workbook workbook = ExcelExportUtil
.exportExcel(exportParams, WithoutDistributeExcelTemplate.class, detailInfoList); .exportExcel(exportParams, WithoutDistributeExcelTemplate.class, data);
// 生成超链接 // 生成超链接
excelExportUtilPro.generateHyperlink(newRecordsExport, workbook, // excelExportUtilPro.generateHyperlink(newRecordsExport, workbook,
WithoutDistributeExcelTemplate::getFileList, 13); // WithoutDistributeExcelTemplate::getFileList, 13);
// 导出excel // 导出excel
workbook.write(fos); workbook.write(fos);
// 生成并导出zip // 生成并导出zip
@@ -578,24 +578,24 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
// 获取Excel的header // 获取Excel的header
List<String> headers; List<String> headers;
try { // try {
headers = ExcelUtils.getHeaderFromExcel(file.getInputStream(), 0); // headers = ExcelUtils.getHeaderFromExcel(file.getInputStream(), 0);
} catch (Exception e) { // } catch (Exception e) {
errorMsgs.add("模板错误,请按照系统模板导入!"); // errorMsgs.add("模板错误,请按照系统模板导入!");
resultMap.put("msg", errorMsgs); // resultMap.put("msg", errorMsgs);
resultMap.put("flag", YesOrNoEnum.NO.getValue()); // resultMap.put("flag", YesOrNoEnum.NO.getValue());
log.error(e.getMessage(), e); // log.error(e.getMessage(), e);
return resultMap; // 返回错误信息 // return resultMap; // 返回错误信息
} // }
//
// 使用静态方法验证header // // 使用静态方法验证header
boolean isMatched = headers.equals(ExcelUtils.getSortedHeadersFromClass(WithoutDistributeExcelTemplate.class)); // boolean isMatched = headers.equals(ExcelUtils.getSortedHeadersFromClass(WithoutDistributeExcelTemplate.class));
if (!isMatched) { // if (!isMatched) {
errorMsgs.add("模板错误,请按照系统模板导入!"); // errorMsgs.add("模板错误,请按照系统模板导入!");
resultMap.put("msg", errorMsgs); // resultMap.put("msg", errorMsgs);
resultMap.put("flag", YesOrNoEnum.NO.getValue()); // resultMap.put("flag", YesOrNoEnum.NO.getValue());
return resultMap; // 返回错误信息 // return resultMap; // 返回错误信息
} // }
ImportParams params = new ImportParams(); ImportParams params = new ImportParams();
params.setTitleRows(0); params.setTitleRows(0);
@@ -607,8 +607,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
InputStream inputStream = Files.newInputStream(excelfilelist.get(0).toPath()); InputStream inputStream = Files.newInputStream(excelfilelist.get(0).toPath());
List<WithoutDistributeExcelTemplate> list = ExcelImportUtil List<WithoutDistributeExcelTemplate> list = ExcelImportUtil
.importExcel(inputStream, WithoutDistributeExcelTemplate.class, params); .importExcel(inputStream, WithoutDistributeExcelTemplate.class, params);
list.remove(0);
list.remove(0);
if (list.isEmpty()) { if (list.isEmpty()) {
errorMsgs.add("文件暂无数据,请检查后重试。"); errorMsgs.add("文件暂无数据,请检查后重试。");
resultMap.put("msg", errorMsgs); resultMap.put("msg", errorMsgs);
@@ -648,20 +646,21 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
item.setCommonalityCost(null); item.setCommonalityCost(null);
item.setRemark(null); item.setRemark(null);
item.setMaterial(null); item.setMaterial(null);
} } else {
switch (result) { switch (result) {
case CONFORM_TO: case CONFORM_TO:
case NOT_INVOLVE: case NOT_INVOLVE:
item.setUnsatisfiedRequire(null); item.setUnsatisfiedRequire(null);
item.setCorrectionSolution(null); item.setCorrectionSolution(null);
item.setCorrectionCost(null); item.setCorrectionCost(null);
item.setCommonality(null); item.setCommonality(null);
item.setCommonalityCost(null); item.setCommonalityCost(null);
break; break;
case DISCREPANCY: case DISCREPANCY:
case TO_BE_VERIFIED: case TO_BE_VERIFIED:
item.setRemark(null); item.setRemark(null);
item.setMaterial(null); item.setMaterial(null);
}
} }
}); });
} }
@@ -19,6 +19,7 @@ import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jeecgframework.poi.excel.ExcelExportUtil; import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -127,6 +128,31 @@ public class ExcelUtils {
return headers; return headers;
} }
/**
* 获取HeadRow的文本内容
*
* @param is 文件输入流
* @return HeadRow的List
* @throws Exception
*/
public static List<String> getHeaderFromExcelXSSF(InputStream is, Integer index) throws Exception {
List<String> headers = new ArrayList<>();
Workbook workbook = new XSSFWorkbook(is);
Sheet sheet = workbook.getSheetAt(0);
// HeadRow在index 1
for (int rowIndex = index; rowIndex <= index; rowIndex++) {
Row row = sheet.getRow(rowIndex);
for (Cell cell : row) {
String cellValue = cell.getStringCellValue();
// 否则,直接添加到列表
headers.add(cellValue);
}
}
return headers;
}
/** /**
* 获取一个类的所有带@Excel注解的字段的name属性值,并按照orderNum正序排序。 * 获取一个类的所有带@Excel注解的字段的name属性值,并按照orderNum正序排序。
* *
@@ -554,6 +580,9 @@ public class ExcelUtils {
} }
public String uploadFile(String material, Map<String, File> fileMap) { public String uploadFile(String material, Map<String, File> fileMap) {
if (StrUtil.isBlank(material)) {
return "";
}
return importUtil.convertFileIds(material, fileMap); return importUtil.convertFileIds(material, fileMap);
} }
} }