Sfoglia il codice sorgente

周报导出提交

zx 6 mesi fa
parent
commit
6c2f2b3f63

BIN
ruoyi-admin/src/main/resources/excelTemplate/dayReport.xlsx


BIN
ruoyi-admin/src/main/resources/excelTemplate/weekReport.xlsx


+ 68 - 7
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/controller/ReportController.java

@@ -1,6 +1,9 @@
 package com.ruoyi.powerdistribution.controller;
 
 import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.fill.FillConfig;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -11,6 +14,8 @@ import com.ruoyi.powerdistribution.service.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,6 +25,8 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.List;
 
 @RestController
@@ -97,8 +104,26 @@ public class ReportController extends BaseController {
         nextDay.setReportDate(DateUtils.getNextDateStr(reportDate,DateUtils.YYYYMMDD,1));
         List<PdmReportPlanNextDay> nextDayList = pdmReportPlanNextDayService.selectPdmReportPlanNextDayList(nextDay);
 
-        ExcelUtil<PdmReportIllegalDay> util = new ExcelUtil<>(PdmReportIllegalDay.class);
-        util.exportExcel(response, illegalList, "违章");
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        String fileName = java.util.UUID.randomUUID() + ".xlsx";
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName);
+        String templateFileName = "excelTemplate/dayReport.xlsx";
+        InputStream fis = Thread.currentThread().getContextClassLoader().getResourceAsStream(templateFileName);
+        OutputStream ops = response.getOutputStream();
+
+        ExcelWriter excelWriter = EasyExcel.write(ops).withTemplate(fis).build();
+        WriteSheet writeSheet = EasyExcel.writerSheet("违章情况").build();
+        FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
+        excelWriter.fill(illegalList, fillConfig, writeSheet);
+        WriteSheet writeSheet2 = EasyExcel.writerSheet("作业计划").build();
+        excelWriter.fill(planlist, fillConfig, writeSheet2);
+        WriteSheet writeSheet3 = EasyExcel.writerSheet("履职情况").build();
+        excelWriter.fill(appointmentlist, fillConfig, writeSheet3);
+        WriteSheet writeSheet4 = EasyExcel.writerSheet("明日计划").build();
+        excelWriter.fill(nextDayList, fillConfig, writeSheet4);
+        excelWriter.finish();
+
     }
 
     /**
@@ -120,16 +145,14 @@ public class ReportController extends BaseController {
         pdmReportPlan.setReportDate(startDate);
         pdmReportPlan.setReportEndDate(endDate);
         List<PdmReportPlanWeek> planlist = pdmReportPlanWeekService.selectPdmReportPlanWeekList(pdmReportPlan);
-
         PdmReportPlanNextWeek next = new PdmReportPlanNextWeek();
         next.setReportDate(DateUtils.getNextMonday(startDate,DateUtils.YYYYMMDD));
         List<PdmReportPlanNextWeek> nextList = pdmReportPlanNextWeekService.selectPdmReportPlanNextWeekList(next);
-
         PdmWorkPlan workPlan = new PdmWorkPlan();
         workPlan.setStartDate(DateUtils.getNextMonday(startDate,DateUtils.YYYYMMDD));
         workPlan.setEndDate(DateUtils.getNextSunday(endDate,DateUtils.YYYYMMDD));
-
         List<PdmWorkPlan> workList = pdmWorkPlanService.selectPdmWorkPlanList(workPlan);
+
         ReportDayWeek vo = new ReportDayWeek();
         vo.setAppointmentList(appointmentlist);
         vo.setIllegalList(illegalList);
@@ -153,8 +176,46 @@ public class ReportController extends BaseController {
         pdmReportIllegal.setReportDate(startDate);
         pdmReportIllegal.setReportEndDate(endDate);
         List<PdmReportIllegalWeek> illegalList = pdmReportIllegalWeekService.selectPdmReportIllegalWeekList(pdmReportIllegal);
+        PdmReportAppointmentWeek pdmReportAppointment = new PdmReportAppointmentWeek();
+        pdmReportAppointment.setReportDate(startDate);
+        pdmReportAppointment.setReportEndDate(endDate);
+        List<PdmReportAppointmentWeek> appointmentlist = pdmReportAppointmentWeekService.selectPdmReportAppointmentWeekList(pdmReportAppointment);
+        PdmReportPlanWeek pdmReportPlan = new PdmReportPlanWeek();
+        pdmReportPlan.setReportDate(startDate);
+        pdmReportPlan.setReportEndDate(endDate);
+        List<PdmReportPlanWeek> planlist = pdmReportPlanWeekService.selectPdmReportPlanWeekList(pdmReportPlan);
+        PdmReportPlanNextWeek next = new PdmReportPlanNextWeek();
+        next.setReportDate(DateUtils.getNextMonday(startDate,DateUtils.YYYYMMDD));
+        List<PdmReportPlanNextWeek> nextList = pdmReportPlanNextWeekService.selectPdmReportPlanNextWeekList(next);
+        PdmWorkPlan workPlan = new PdmWorkPlan();
+        workPlan.setStartDate(DateUtils.getNextMonday(startDate,DateUtils.YYYYMMDD));
+        workPlan.setEndDate(DateUtils.getNextSunday(endDate,DateUtils.YYYYMMDD));
+        List<PdmWorkPlan> workList = pdmWorkPlanService.selectPdmWorkPlanList(workPlan);
+
+        //ExcelUtil<PdmReportIllegalWeek> util = new ExcelUtil<>(PdmReportIllegalWeek.class);
+        //util.exportExcel(response, illegalList, "违章统计");
+
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        String fileName = java.util.UUID.randomUUID() + ".xlsx";
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName);
+        String templateFileName = "excelTemplate/weekReport.xlsx";
+        InputStream fis = Thread.currentThread().getContextClassLoader().getResourceAsStream(templateFileName);
+        OutputStream ops = response.getOutputStream();
+
+        ExcelWriter excelWriter = EasyExcel.write(ops).withTemplate(fis).build();
+        WriteSheet writeSheet = EasyExcel.writerSheet("违章情况").build();
+        FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
+        excelWriter.fill(illegalList, fillConfig, writeSheet);
+        WriteSheet writeSheet2 = EasyExcel.writerSheet("本周计划执行情况").build();
+        excelWriter.fill(planlist, fillConfig, writeSheet2);
+        WriteSheet writeSheet3 = EasyExcel.writerSheet("履职情况").build();
+        excelWriter.fill(appointmentlist, fillConfig, writeSheet3);
+        WriteSheet writeSheet4 = EasyExcel.writerSheet("下周计划安排").build();
+        excelWriter.fill(nextList, fillConfig, writeSheet4);
+        WriteSheet writeSheet5 = EasyExcel.writerSheet("三级及以上作业风险计划").build();
+        excelWriter.fill(workList, fillConfig, writeSheet5);
+        excelWriter.finish();
 
-        ExcelUtil<PdmReportIllegalWeek> util = new ExcelUtil<>(PdmReportIllegalWeek.class);
-        util.exportExcel(response, illegalList, "违章统计");
     }
 }

+ 8 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/domain/PdmReportIllegalDay.java

@@ -1,5 +1,7 @@
 package com.ruoyi.powerdistribution.domain;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
@@ -19,26 +21,32 @@ public class PdmReportIllegalDay extends BaseEntity
     private Long id;
 
     /** 单位 */
+
     @Excel(name = "单位")
     private String company;
 
     /** 日期 */
     @Excel(name = "日期")
+
     private String reportDate;
 
     /** 省违章数(严重) */
+
     @Excel(name = "省违章数(严重)")
     private Integer provinceNum1;
 
     /** 省违章数(一般) */
+
     @Excel(name = "省违章数(一般)")
     private Integer provinceNum2;
 
     /** 市违章数(严重) */
+
     @Excel(name = "市违章数(严重)")
     private Integer cityNum1;
 
     /** 市违章数(一般) */
+
     @Excel(name = "市违章数(一般)")
     private Integer cityNum2;
 

+ 4 - 4
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/domain/PdmReportPlanNextDay.java

@@ -30,12 +30,12 @@ public class PdmReportPlanNextDay extends BaseEntity
     @Excel(name = "作业总数")
     private Integer workTotal;
 
-    /** 配网工程总数 */
-    @Excel(name = "配网工程总数")
-    private Integer workType1Sum;
-
     /** 倒闸操作总数 */
     @Excel(name = "倒闸操作总数")
+    private Integer workType1Sum;
+
+    /** 配网工程总数 */
+    @Excel(name = "配网工程总数")
     private Integer workType2Sum;
 
     /** 业扩杆迁总数 */

+ 4 - 4
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/domain/PdmReportPlanNextWeek.java

@@ -34,12 +34,12 @@ public class PdmReportPlanNextWeek extends BaseEntity
     @Excel(name = "作业总数")
     private Integer workTotal;
 
-    /** 配网工程总数 */
-    @Excel(name = "配网工程总数")
-    private Integer workType1Sum;
-
     /** 倒闸操作总数 */
     @Excel(name = "倒闸操作总数")
+    private Integer workType1Sum;
+
+    /** 配网工程总数 */
+    @Excel(name = "配网工程总数")
     private Integer workType2Sum;
 
     /** 业扩杆迁总数 */

+ 4 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/domain/PdmWorkPlan.java

@@ -1,7 +1,10 @@
 package com.ruoyi.powerdistribution.domain;
 
 import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.powerdistribution.util.DateConverter;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
@@ -165,6 +168,7 @@ public class PdmWorkPlan extends BaseEntity
     private String isEnergizedOpDsc;
 
     /** 计划开工时间  */
+    @ExcelProperty(converter = DateConverter.class,value = "计划开工时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @Excel(name = "计划开工时间 ", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date planStartWkTm;

+ 34 - 0
ruoyi-powerdistribution/src/main/java/com/ruoyi/powerdistribution/util/DateConverter.java

@@ -0,0 +1,34 @@
+package com.ruoyi.powerdistribution.util;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class DateConverter implements Converter<Date> {
+
+    private static final String PATTERN_YYYY_MM_DD = "yyyy-MM-dd HH:mm:ss";
+
+    @Override
+    public Class<?> supportJavaTypeKey() {
+        return Converter.super.supportJavaTypeKey();
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return Converter.super.supportExcelTypeKey();
+    }
+
+    @Override
+    public WriteCellData<?> convertToExcelData(Date value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_YYYY_MM_DD);
+        String dateValue = sdf.format(value);
+        return new WriteCellData<>(dateValue);
+    }
+
+}