فهرست منبع

演练培训Web统计报表代码 导出功能代码提交

jingyuanchao 1 سال پیش
والد
کامیت
a4baec3745

+ 31 - 16
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillTaskReportVo.java

@@ -1,5 +1,10 @@
 package com.xunmei.common.core.domain.drill.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -7,32 +12,42 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
+@ColumnWidth(15) //列宽,最大值为255
+@HeadRowHeight(16) //表头行高
+@ContentRowHeight(16) //数据行高
 public class CoreDrillTaskReportVo {
 
-    @JsonIgnore
-    //@JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty(value = "演练计划Id")
-    private Long planId;
-
-    @JsonIgnore
-    @ApiModelProperty(value = "机构")
-    private Long orgId;
-
+    @ColumnWidth(15)
+    @ExcelProperty(index = 0,value = "序号")
+    private Integer no;
+    @ColumnWidth(15)
+    @ExcelProperty(index = 1,value = "单位名称")
     @ApiModelProperty(value = "机构名称")
     private String orgName;
-
-    @JsonIgnore
-    private String orgPath;
-
-
+    @ColumnWidth(15)
+    @ExcelProperty(index = 2,value = "应完成数")
     @ApiModelProperty(value = "应演练数量")
     private Integer shouldFinish;
-
+    @ColumnWidth(15)
+    @ExcelProperty(index = 3,value = "已完成数")
     @ApiModelProperty(value = "已培演练数量")
     private Integer finish;
-
+    @ColumnWidth(15)
+    @ExcelProperty(index = 4,value = "评分")
     @ApiModelProperty(value = "评分")
     private String score;
 
 
+
+    @ExcelIgnore
+    @JsonIgnore
+    @ApiModelProperty(value = "演练计划Id")
+    private Long planId;
+    @ExcelIgnore
+    @JsonIgnore
+    @ApiModelProperty(value = "机构")
+    private Long orgId;
+    @ExcelIgnore
+    @JsonIgnore
+    private String orgPath;
 }

+ 27 - 8
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/vo/CoreEduTrainingTaskReportVo.java

@@ -1,5 +1,10 @@
 package com.xunmei.common.core.domain.edu.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -7,30 +12,44 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
+@ColumnWidth(15) //列宽,最大值为255
+@HeadRowHeight(16) //表头行高
+@ContentRowHeight(16) //数据行高
 public class CoreEduTrainingTaskReportVo {
 
-    @JsonIgnore
-    @JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty(value = "教育培训计划Id")
-    private Long planId;
 
+
+    @ExcelProperty(index = 0,value = "序号")
     @ApiModelProperty(value = "机构")
-    private Long orgId;
+    private Integer no;
 
+
+    @ExcelProperty(index = 1,value = "单位名称")
     @ApiModelProperty(value = "机构名称")
     private String orgName;
 
-    @JsonIgnore
-    private String orgPath;
-
+    @ExcelProperty(index = 2,value = "应完成数")
     @ApiModelProperty(value = "应培训数量")
     private Integer shouldFinish;
 
+    @ExcelProperty(index = 3,value = "已完成数")
     @ApiModelProperty(value = "已培训数量")
     private Integer finish;
 
+    @ExcelProperty(index = 4,value = "完成率")
     @ApiModelProperty(value = "培训完成率")
     private String finishRate;
 
+    @JsonIgnore
+    @ExcelIgnore
+    @ApiModelProperty(value = "教育培训计划Id")
+    private Long planId;
+
+    @ExcelIgnore
+    @JsonIgnore
+    private String orgPath;
 
+    @ExcelIgnore
+    @ApiModelProperty(value = "机构")
+    private Long orgId;
 }

+ 7 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/controller/CoreDrillTaskController.java

@@ -86,6 +86,13 @@ public class CoreDrillTaskController extends BaseController {
         return success(coreDrillTaskService.selectCoreDrillTaskReport(request));
     }
 
+    @ApiOperation(value = "导出预案演练排行报表")
+    @RequiresPermissions("core:drillTask:list")
+    @PostMapping("exportReport")
+    public void exportReport(@Validated CoreDrillTaskReportDto request,HttpServletResponse response) {
+          coreDrillTaskService.exportReport(request,response);
+    }
+
     @ApiOperation(value = "预案培训签名")
     @RequiresPermissions("core:drillTask:sign")
     @PostMapping("sign")

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/ICoreDrillTaskService.java

@@ -116,4 +116,6 @@ public interface ICoreDrillTaskService extends IService<CoreDrillTask> {
 
     void taskChangeForTimeWorkChange(WorkTimeChangeEvent event);
 
+    void exportReport(CoreDrillTaskReportDto request, HttpServletResponse response);
+
 }

+ 26 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -648,6 +648,32 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     }
 
     @Override
+    public void exportReport(CoreDrillTaskReportDto request, HttpServletResponse response) {
+        final List<CoreDrillTaskReportVo> list = this.selectCoreDrillTaskReport(request);
+        if (ObjectUtil.isEmpty(list)) {
+            throw new SystemException("未获取到数据");
+        }
+        for (CoreDrillTaskReportVo task : list) {
+            task.setNo(list.indexOf(task)+1);
+        }
+        try {
+            // 设置响应头
+            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("预案演练统计报表", "utf-8"));
+            response.setContentType("application/octet-stream;charset=UTF-8");
+            response.setCharacterEncoding("utf-8");
+            // 数据导出
+            EasyExcel.write(response.getOutputStream(), CoreDrillTaskReportVo.class)
+                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("预案演练统计报表").doWrite(list);
+        } catch (Exception e) {
+            e.printStackTrace();
+            // 重置response
+            response.reset();
+            response.setContentType("application/json");
+            response.setCharacterEncoding("utf-8");
+        }
+    }
+
+    @Override
     public List<CoreDrillTaskReportVo> selectCoreDrillTaskReport(CoreDrillTaskReportDto request) {
         CoreDrillPlan plan = coreDrillPlanMapper.selectById(request.getPlanId());
         if (ObjectUtil.isNull(plan)) {

+ 7 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java

@@ -90,6 +90,13 @@ public class CoreEduTrainingTaskController extends BaseController {
         return success(coreEduTrainingTaskService.selectCoreEduTrainingTaskReport(request));
     }
 
+    @ApiOperation(value = "导出教育培训统计报表")
+    @RequiresPermissions("core:eduTask:list")
+    @PostMapping("exportReport")
+    public void exportReport(CoreEduTrainingTaskReportDto request,HttpServletResponse response) {
+         coreEduTrainingTaskService.exportReport(request,response);
+    }
+
     @ApiOperation(value = "教育培训签名")
     @RequiresPermissions("core:eduTask:edit")
     @PostMapping("sign")

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/ICoreEduTrainingTaskService.java

@@ -109,4 +109,6 @@ public interface ICoreEduTrainingTaskService extends IService<CoreEduTrainingTas
     void delByStartTimeAndEndTimeAndPlanIdList(List<Long> planIdList, Date startTime, Date endTime);
 
     void export(CoreEduTrainingTaskPageDto request, HttpServletResponse response);
+
+    void exportReport(CoreEduTrainingTaskReportDto request,HttpServletResponse response);
 }

+ 24 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -652,6 +652,30 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         }*/
     }
 
+    @Override
+    public void exportReport(CoreEduTrainingTaskReportDto request,HttpServletResponse response) {
+        final List<CoreEduTrainingTaskReportVo> list = this.selectCoreEduTrainingTaskReport(request);
+        if (ObjectUtil.isEmpty(list)) {
+            throw new SystemException("未获取到数据");
+        }
+        for (CoreEduTrainingTaskReportVo task : list) {
+            task.setNo(list.indexOf(task)+1);
+        }
+        try {
+            // 设置响应头
+            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("教育培训统计报表", "utf-8"));
+            response.setContentType("application/octet-stream;charset=UTF-8");
+            response.setCharacterEncoding("utf-8");
+            // 数据导出
+            EasyExcel.write(response.getOutputStream(), CoreEduTrainingTaskReportVo.class)
+                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("教育培训统计报表").doWrite(list);
+        } catch (Exception e) {
+            // 重置response
+            response.reset();
+            response.setContentType("application/json");
+            response.setCharacterEncoding("utf-8");
+        }
+    }
 
     @Override
     public List<CoreEduTrainingTaskReportVo> selectCoreEduTrainingTaskReport(CoreEduTrainingTaskReportDto request) {