From 8813815bce6159770116d43d4f7546e7e9c287d8 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 13 Sep 2024 18:11:34 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B3=95=E8=A7=84=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E6=80=A7=E6=8E=92=E6=9F=A5=E6=B5=81=E7=A8=8B-=E3=80=8B?= =?UTF-8?q?=E8=BD=A6=E5=9E=8B=E9=A1=B9=E7=9B=AE=E6=96=87=E4=BB=B6=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E4=B8=8B=E8=BD=BD=EF=BC=9A=E6=96=B0=E5=A2=9E=E4=B8=80?= =?UTF-8?q?=E4=B8=AAsheet=E9=A1=B5=E5=B1=95=E7=A4=BA=20=E8=BD=A6=E5=9E=8B?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=9A=84=E6=89=80=E6=9C=89=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E5=80=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...cessStandardComplianceCheckController.java | 76 +++++++++++++++---- .../entity/vo/DictExcelVO.java | 17 +++++ 2 files changed, 78 insertions(+), 15 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/vo/DictExcelVO.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/controller/ProcessStandardComplianceCheckController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/controller/ProcessStandardComplianceCheckController.java index 3d1ed97c..5a5df2bf 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/controller/ProcessStandardComplianceCheckController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/controller/ProcessStandardComplianceCheckController.java @@ -6,7 +6,9 @@ import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.DictPoint; import com.jero.common.aspect.annotation.Translation; import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.vo.DictModel; import com.jero.common.util.MessageUtils; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; @@ -14,6 +16,7 @@ import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck; import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheckDetail; +import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.DictExcelVO; import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ModelExcelVO; import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ProcessSccVO; import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.SplitExcelVO; @@ -25,6 +28,8 @@ import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; +import org.apache.poi.ss.usermodel.Workbook; +import org.jeecgframework.poi.excel.ExcelExportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.enmus.ExcelType; @@ -37,10 +42,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.io.OutputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.*; /** * 流程-测试流程(process_demo)表控制层 @@ -60,6 +66,9 @@ public class ProcessStandardComplianceCheckController extends JeroController()); - return mv; + + List> list = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("title",new ExportParams(null, title)); + map.put(CLASS,ModelExcelVO.class); + map.put(NormalExcelConstants.DATA_LIST,new ArrayList<>()); + list.add(map); + Map map1 = new HashMap<>(); + map1.put("title",new ExportParams(null, "字典")); + map1.put(CLASS, DictExcelVO.class); + List dictItems = sysBaseAPI.getDictItems("model_status"); + ArrayList dictExcelVOS = new ArrayList<>(); + for (DictModel dictItem : dictItems) { + DictExcelVO dictExcelVO = new DictExcelVO(); + dictExcelVO.setModelState(dictItem.getText()); + dictExcelVOS.add(dictExcelVO); + } + map1.put(NormalExcelConstants.DATA_LIST,dictExcelVOS); + list.add(map1); + ExcelType type = ExcelType.HSSF; + Workbook workbook = ExcelExportUtil.exportExcel(list, type); + // 设置HTTP响应头 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("UTF-8"); // 这行确保响应流使用UTF-8编码 + + // 处理文件名乱码问题 + String encodedFileName = null; + try { + encodedFileName = URLEncoder.encode("车型批量导入模板", StandardCharsets.UTF_8.name()).replace("+", "%20"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName + ".xlsx"); + + // 获取响应输出流并写入Excel + try (OutputStream out = response.getOutputStream()) { + workbook.write(out); + out.flush(); + } catch (IOException e) { + log.error("导出Excel失败", e); + } finally { + try { + workbook.close(); + } catch (IOException e) { + log.error("导出Excel失败", e); + } + } } /** diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/vo/DictExcelVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/vo/DictExcelVO.java new file mode 100644 index 00000000..1e6eaf38 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/vo/DictExcelVO.java @@ -0,0 +1,17 @@ +package com.jero.modules.activiti.process.standardComplianceCheck.entity.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.jero.common.aspect.annotation.Dict; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.util.Arrays; +import java.util.List; + +@Data +public class DictExcelVO { + + @Excel(name = "车型状态") + private String modelState; + +}