From 4e5ee215c3b2e9bbf2d6e0f9514f2972e5721e32 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Fri, 21 Oct 2022 17:44:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/form/EventStatisticsFormDTO.java | 3 + .../result/EventStatisticsResultDTO.java | 2 + .../screen/controller/ScreenController.java | 42 ++++++++++ .../screen/dao/ScreenDeptEventStatDao.java | 9 +++ .../screen/excel/ScreenDataExportExcel.java | 38 +++++++++ .../service/ScreenDeptEventStatService.java | 10 +++ .../impl/ScreenDeptEventStatServiceImpl.java | 24 ++++++ .../src/main/resources/logback-spring.xml | 1 + .../mapper/screen/ScreenDeptEventStatDao.xml | 79 +++++++++++++++++++ 9 files changed, 208 insertions(+) create mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenDataExportExcel.java diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/form/EventStatisticsFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/form/EventStatisticsFormDTO.java index 9421890f7..3ef7979f0 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/form/EventStatisticsFormDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/form/EventStatisticsFormDTO.java @@ -27,4 +27,7 @@ public class EventStatisticsFormDTO implements Serializable { private String peopleFlag = ""; private String sort = ""; private String sortType = "desc"; + private String mobile; + private String category; + private String evaluationScore; } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStatisticsResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStatisticsResultDTO.java index c375758dd..d0856e63b 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStatisticsResultDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStatisticsResultDTO.java @@ -54,4 +54,6 @@ public class EventStatisticsResultDTO implements Serializable { private Integer developClosedCount; @JsonIgnore private Integer lawClosedCount; + + private Integer responseCount; } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenController.java index b6fa89f86..4b9e114a1 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenController.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/controller/ScreenController.java @@ -17,7 +17,14 @@ package com.elink.esua.epdc.modules.screen.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; +import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; +import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.utils.excel.handler.FreezeAndFilter; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; import com.elink.esua.epdc.dto.events.form.ItemDailyStatisFormDTO; @@ -26,9 +33,12 @@ import com.elink.esua.epdc.dto.screen.form.EventStatisticsFormDTO; import com.elink.esua.epdc.dto.screen.result.BarCategoryResultDTO; import com.elink.esua.epdc.dto.screen.result.EfficiencyEvaluationResultDTO; import com.elink.esua.epdc.dto.screen.result.EventStatisticsResultDTO; +import com.elink.esua.epdc.modules.screen.excel.ScreenDataExportExcel; import com.elink.esua.epdc.modules.screen.service.ScreenDeptEventEfficiencyService; import com.elink.esua.epdc.modules.screen.service.ScreenDeptEventStatService; import com.elink.esua.epdc.modules.screen.service.ScreenService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -36,13 +46,18 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; /** * 大屏接口 * @author Administrator */ +@Slf4j @RestController @RequestMapping("screen") public class ScreenController { @@ -83,4 +98,31 @@ public class ScreenController { } + @PostMapping("export") + public void export(@RequestBody EventStatisticsFormDTO formDTO, HttpServletResponse response) { + ExcelWriter excelWriter = null; + List exportList = new ArrayList<>(); + try { + String fileName = "大屏数据导出.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), ScreenDataExportExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("表格").build(); + List list = screenDeptEventStatService.getScreenExportData(formDTO); + AtomicInteger i = new AtomicInteger(1); + if (CollectionUtils.isNotEmpty(list)) { + exportList = list.stream().map(item -> { + ScreenDataExportExcel excel = ConvertUtils.sourceToTarget(item, ScreenDataExportExcel.class); + return excel; + }).collect(Collectors.toList()); + } + excelWriter.write(exportList, writeSheet); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + + } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenDeptEventStatDao.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenDeptEventStatDao.java index 75053ca63..9bcbec335 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenDeptEventStatDao.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenDeptEventStatDao.java @@ -73,5 +73,14 @@ public interface ScreenDeptEventStatDao extends BaseDao} + * @Author zhaoqifeng + * @Date 2022/10/21 16:42 + */ + List getScreenExportData(EventStatisticsFormDTO formDTO); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenDataExportExcel.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenDataExportExcel.java new file mode 100644 index 000000000..a07bbdc6f --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenDataExportExcel.java @@ -0,0 +1,38 @@ +package com.elink.esua.epdc.modules.screen.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadStyle; +import com.alibaba.excel.enums.poi.FillPatternTypeEnum; +import lombok.Data; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/4/13 10:46 + */ +@Data +public class ScreenDataExportExcel { + @ColumnWidth(20) + @ExcelProperty(value = "部门",order = 1) + private String deptName; + @ColumnWidth(20) + @ExcelProperty(value = "问题总上报数",order = 2) + private Integer eventCount; + @ColumnWidth(20) + @ExcelProperty(value = {"分类", "发展诉求"},order = 3) + private Integer developCount; + @ColumnWidth(20) + @ExcelProperty(value = {"分类", "执法诉求"},order = 4) + private Integer lawCount; + @ColumnWidth(20) + @ExcelProperty(value = {"分类", "民生诉求"},order = 5) + private Integer livelihoodCount; + @ColumnWidth(20) + @ExcelProperty(value = "响应数",order = 6) + private Integer responseCount; + @ColumnWidth(20) + @ExcelProperty(value = "办结数",order = 7) + private Integer closedCount; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenDeptEventStatService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenDeptEventStatService.java index 2be435d33..0cd3dd98e 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenDeptEventStatService.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/ScreenDeptEventStatService.java @@ -66,4 +66,14 @@ public interface ScreenDeptEventStatService extends BaseService} + * @Author zhaoqifeng + * @Date 2022/10/21 16:59 + */ + List getScreenExportData(EventStatisticsFormDTO formDTO); + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java index 885a785d3..694543d1f 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenDeptEventStatServiceImpl.java @@ -209,6 +209,30 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2022/10/21 16:59 + */ + @Override + public List getScreenExportData(EventStatisticsFormDTO formDTO) { + if (NumConstant.ONE_STR.equals(formDTO.getStatType())) { + //日期为当前日期前一天 + formDTO.setStatDate(DateUtils.format(DateUtils.addDateDays(new Date(), -1), DateUtils.DATE_PATTERN)); + } else if (NumConstant.TWO_STR.equals(formDTO.getStatType())) { + //日期为本月 + formDTO.setStatDate(DateUtils.format(new Date(), DateUtils.DATE_PATTERN).substring(0, 7)); + } else if (NumConstant.THREE_STR.equals(formDTO.getStatType())) { + //日期为本年 + formDTO.setStatDate(DateUtils.format(new Date(), DateUtils.DATE_PATTERN).substring(0, 4)); + } + return baseDao.getScreenExportData(formDTO); + } + private BarCategoryResultDTO getBarCategoryResultDTO(BarCategoryResultDTO result, List list, String peopleFlag) { if (CollectionUtils.isNotEmpty(list)) { List barList = list.stream().map(item -> { diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/logback-spring.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/logback-spring.xml index fd43813fe..eaaf85e98 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/logback-spring.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/logback-spring.xml @@ -137,6 +137,7 @@ + diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventStatDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventStatDao.xml index 45cc73ec1..1cf64896d 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventStatDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/screen/ScreenDeptEventStatDao.xml @@ -242,4 +242,83 @@ GROUP BY a.id ORDER BY a.sort + + \ No newline at end of file