From f66688cd3f4a43cb6e13941c0ab9faafde633108 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Mon, 18 Jul 2022 10:25:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=95=E8=A7=84=E7=AC=A6=E5=90=88=E6=80=A7?= =?UTF-8?q?=E7=9C=8B=E6=9D=BF-=E5=AF=BC=E5=87=BA=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E6=80=A7=E7=BB=93=E6=9E=9C=E3=80=81=E5=AF=BC=E5=87=BA=E7=AC=A6?= =?UTF-8?q?=E5=90=88=E6=80=A7=E7=BB=93=E6=9E=9C=E6=98=8E=E7=BB=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsComplianceBoardController.java | 24 +++ .../mapper/LawsComplianceBoardMapper.java | 9 +- .../mapper/xml/LawsComplianceBoardMapper.xml | 37 ++++ .../service/ILawsComplianceBoardService.java | 18 ++ .../impl/LawsComplianceBoardServiceImpl.java | 161 ++++++++++++++++++ 5 files changed, 248 insertions(+), 1 deletion(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/LawsComplianceBoardController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/LawsComplianceBoardController.java index b5167fba8..0c5724ec6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/LawsComplianceBoardController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/LawsComplianceBoardController.java @@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; @Api(tags="法规符合性看板") @@ -42,4 +44,26 @@ public class LawsComplianceBoardController { JSONObject result = this.lawsComplianceBoardService.queryComplianceResultList(params); return Result.OK(result); } + + /** + * 导出符合性结果 + * @param response + * @param request + * @param params + */ + @RequestMapping(value = "/exportComplianceResult") + public void exportComplianceResult(HttpServletResponse response, HttpServletRequest request,@RequestParam Map params){ + this.lawsComplianceBoardService.exportComplianceResult(response,request,params); + } + + /** + * 导出符合性结果明细 + * @param response + * @param request + * @param params + */ + @RequestMapping(value = "/exportComplianceResultDetail") + public void exportComplianceResultDetail(HttpServletResponse response, HttpServletRequest request,@RequestParam Map params){ + this.lawsComplianceBoardService.exportComplianceResultDetail(response,request,params); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/LawsComplianceBoardMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/LawsComplianceBoardMapper.java index cc7849ae8..3cbc308d1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/LawsComplianceBoardMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/LawsComplianceBoardMapper.java @@ -8,7 +8,7 @@ import java.util.Map; public interface LawsComplianceBoardMapper { /** - * 查询出 启动过 设计、prehomo、验证符合性、法规技术评估、法规意见收集其中一个流程 的数据 + * 分页查询出 启动过 设计、prehomo、验证符合性、法规技术评估、法规意见收集其中一个流程 的数据 * @param page * @param params * @return @@ -21,4 +21,11 @@ public interface LawsComplianceBoardMapper { * @return */ List> queryComplianceResultList(@Param("params") Map params); + + /** + * 查询出 启动过 设计、prehomo、验证符合性、法规技术评估、法规意见收集其中一个流程 的数据列表 + * @param params + * @return + */ + List> queryList(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml index 08027e0bf..84fbb04fa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml @@ -62,4 +62,41 @@ and pni.project_name like CONCAT(CONCAT('%',#{params.projectName}),'%') + + + + + where 1=1 + + + and id ${idOperator} #{id} + + + and type ${typeOperator} #{type} + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/ILawsComplianceBoardService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/ILawsComplianceBoardService.java index 12260ef23..f3aea42f7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/ILawsComplianceBoardService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/ILawsComplianceBoardService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import net.sf.json.JSONObject; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; public interface ILawsComplianceBoardService { @@ -15,4 +17,20 @@ public interface ILawsComplianceBoardService { * @return */ JSONObject queryComplianceResultList(Map params); + + /** + * 导出符合性结果 + * @param response + * @param request + * @param params + */ + void exportComplianceResult(HttpServletResponse response, HttpServletRequest request, Map params); + + /** + * 导出符合性结果明细 + * @param response + * @param request + * @param params + */ + void exportComplianceResultDetail(HttpServletResponse response, HttpServletRequest request, Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java index c95840dda..a477675b0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java @@ -3,6 +3,8 @@ package com.jero.modules.project.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.exception.JeroBootException; import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.document.vo.QueryConditionVO; @@ -16,12 +18,19 @@ import com.jero.modules.system.util.StringUtils; import net.sf.json.JSONObject; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -83,6 +92,145 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi return result; } + @Override + public void exportComplianceResult(HttpServletResponse response, HttpServletRequest request, Map params) { + String cut = (String) params.get("cut"); + String condition = this.getConditionStr(params); + params.put("condition",condition); + List> exportData = this.lawsComplianceBoardMapper.queryList(params); + if(CollectionUtils.isNotEmpty(exportData)){ + String title = ""; + String fileName = ""; + if(StringUtils.equals(cut, CutEnum.CN.getValue())){ + title = "编号,标题,状态,技术领域,责任领域,相关项目,设计符合性,Pre-Homo确认,验证符合性"; + fileName = "符合性结果" + ".xlsx"; + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + title = "Serial number,Title,State,Technology territory,Responsible Field,Relevant project,Design conformance,Pre-Homo Confirm,Verify conformance"; + fileName = "Compliance results" + ".xlsx"; + } + OutputStream os = null; + HSSFWorkbook workbook = new HSSFWorkbook(); + + try { + response.setHeader("Content-Disposition", + "attachment; filename=" + fileName); + response.setContentType("application/force-download"); + + HSSFSheet sheet = workbook.createSheet("sheet1"); + + CellStyle titleCellStyle = workbook.createCellStyle(); + titleCellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中 + titleCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中 + titleCellStyle.setWrapText(true);//自动换行 + + //创建表头 + String[] firstLineTitleArr = title.split(","); + Row firstRow = sheet.createRow(0); + + //设置居中、表头值。 + for (int i = 0; i <= firstLineTitleArr.length; i++){ + Cell cell = firstRow.createCell(i); + cell.setCellStyle(titleCellStyle); + cell.setCellValue(firstLineTitleArr[i]); + } + + //设置导出数据 + if(CollectionUtils.isNotEmpty(exportData)) { + int rowIndex = 1; + for (int dataIndex = 0; dataIndex < exportData.size(); dataIndex++) { + Row dataRow = sheet.createRow(rowIndex); + dataRow.createCell(0).setCellValue(exportData.get(dataIndex).get("serialNumber").toString()); + dataRow.createCell(1).setCellValue(exportData.get(dataIndex).get("title").toString()); + dataRow.createCell(2).setCellValue(exportData.get(dataIndex).get("state").toString()); + dataRow.createCell(3).setCellValue(exportData.get(dataIndex).get("technologyTerritory").toString()); + + dataRow.createCell(4).setCellValue(exportData.get(dataIndex).get("dutyTerritory").toString()); + dataRow.createCell(5).setCellValue(exportData.get(dataIndex).get("projectName").toString()); + dataRow.createCell(6).setCellValue(exportData.get(dataIndex).get("designStatus").toString()); + dataRow.createCell(7).setCellValue(exportData.get(dataIndex).get("prehomoStats").toString()); + dataRow.createCell(8).setCellValue(exportData.get(dataIndex).get("verifyStatus").toString()); + rowIndex ++; + } + } + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + }catch (IOException ex){ + if(CutEnum.CN.getValue().equals(cut)){ + throw new JeroBootException("下载文件失败"); + }else{ + throw new JeroBootException("Failed to download file"); + } + } + } + } + + @Override + public void exportComplianceResultDetail(HttpServletResponse response, HttpServletRequest request, Map params) { + String cut = (String) params.get("cut"); + List> exportData = this.lawsComplianceBoardMapper.queryComplianceResultList(params); + if(CollectionUtils.isNotEmpty(exportData)){ + String title = ""; + String fileName = ""; + if(StringUtils.equals(cut, CutEnum.CN.getValue())){ + title = "责任领域,相关项目,设计符合性,Pre-Homo确认,验证符合性"; + fileName = "符合性结果" + ".xlsx"; + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + title = "Responsible Field,Relevant project,Design conformance,Pre-Homo Confirm,Verify conformance"; + fileName = "Compliance results" + ".xlsx"; + } + OutputStream os = null; + HSSFWorkbook workbook = new HSSFWorkbook(); + + try { + response.setHeader("Content-Disposition", + "attachment; filename=" + fileName); + response.setContentType("application/force-download"); + + HSSFSheet sheet = workbook.createSheet("sheet1"); + + CellStyle titleCellStyle = workbook.createCellStyle(); + titleCellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中 + titleCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中 + titleCellStyle.setWrapText(true);//自动换行 + + //创建表头 + String[] firstLineTitleArr = title.split(","); + Row firstRow = sheet.createRow(0); + + //设置居中、表头值。 + for (int i = 0; i <= firstLineTitleArr.length; i++){ + Cell cell = firstRow.createCell(i); + cell.setCellStyle(titleCellStyle); + cell.setCellValue(firstLineTitleArr[i]); + } + + //设置导出数据 + if(CollectionUtils.isNotEmpty(exportData)) { + int rowIndex = 1; + for (int dataIndex = 0; dataIndex < exportData.size(); dataIndex++) { + Row dataRow = sheet.createRow(rowIndex); + dataRow.createCell(0).setCellValue(exportData.get(dataIndex).get("dutyTerritory").toString()); + dataRow.createCell(1).setCellValue(exportData.get(dataIndex).get("projectName").toString()); + dataRow.createCell(2).setCellValue(exportData.get(dataIndex).get("designStatus").toString()); + dataRow.createCell(3).setCellValue(exportData.get(dataIndex).get("prehomoStats").toString()); + dataRow.createCell(4).setCellValue(exportData.get(dataIndex).get("verifyStatus").toString()); + rowIndex ++; + } + } + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + }catch (IOException ex){ + if(CutEnum.CN.getValue().equals(cut)){ + throw new JeroBootException("下载文件失败"); + }else{ + throw new JeroBootException("Failed to download file"); + } + } + } + } + @NotNull public String getConditionStr(Map parameter) { @@ -184,6 +332,19 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi } } + String ids = (String) parameter.get("ids"); + if(StringUtils.isNotEmpty(ids)){ + List idList = Arrays.asList(ids.split(",")); + String idStr = ""; + for (String id : idList) { + idStr += "'"+id+"',"; + } + if(StringUtils.isNotEmpty(idStr)){ + idStr = idStr.substring(0,idStr.length()-1); + conditionSb.append(" and id in("+idStr+")"); + } + } + //处理列表表头排序 /*if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) { conditionSb.append(" order by " + (String) parameter.get("orderByField"));