导入和导出bug修复

This commit is contained in:
guoshengxiong 2024-08-20 17:34:25 +08:00
parent 86fd144a82
commit 5799756fa7
7 changed files with 123 additions and 27 deletions

View File

@ -24,12 +24,17 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.def.TemplateExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecgframework.poi.excel.view.JeecgTemplateExcelView;
import org.simpleframework.xml.core.Validate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
@ -37,10 +42,8 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
@ -158,7 +161,7 @@ public class DangerIdentificationEvaluationFormController {
OutputStream out = response.getOutputStream();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-project");
String name = "系统项目组危险源辨别评价表模版.xls";
String name = "系统项目组危险源辨别评价表模板数据.xlsx";
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(name, "UTF-8"));
InputStream fis = new ClassPathResource("template/" + name).getInputStream();
IOUtils.copy(fis, out);
@ -257,8 +260,9 @@ public class DangerIdentificationEvaluationFormController {
importExcelVoList.add(excelVo);
}
}
importExcelVoList = importExcelVoList.stream().filter(d -> StringUtils.isNotBlank(d.getSequenceNumber())).collect(Collectors.toList());
//判断序号是否有重复的
Map<String, Long> collect = importExcelVoList.stream().filter(d -> StringUtils.isNotBlank(d.getSequenceNumber())).map(DangerIdentificationEvaluationForm::getSequenceNumber).collect(
Map<String, Long> collect = importExcelVoList.stream().map(DangerIdentificationEvaluationForm::getSequenceNumber).collect(
Collectors.groupingBy(Function.identity(), Collectors.counting()));
List<String> list = new ArrayList<>();
for (String s : collect.keySet()) {
@ -301,7 +305,7 @@ public class DangerIdentificationEvaluationFormController {
@ApiOperation(value = "导出excel项目环境因素辨识评价表管理信息", notes = "导出excel项目环境因素辨识评价表管理信息", httpMethod = "POST")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException {
// Step.1 组装查询条件
QueryWrapper<DangerIdentificationEvaluationForm> queryWrapper = null;
try {
@ -316,15 +320,60 @@ public class DangerIdentificationEvaluationFormController {
}
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
// ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
List<DangerIdentificationEvaluationForm> pageList = dangerIdentificationEvaluationFormService.list(queryWrapper);
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "导出列表");
mv.addObject(NormalExcelConstants.CLASS, DangerIdentificationEvaluationForm.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams());
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
// //导出文件名称
// mv.addObject(NormalExcelConstants.FILE_NAME, "导出列表");
// mv.addObject(NormalExcelConstants.CLASS, DangerIdentificationEvaluationForm.class);
// mv.addObject(NormalExcelConstants.PARAMS, new ExportParams());
// mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
// return mv;
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> listMap = new ArrayList<>();
if (pageList.size() > 0) {
for (DangerIdentificationEvaluationForm p : pageList) {
Map<String, Object> mp = new HashMap<>();
mp.put("sequenceNumber", p.getSequenceNumber());
mp.put("branchEngineering", p.getBranchEngineering());
mp.put("subproject", p.getSubproject());
mp.put("procedureName", p.getProcedureName());
mp.put("homeworkActivity", p.getHomeworkActivity());
mp.put("dangerousHarmfulSerialNumber", p.getDangerousHarmfulSerialNumber());
mp.put("dangerousHarmfulFactors", p.getDangerousHarmfulFactors());
mp.put("dangerousHarmfulClassify", p.getDangerousHarmfulClassify());
mp.put("potentialAccident", p.getPotentialAccident());
mp.put("operatingConditionDangeerL", p.getOperatingConditionDangeerL());
mp.put("operatingConditionDangeerE", p.getOperatingConditionDangeerE());
mp.put("operatingConditionDangeerC", p.getOperatingConditionDangeerC());
mp.put("operatingConditionDangeerD", p.getOperatingConditionDangeerD());
mp.put("dangerLevel", p.getDangerLevel());
mp.put("controlMeasure", p.getControlMeasure());
mp.put("responsibleUnitProjectDepartment", p.getResponsibleUnitProjectDepartment());
mp.put("responsibleUnitProjectTeam", p.getResponsibleUnitProjectTeam());
mp.put("responsibleUnitManagement", p.getResponsibleUnitManagement());
mp.put("responsibleUnitEpcContractor", p.getResponsibleUnitEpcContractor());
mp.put("responsibleUnitConstructionContractor", p.getResponsibleUnitConstructionContractor());
//将项目清单的map添加到list中
listMap.add(mp);
}
}
//将项目清单集合添加到map中
map.put("listMap", listMap);
File file = new File(ResourceUtils.getURL("classpath:").getPath());
//获取模板文件路径
File templateFile = new File(file, "/template/系统项目组危险源辨别评价表模板.xlsx");
//获取模板
TemplateExportParams params = new TemplateExportParams(templateFile.getAbsolutePath());
//模板视图
ModelAndView mv = new ModelAndView(new JeecgTemplateExcelView());
//添加表格参数
mv.addObject(TemplateExcelConstants.PARAMS, params);
//添加模板参数
mv.addObject(TemplateExcelConstants.MAP_DATA, map);
return mv;
}
}

View File

@ -8,6 +8,7 @@ import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.oConvertUtils;
import com.zhgd.xmgl.modules.baotou.entity.DangerIdentificationEvaluationForm;
import com.zhgd.xmgl.modules.baotou.entity.EnvironmentEvaluateForm;
import com.zhgd.xmgl.modules.baotou.service.IEnvironmentEvaluateFormService;
import com.zhgd.xmgl.util.ExcelUtils;
@ -25,11 +26,15 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.def.TemplateExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecgframework.poi.excel.view.JeecgTemplateExcelView;
import org.simpleframework.xml.core.Validate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
@ -37,10 +42,7 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
@ -158,7 +160,7 @@ public class EnvironmentEvaluateFormController {
OutputStream out = response.getOutputStream();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-project");
String name = "环境因素辨识及评价表模板.xlsx";
String name = "环境因素辨识及评价表模板数据.xlsx";
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(name, "UTF-8"));
InputStream fis = new ClassPathResource("template/" + name).getInputStream();
IOUtils.copy(fis, out);
@ -210,7 +212,7 @@ public class EnvironmentEvaluateFormController {
int lastCellNum = row.getLastCellNum();
//列数
for (int k = firstCellNum; k < lastCellNum; k++) {
log.info("xxx:{},{}",j,k);
log.info("xxx:{},{}", j, k);
//获取单元格的值不管是否合并的单元格都可以获取
String value = ExcelUtils.getSheelValue(sheet, j, k);
//把当前列的值赋值给对应的属性字段
@ -253,8 +255,9 @@ public class EnvironmentEvaluateFormController {
importExcelVoList.add(excelVo);
}
}
importExcelVoList = importExcelVoList.stream().filter(d -> StringUtils.isNotBlank(d.getSerialNumber())).collect(Collectors.toList());
//判断序号是否有重复的
Map<String, Long> collect = importExcelVoList.stream().filter(d -> StringUtils.isNotBlank(d.getSerialNumber())).map(EnvironmentEvaluateForm::getSerialNumber).collect(
Map<String, Long> collect = importExcelVoList.stream().map(EnvironmentEvaluateForm::getSerialNumber).collect(
Collectors.groupingBy(Function.identity(), Collectors.counting()));
List<String> list = new ArrayList<>();
for (String s : collect.keySet()) {
@ -297,7 +300,7 @@ public class EnvironmentEvaluateFormController {
@ApiOperation(value = "导出excel项目环境因素辨识评价表管理信息", notes = "导出excel项目环境因素辨识评价表管理信息", httpMethod = "POST")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException {
// Step.1 组装查询条件
QueryWrapper<EnvironmentEvaluateForm> queryWrapper = null;
try {
@ -312,13 +315,57 @@ public class EnvironmentEvaluateFormController {
}
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
// ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
List<EnvironmentEvaluateForm> pageList = environmentEvaluateFormService.list(queryWrapper);
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "导出列表");
mv.addObject(NormalExcelConstants.CLASS, EnvironmentEvaluateForm.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams());
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
// mv.addObject(NormalExcelConstants.FILE_NAME, "导出列表");
// mv.addObject(NormalExcelConstants.CLASS, EnvironmentEvaluateForm.class);
// mv.addObject(NormalExcelConstants.PARAMS, new ExportParams());
// mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
// return mv;
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> listMap = new ArrayList<>();
if (pageList.size() > 0) {
for (EnvironmentEvaluateForm p : pageList) {
Map<String, Object> mp = new HashMap<>();
mp.put("serialNumber", p.getSerialNumber());
mp.put("subItemProcess", p.getSubItemProcess());
mp.put("environmentalFactor", p.getEnvironmentalFactor());
mp.put("environmentalImpact", p.getEnvironmentalImpact());
mp.put("environmentalImpactScaleScopeA", p.getEnvironmentalImpactScaleScopeA());
mp.put("environmentalImpactDegreeB", p.getEnvironmentalImpactDegreeB());
mp.put("environmentalImpactFrequencyC", p.getEnvironmentalImpactFrequencyC());
mp.put("lawsRegulationsD", p.getLawsRegulationsD());
mp.put("environmentalImpactSocialAttentionE", p.getEnvironmentalImpactSocialAttentionE());
mp.put("evaluationValue", p.getEvaluationValue());
mp.put("isImportantEnvironmentalFactor", p.getIsImportantEnvironmentalFactor());
mp.put("controlMeasure", p.getControlMeasure());
mp.put("responsibleUnitProjectDepartment", p.getResponsibleUnitProjectDepartment());
mp.put("responsibleUnitProjectTeam", p.getResponsibleUnitProjectTeam());
mp.put("responsibleUnitSupervision", p.getResponsibleUnitSupervision());
mp.put("responsibleUnitEpc", p.getResponsibleUnitEpc());
mp.put("responsibleUnitConstructionUnit", p.getResponsibleUnitConstructionUnit());
//将项目清单的map添加到list中
listMap.add(mp);
}
}
//将项目清单集合添加到map中
map.put("listMap", listMap);
File file = new File(ResourceUtils.getURL("classpath:").getPath());
//获取模板文件路径
File templateFile = new File(file, "/template/环境因素辨识及评价表模板.xlsx");
//获取模板
TemplateExportParams params = new TemplateExportParams(templateFile.getAbsolutePath());
//模板视图
ModelAndView mv = new ModelAndView(new JeecgTemplateExcelView());
//添加表格参数
mv.addObject(TemplateExcelConstants.PARAMS, params);
//添加模板参数
mv.addObject(TemplateExcelConstants.MAP_DATA, map);
return mv;
}