update 法规符合性排查流程-》车型项目文件模板下载:新增一个sheet页展示 车型状态的所有下拉值。

This commit is contained in:
lijiarao
2024-09-13 18:11:34 +08:00
parent ee337530c4
commit 8813815bce
2 changed files with 78 additions and 15 deletions
@@ -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<Pro
@Resource
private ActFlowCommonService actFlowCommonService;
@Resource
private ISysBaseAPI sysBaseAPI;
@AutoLog(value = "法规符合性排查流程-发起流程")
@ApiOperation(value = "法规符合性排查流程-发起流程", notes = "法规符合性排查流程-发起流程")
@PostMapping(value = "/start")
@@ -141,19 +150,56 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
@GetMapping("/modelTemplateDownload")
@ApiOperation(value = "法规符合性排查流程-车型导入模板下载", notes = "法规符合性排查流程-车型导入模板下载")
@AutoLog(value = "法规符合性排查流程-车型导入模板下载")
public ModelAndView modelTemplateDownload() {
public void modelTemplateDownload(HttpServletResponse response) {
// AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
String title = "车型批量导入模板";
//此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(FILE_NAME);
mv.addObject(CLASS, ModelExcelVO.class);
ExportParams exportParams = new ExportParams(null, title);
// 导出xls
exportParams.setType(ExcelType.HSSF);
mv.addObject(PARAMS, exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<T>());
return mv;
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> 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<String, Object> map1 = new HashMap<>();
map1.put("title",new ExportParams(null, "字典"));
map1.put(CLASS, DictExcelVO.class);
List<DictModel> dictItems = sysBaseAPI.getDictItems("model_status");
ArrayList<DictExcelVO> 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);
}
}
}
/**
@@ -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;
}