From 35d86a7222bb665d4296d0312f7e72a3b0ac8d65 Mon Sep 17 00:00:00 2001 From: yinglong zhang <1679309912@qq.com> Date: Tue, 13 Jul 2021 15:36:17 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E6=9C=AA=E5=90=88=E8=A7=84=E9=A1=B9?= =?UTF-8?q?=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/adc/da/common/TableToExcel.java | 92 +++++++++++++++++++ .../controller/WorkFlowController.java | 46 ++++++++++ .../da/workFlow/dao/ExportExcelMapper.java | 8 ++ .../adc/da/workFlow/entity/ExportExcel.java | 20 ++++ .../adc/da/workFlow/entity/ExportExcelEO.java | 17 ++++ .../da/workFlow/service/WorkFlowService.java | 1 + adc-da-base/pom.xml | 2 + 7 files changed, 186 insertions(+) create mode 100644 adc-da-activiti/src/main/java/com/adc/da/common/TableToExcel.java create mode 100644 adc-da-activiti/src/main/java/com/adc/da/workFlow/dao/ExportExcelMapper.java create mode 100644 adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/ExportExcel.java create mode 100644 adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/ExportExcelEO.java diff --git a/adc-da-activiti/src/main/java/com/adc/da/common/TableToExcel.java b/adc-da-activiti/src/main/java/com/adc/da/common/TableToExcel.java new file mode 100644 index 00000000..99d2e19f --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/common/TableToExcel.java @@ -0,0 +1,92 @@ +package com.adc.da.common; + +import org.apache.commons.beanutils.BeanUtils; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; + +import java.util.*; + +public class TableToExcel { + + public static Workbook createExcel(Map columnMap, List dataList, String sheelName, String fileName) { + + if(sheelName==null)sheelName="sheet1"; + + int sheetRow=500; + sheetRow=sheetRow<0?200:sheetRow; + //第一步,创建一个webbook,对应一个excel文件,内存中sheetRow条记录后提交。 + Workbook wb=new SXSSFWorkbook(sheetRow); + if(columnMap!=null&&dataList!=null) { + //获取需要生成的sheet数,以防数据量过大报错 + int sheetCount=getSheetCount(sheetRow,dataList.size()); + //循环生成sheet + for(int i=0;i keys=columnMap.keySet(); + //第一行(标题行)合并并设置标题 + + + //创建表头行 + Row headRow=sheet.createRow(0); + //生成表头行 + int j=0; + for(String key:keys) { + Cell hCell=headRow.createCell(j++); + hCell.setCellValue(columnMap.get(key)); + } + //从第三行开始填充数据 + int c=2; + for(int k=i*sheetRow;k columnMap) { + if(sheet!=null&&columnMap!=null) { + List list=new ArrayList(columnMap.keySet()); + for(int i=0;i0?total/sheelRow+1:total/sheelRow; + } + +} diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java index 54fecda7..fcd59455 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java @@ -3,6 +3,7 @@ package com.adc.da.workFlow.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.hutool.core.lang.UUID; import com.adc.da.FeignClientImpl.workFlowFeignClientImpl; import com.adc.da.Timer.ProcessTimer; import com.adc.da.common.*; @@ -15,7 +16,11 @@ import com.adc.da.sys.common.EmailUtils; import com.adc.da.sys.entity.UserEO; import com.adc.da.sys.service.IUserEOService; import com.adc.da.util.LoginUserUtil; +import com.adc.da.workFlow.dao.ExportExcelMapper; +import com.adc.da.workFlow.entity.ExportExcel; +import com.adc.da.workFlow.entity.ExportExcelEO; import com.adc.da.workFlow.entity.ProcessDetailExport; +import com.adc.da.workFlow.service.WorkFlowService; import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; +import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -42,6 +48,46 @@ public class WorkFlowController { @Autowired private workFlowFeignClientImpl workFlowFeignClient; +// @Autowired +// private ExportExcelMapper exportExcelMapper; + + @ApiOperation(value = "导出excel") + @PostMapping("/export_excel") + public void exportExcel(@RequestBody ExportExcelEO exportExcelEO, HttpServletResponse response, HttpServletRequest request) throws IOException { + +// ExportExcel exportExcel = exportExcelMapper.selectById(id); +// if(exportExcel==null||exportExcel.getJson()==null)return; +// ExportExcelEO exportExcelEO=JSON.parseObject(exportExcel.getJson(),ExportExcelEO.class); + + if(exportExcelEO.getFileName()==null||exportExcelEO.getFileName().trim().length()==0){ + exportExcelEO.setFileName(UUID.fastUUID().toString(true)); + } + + Workbook excel = TableToExcel.createExcel(exportExcelEO.getColumnName(), exportExcelEO.getDataList(), null, exportExcelEO.getFileName()); + + response.reset(); + + response.setContentType("application/vnd.ms-excel"); + + response.setHeader("Content-disposition", "attachment; filename=" + exportExcelEO.getFileName() + ".xls"); + OutputStream outputStream = response.getOutputStream(); + + excel.write(outputStream); + outputStream.flush(); + outputStream.close(); + } + +// @ApiOperation(value = "导出excel数据暂留") +// @PostMapping("/save_excel") +// public ResponseMessage saveExcel(@RequestBody ExportExcel exportExcel){ +// +// exportExcelMapper.insert(exportExcel); +// return Result.success(exportExcel); +// +// } + + + @ApiOperation(value = "启动流程-以流程定义id") @GetMapping("/activiti_define_start") public ResponseMessage activiti_define_start(@RequestParam("id") String id, @RequestParam("userId") String userId, @RequestParam(value = "bpnId",required = false) String bpnId){ diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/dao/ExportExcelMapper.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/dao/ExportExcelMapper.java new file mode 100644 index 00000000..e6b082f5 --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/dao/ExportExcelMapper.java @@ -0,0 +1,8 @@ +package com.adc.da.workFlow.dao; + + +import com.adc.da.workFlow.entity.ExportExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface ExportExcelMapper extends BaseMapper { +} diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/ExportExcel.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/ExportExcel.java new file mode 100644 index 00000000..4a99c762 --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/ExportExcel.java @@ -0,0 +1,20 @@ +package com.adc.da.workFlow.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.models.auth.In; +import lombok.*; + +@TableName("t_export_excel") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ExportExcel { + @TableId(value = "id",type = IdType.AUTO) + private Integer id; + @TableField(value = "json") + private String json; +} diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/ExportExcelEO.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/ExportExcelEO.java new file mode 100644 index 00000000..b5b8e1cf --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/ExportExcelEO.java @@ -0,0 +1,17 @@ +package com.adc.da.workFlow.entity; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class ExportExcelEO { + + private Map columnName; + + private List> dataList; + + private String fileName; + +} diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/WorkFlowService.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/WorkFlowService.java index 81c27557..1190c6b2 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/WorkFlowService.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/WorkFlowService.java @@ -31,4 +31,5 @@ public class WorkFlowService { /** * 后续优化工作流 */ + } diff --git a/adc-da-base/pom.xml b/adc-da-base/pom.xml index df6ad64a..cbf24270 100644 --- a/adc-da-base/pom.xml +++ b/adc-da-base/pom.xml @@ -37,6 +37,8 @@ UserAgentUtils 1.21 + +