diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStreetRatioResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStreetRatioResultDTO.java new file mode 100644 index 000000000..a8326a164 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStreetRatioResultDTO.java @@ -0,0 +1,19 @@ +package com.elink.esua.epdc.dto.screen.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 街道各种率计算 + * @Author zhaoqifeng + * @Date 2022/10/11 10:21 + */ +@Data +public class EventStreetRatioResultDTO implements Serializable { + private static final long serialVersionUID = 1L; + + private String streetName; + + private String ratio; +} 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 244d226da..ccb427b26 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 @@ -28,8 +28,11 @@ 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.dto.screen.result.EventStreetRatioResultDTO; import com.elink.esua.epdc.modules.screen.excel.ScreenDataExportExcel; import com.elink.esua.epdc.modules.screen.excel.ScreenDistrictDataExportExcel; +import com.elink.esua.epdc.modules.screen.excel.ScreenReplyExportExcel; +import com.elink.esua.epdc.modules.screen.excel.ScreenSixResponseExportExcel; import com.elink.esua.epdc.modules.screen.service.ScreenDeptEventEfficiencyService; import com.elink.esua.epdc.modules.screen.service.ScreenDeptEventStatService; import lombok.extern.slf4j.Slf4j; @@ -120,6 +123,31 @@ public class ScreenController { exportList2.forEach(item -> item.setIndex(i.getAndIncrement())); } excelWriter.write(exportList2, writeSheet2); + + + // 统计六小时响应率 + List exportList3 = new ArrayList<>(); + WriteSheet writeSheet3 = EasyExcelFactory.writerSheet(3, "6小时维度响应率").head(ScreenSixResponseExportExcel.class).build(); + List list3 = screenDeptEventStatService.getSixHoursResponse(formDTO); + + if (CollectionUtils.isNotEmpty(list3)) { + exportList3 = list3.stream().map(item -> ConvertUtils.sourceToTarget(item, ScreenSixResponseExportExcel.class)).collect(Collectors.toList()); + } + excelWriter.write(exportList3, writeSheet3); + + + // 一天7小时五天为维度的按期回复率 + List exportList4 = new ArrayList<>(); + WriteSheet writeSheet4 = EasyExcelFactory.writerSheet(4, "一天7小时五天为维度的按期回复率").head(ScreenReplyExportExcel.class).build(); + List list4 = screenDeptEventStatService.getReplyRatio(formDTO); + + if (CollectionUtils.isNotEmpty(list4)) { + exportList4 = list4.stream().map(item -> ConvertUtils.sourceToTarget(item, ScreenReplyExportExcel.class)).collect(Collectors.toList()); + } + excelWriter.write(exportList4, writeSheet4); + + + } catch (Exception e) { log.error("export exception", e); } finally { 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 905c36947..8ea4cca5b 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 @@ -24,6 +24,7 @@ import com.elink.esua.epdc.dto.item.result.YellowRedInfoResultDTO; import com.elink.esua.epdc.dto.screen.ScreenDeptEventStatDTO; import com.elink.esua.epdc.dto.screen.form.EventStatisticsFormDTO; import com.elink.esua.epdc.dto.screen.result.EventStatisticsResultDTO; +import com.elink.esua.epdc.dto.screen.result.EventStreetRatioResultDTO; import com.elink.esua.epdc.modules.screen.entity.ScreenDeptEventStatEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -114,4 +115,17 @@ public interface ScreenDeptEventStatDao extends BaseDao getYellowRedInfo(EventStatisticsFormDTO formDTO); + /** + * 统计六小时响应率 + * @param formDTO + * @return + */ + List getSixHoursResponse(EventStatisticsFormDTO formDTO); + + /** + * 一天7小时五天为维度的按期回复率 + * @param formDTO + * @return + */ + List getReplyRatio(EventStatisticsFormDTO formDTO); } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenReplyExportExcel.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenReplyExportExcel.java new file mode 100644 index 000000000..bedd09e6a --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenReplyExportExcel.java @@ -0,0 +1,21 @@ +package com.elink.esua.epdc.modules.screen.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +/** + * @Description 一天7小时五天为维度的按期回复率 + * @Author lc + * @Date 2023/4/13 10:46 + */ +@Data +public class ScreenReplyExportExcel { + @ColumnWidth(20) + @ExcelProperty(value = "街道", order = 1) + private String streetName; + @ColumnWidth(20) + @ExcelProperty(value = "一天7小时五天为维度的按期回复率", order = 2) + private String ratio; + +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenSixResponseExportExcel.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenSixResponseExportExcel.java new file mode 100644 index 000000000..3e9d14ae6 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenSixResponseExportExcel.java @@ -0,0 +1,21 @@ +package com.elink.esua.epdc.modules.screen.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +/** + * @Description 6小时维度响应率 + * @Author lc + * @Date 2023/4/13 10:46 + */ +@Data +public class ScreenSixResponseExportExcel { + @ColumnWidth(20) + @ExcelProperty(value = "街道", order = 1) + private String streetName; + @ColumnWidth(20) + @ExcelProperty(value = "6小时维度响应率", order = 2) + private String ratio; + +} 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 0cd3dd98e..5f1ad360e 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 @@ -24,6 +24,7 @@ import com.elink.esua.epdc.dto.screen.form.DataStatisticsFormDTO; 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.EventStatisticsResultDTO; +import com.elink.esua.epdc.dto.screen.result.EventStreetRatioResultDTO; import com.elink.esua.epdc.modules.screen.entity.ScreenDeptEventStatEntity; import java.util.List; @@ -76,4 +77,17 @@ public interface ScreenDeptEventStatService extends BaseService getScreenExportData(EventStatisticsFormDTO formDTO); + /** + * 一天7小时五天为维度的按期回复率 + * @param formDTO + * @return + */ + List getReplyRatio(EventStatisticsFormDTO formDTO); + + /** + * 统计六小时响应率 + * @param formDTO + * @return + */ + List getSixHoursResponse(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 066182d5b..192d02cf8 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 @@ -248,6 +248,26 @@ public class ScreenDeptEventStatServiceImpl extends BaseServiceImpl getReplyRatio(EventStatisticsFormDTO formDTO) { + return baseDao.getReplyRatio(formDTO); + } + + /** + * 统计六小时响应率 + * @param formDTO + * @return + */ + @Override + public List getSixHoursResponse(EventStatisticsFormDTO formDTO) { + return baseDao.getSixHoursResponse(formDTO); + } + /** * 获取满意度和满意率 * 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 33a2f4745..59f9570f7 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 @@ -587,4 +587,54 @@ GROUP BY a.id ORDER BY a.sort, CONVERT(a.`name` USING gbk) ASC + +