diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/DangerIdentificationEvaluationFormController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/DangerIdentificationEvaluationFormController.java index 3e6870739..49af1c533 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/DangerIdentificationEvaluationFormController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/DangerIdentificationEvaluationFormController.java @@ -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 collect = importExcelVoList.stream().filter(d -> StringUtils.isNotBlank(d.getSequenceNumber())).map(DangerIdentificationEvaluationForm::getSequenceNumber).collect( + Map collect = importExcelVoList.stream().map(DangerIdentificationEvaluationForm::getSequenceNumber).collect( Collectors.groupingBy(Function.identity(), Collectors.counting())); List 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 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 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 map = new HashMap<>(); + List> listMap = new ArrayList<>(); + if (pageList.size() > 0) { + for (DangerIdentificationEvaluationForm p : pageList) { + Map 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; } - } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/EnvironmentEvaluateFormController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/EnvironmentEvaluateFormController.java index 9a18c7fc4..167345c40 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/EnvironmentEvaluateFormController.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/EnvironmentEvaluateFormController.java @@ -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 collect = importExcelVoList.stream().filter(d -> StringUtils.isNotBlank(d.getSerialNumber())).map(EnvironmentEvaluateForm::getSerialNumber).collect( + Map collect = importExcelVoList.stream().map(EnvironmentEvaluateForm::getSerialNumber).collect( Collectors.groupingBy(Function.identity(), Collectors.counting())); List 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 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 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 map = new HashMap<>(); + List> listMap = new ArrayList<>(); + if (pageList.size() > 0) { + for (EnvironmentEvaluateForm p : pageList) { + Map 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; } diff --git a/src/main/resources/template/环境因素辨识及评价表模板.xlsx b/src/main/resources/template/环境因素辨识及评价表模板.xlsx index f5b69d917..c1407b161 100644 Binary files a/src/main/resources/template/环境因素辨识及评价表模板.xlsx and b/src/main/resources/template/环境因素辨识及评价表模板.xlsx differ diff --git a/src/main/resources/template/环境因素辨识及评价表模板数据.xlsx b/src/main/resources/template/环境因素辨识及评价表模板数据.xlsx new file mode 100644 index 000000000..438226324 Binary files /dev/null and b/src/main/resources/template/环境因素辨识及评价表模板数据.xlsx differ diff --git a/src/main/resources/template/系统项目组危险源辨别评价表模板.xlsx b/src/main/resources/template/系统项目组危险源辨别评价表模板.xlsx new file mode 100644 index 000000000..c81beec37 Binary files /dev/null and b/src/main/resources/template/系统项目组危险源辨别评价表模板.xlsx differ diff --git a/src/main/resources/template/系统项目组危险源辨别评价表模板数据.xlsx b/src/main/resources/template/系统项目组危险源辨别评价表模板数据.xlsx new file mode 100644 index 000000000..0332300aa Binary files /dev/null and b/src/main/resources/template/系统项目组危险源辨别评价表模板数据.xlsx differ diff --git a/src/main/resources/template/系统项目组危险源辨别评价表模版.xls b/src/main/resources/template/系统项目组危险源辨别评价表模版.xls deleted file mode 100644 index 46424e7ee..000000000 Binary files a/src/main/resources/template/系统项目组危险源辨别评价表模版.xls and /dev/null differ