From b6570f2494ae30046236d73403d4f83a3a052640 Mon Sep 17 00:00:00 2001 From: qushutong <1976590620@qq.com> Date: Thu, 29 Jun 2023 09:58:12 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=98=AF0=E5=88=B04=E5=B0=8F=E6=97=B6=20?= =?UTF-8?q?=E7=BB=BF=E7=81=AF=EF=BC=8C4-6=E5=B0=8F=E6=97=B6=E9=BB=84?= =?UTF-8?q?=E7=81=AF=EF=BC=8C6=E5=B0=8F=E6=97=B6=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E7=BA=A2=E7=81=AF,=E6=96=B0=E5=A2=9E=E6=89=A7=E6=B3=95?= =?UTF-8?q?=E5=8F=91=E5=B1=95=E5=93=8D=E5=BA=94=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/controller/ItemController.java | 10 +++ .../item/service/PushToCityGridService.java | 6 ++ .../item/service/impl/ItemServiceImpl.java | 9 +++ .../impl/PushToCityGridServiceImpl.java | 49 ++++++++++++ .../main/resources/mapper/item/ItemDao.xml | 78 +++++++++---------- .../mapper/screen/ScreenDeptEventStatDao.xml | 6 +- 6 files changed, 116 insertions(+), 42 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java index 50a254c94..9f14bb002 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java @@ -706,12 +706,22 @@ public class ItemController { return itemService.processNotice(formDTO); } + /** + * 标记为重复案件 + * @param dto + * @return + */ @PostMapping("changeRepeat") public Result changeRepeat(@RequestBody ItemChangeRepeatDTO dto) { return itemService.changeRepeat(dto); } + /** + * 诉求分类 + * @param dto + * @return + */ @PostMapping("changeCategory") public Result changeCategory(@RequestBody ItemChangeCategoryDTO dto) { return itemService.changeCategory(dto); diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/PushToCityGridService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/PushToCityGridService.java index f2fb02ea2..d1667a4a5 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/PushToCityGridService.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/PushToCityGridService.java @@ -255,4 +255,10 @@ public interface PushToCityGridService { * @Date: 2023/5/4 14:15 */ void receive(String processId); + + + /** + * 虚构一个 执法发展响应节点 + */ + void receiveZFFZ(String itemId); } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java index 69e07e70b..4cd5b951e 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java @@ -733,6 +733,8 @@ public class ItemServiceImpl extends BaseServiceImpl implem log.error("执法诉求上报,发送事件数据到市中心错误,诉求项目Id->" + itemEntity.getId()); e.printStackTrace(); } + // 23-6-28执法诉求响应 + itemAutoProcessRedis.produce(itemHandleProcessEntity.getId().concat(":8"), System.currentTimeMillis() + (59 * 1000)); return new Result().ok(itemEntity.getSerialNum()); } @@ -3478,6 +3480,9 @@ public class ItemServiceImpl extends BaseServiceImpl implem } else if (NumConstant.ONE_STR.equals(formDto.getPeopleFlag())) { //发展 sendCaseDevelop(entity); + // 23-6-28发展响应 + itemAutoProcessRedis.produce(itemHandleProcessEntity.getId().concat(":8"), System.currentTimeMillis() + (59 * 1000)); + } } catch (Exception e) { StringBuffer str = new StringBuffer(); @@ -4875,6 +4880,10 @@ public class ItemServiceImpl extends BaseServiceImpl implem //诉求处理 ItemHandleProcessEntity processEntity = itemHandleProcessDao.selectById(id); pushToCityGridService.appealHandling(ConvertUtils.sourceToTarget(processEntity, ItemHandleProcessDTO.class), NumConstant.ONE_STR); + } else if(NumConstant.EIGHT_STR.equals(type)) { + // 23-6-28执法诉求响应 + pushToCityGridService.receiveZFFZ(id); + } } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/PushToCityGridServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/PushToCityGridServiceImpl.java index afc1e391f..ebe786eca 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/PushToCityGridServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/PushToCityGridServiceImpl.java @@ -1483,6 +1483,55 @@ public class PushToCityGridServiceImpl implements PushToCityGridService { } + + @Override + public void receiveZFFZ(String itemId) { + + Date date = new Date(); + ItemHandleProcessEntity item = itemHandleProcessDao.selectById(itemId); + if (item == null) { + return; + } + + ReceiveResultDTO dto = new ReceiveResultDTO(); + dto.setSqid(getSqid(item.getItemId())); + dto.setCzbs("03"); + //操作时间 + dto.setCzsj(DateUtils.format(date, DateUtils.DATE_TIME_PATTERN)); + + //操作人员 + ReceiveResultDTO.CzrBean czr = new ReceiveResultDTO.CzrBean(); + // 操作人姓名 + czr.setXm("区坐席"); + // 操作人员唯一标识 + czr.setId(item.getCreatedBy()); + // 所属机构id 网格化区中心id + czr.setSsjgbm("2215"); + // 所属机构名称 + czr.setSsjg("区中心"); + // 所属部门id + czr.setSsbmbm("2215"); + // 所属部门名称 + czr.setSsbm("区中心"); + dto.setCzr(czr); + // 组装好直接推送 + String result = cityGridApi.sendItemToCity(dto, PushToCityGridConstant.RECEIVE, "响应接收"); + + saveLog(item.getItemId(), item.getId(), "响应接收", PushToCityGridConstant.RECEIVE, JSONObject.toJSONString(dto), result); + + item.setId(null); + item.setState(ItemGridPlatformHandleStatusEnum.HANDLE_QSJB_JS.getValue()); + item.setHandleAdvice("诉求已响应接收。"); + item.setOutHandleAdvice("诉求已响应接收。"); + item.setCreatedTime(date); + item.setUpdatedTime(date); + itemHandleProcessDao.insert(item); + + } + + + + private void extracted(List sqIdList, Integer itemState) { //50个一组 List> partList = ListUtils.partition(sqIdList, NumConstant.FIFTY); diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml index 0c8d13d23..e75edb440 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml @@ -544,21 +544,21 @@ (case when (process.STATE = 1001 and HOUR( timediff( now(), item.CREATED_TIME) ) >= 24) then '1' else '' end) as isRemind, - (case when (getworkminute(item.CREATED_TIME,now()) / 60 > 8) then '红灯' - when (getworkminute(item.CREATED_TIME,now()) / 60 > 6 and getworkminute(item.CREATED_TIME,now()) / 60 <=8) then '黄灯' - when (getworkminute(item.CREATED_TIME,now()) / 60 <= 6) then '绿灯' else '' end) as lamp, + (case when (getworkminute(item.CREATED_TIME,now()) / 60 > 6) then '红灯' + when (getworkminute(item.CREATED_TIME,now()) / 60 > 4 and getworkminute(item.CREATED_TIME,now()) / 60 <=6) then '黄灯' + when (getworkminute(item.CREATED_TIME,now()) / 60 <= 4) then '绿灯' else '' end) as lamp, ( - case when (getworkminute(item.CREATED_TIME,now()) / 60 > 8) + case when (getworkminute(item.CREATED_TIME,now()) / 60 > 6) then concat('超时', - case when (getworkminute(item.CREATED_TIME,now()) - 480) < 60 - then concat((getworkminute(item.CREATED_TIME,now()) - 480),'分钟') - else concat((ROUND(getworkminute(item.CREATED_TIME,now()) / 60,1) - 8),'小时') end) + case when (getworkminute(item.CREATED_TIME,now()) - 360) < 60 + then concat((getworkminute(item.CREATED_TIME,now()) - 360),'分钟') + else concat((ROUND(getworkminute(item.CREATED_TIME,now()) / 60,1) - 6),'小时') end) else concat('剩余', - case when (480 - getworkminute(item.CREATED_TIME,now())) < 60 - then concat((480 - getworkminute(item.CREATED_TIME,now())),'分钟') - else concat((8 - ROUND((getworkminute(item.CREATED_TIME,now()) / 60),1)),'小时') end) + case when (360 - getworkminute(item.CREATED_TIME,now())) < 60 + then concat((360 - getworkminute(item.CREATED_TIME,now())),'分钟') + else concat((6 - ROUND((getworkminute(item.CREATED_TIME,now()) / 60),1)),'小时') end) end ) as remainTime, @@ -677,25 +677,25 @@ eve.COMMENT_NUM, eve.BROWSE_NUM, - case when (getworkminute(item.CREATED_TIME,now()) / 60 > 8) then '1' - when (getworkminute(item.CREATED_TIME,now()) / 60 > 6 and getworkminute(item.CREATED_TIME,now()) / 60 <=8) then '2' - when (getworkminute(item.CREATED_TIME,now()) / 60 <= 6) then '3' else '' end as isRemind, + case when (getworkminute(item.CREATED_TIME,now()) / 60 > 6) then '1' + when (getworkminute(item.CREATED_TIME,now()) / 60 > 4 and getworkminute(item.CREATED_TIME,now()) / 60 <=6) then '2' + when (getworkminute(item.CREATED_TIME,now()) / 60 <= 4) then '3' else '' end as isRemind, - (case when (getworkminute(item.CREATED_TIME,now()) / 60 > 8) then '红灯' - when (getworkminute(item.CREATED_TIME,now()) / 60 > 6 and getworkminute(item.CREATED_TIME,now()) / 60 <=8) then '黄灯' - when (getworkminute(item.CREATED_TIME,now()) / 60 <= 6) then '绿灯' else '' end) as lamp, + (case when (getworkminute(item.CREATED_TIME,now()) / 60 > 6) then '红灯' + when (getworkminute(item.CREATED_TIME,now()) / 60 > 4 and getworkminute(item.CREATED_TIME,now()) / 60 <=6) then '黄灯' + when (getworkminute(item.CREATED_TIME,now()) / 60 <= 4) then '绿灯' else '' end) as lamp, ( - case when (getworkminute(item.CREATED_TIME,now()) / 60 > 8) + case when (getworkminute(item.CREATED_TIME,now()) / 60 > 6) then concat('超时', - case when (getworkminute(item.CREATED_TIME,now()) - 480) < 60 - then concat((getworkminute(item.CREATED_TIME,now()) - 480),'分钟') - else concat((ROUND(getworkminute(item.CREATED_TIME,now()) / 60,1) - 8),'小时') end) + case when (getworkminute(item.CREATED_TIME,now()) - 360) < 60 + then concat((getworkminute(item.CREATED_TIME,now()) - 360),'分钟') + else concat((ROUND(getworkminute(item.CREATED_TIME,now()) / 60,1) - 6),'小时') end) else concat('剩余', - case when (480 - getworkminute(item.CREATED_TIME,now())) < 60 - then concat((480 - getworkminute(item.CREATED_TIME,now())),'分钟') - else concat((8 - ROUND((getworkminute(item.CREATED_TIME,now()) / 60),1)),'小时') end) + case when (360 - getworkminute(item.CREATED_TIME,now())) < 60 + then concat((360 - getworkminute(item.CREATED_TIME,now())),'分钟') + else concat((6 - ROUND((getworkminute(item.CREATED_TIME,now()) / 60),1)),'小时') end) end ) as remainTime, @@ -2118,29 +2118,29 @@ i.SOLUTION_INFO, if(i.SOLUTION_INFO=01,'解决',if(i.SOLUTION_INFO=02,'基本解决',if(i.SOLUTION_INFO=03,'未解决',''))) as solutionInfoName, i.CREATED_TIME, - case when (getworkminute(i.CREATED_TIME,now()) / 60 > 8) then '1' - when (getworkminute(i.CREATED_TIME,now()) / 60 > 6 and getworkminute(i.CREATED_TIME,now()) / 60 <=8) then '2' - when (getworkminute(i.CREATED_TIME,now()) / 60 <= 6) then '3' else '' end as isRemind, + case when (getworkminute(i.CREATED_TIME,now()) / 60 > 6) then '1' + when (getworkminute(i.CREATED_TIME,now()) / 60 > 4 and getworkminute(i.CREATED_TIME,now()) / 60 <=6) then '2' + when (getworkminute(i.CREATED_TIME,now()) / 60 <= 4) then '3' else '' end as isRemind, ( CASE - WHEN ( getworkminute ( i.CREATED_TIME, now()) / 60 > 8 ) THEN + WHEN ( getworkminute ( i.CREATED_TIME, now()) / 60 > 6 ) THEN concat( '超时', CASE - WHEN ( getworkminute ( i.CREATED_TIME, now()) - 480 ) < 60 THEN - concat(( getworkminute ( i.CREATED_TIME, now()) - 480 ), '分钟' ) ELSE concat(( ROUND( getworkminute ( i.CREATED_TIME, now()) / 60, 1 ) - 8 ), '小时' ) + WHEN ( getworkminute ( i.CREATED_TIME, now()) - 360 ) < 60 THEN + concat(( getworkminute ( i.CREATED_TIME, now()) - 360 ), '分钟' ) ELSE concat(( ROUND( getworkminute ( i.CREATED_TIME, now()) / 60, 1 ) - 6 ), '小时' ) END ) ELSE concat( '剩余', CASE WHEN ( - 480 - getworkminute ( + 360 - getworkminute ( i.CREATED_TIME, now())) < 60 THEN - concat(( 480 - getworkminute ( i.CREATED_TIME, now())), '分钟' ) ELSE concat(( 8 - ROUND(( getworkminute ( i.CREATED_TIME, now()) / 60 ), 1 )), '小时' ) + concat(( 360 - getworkminute ( i.CREATED_TIME, now())), '分钟' ) ELSE concat(( 6 - ROUND(( getworkminute ( i.CREATED_TIME, now()) / 60 ), 1 )), '小时' ) END ) END @@ -2276,9 +2276,9 @@ i.GRID as gridName, SUBSTRING_INDEX(REPLACE(i.PARENT_DEPT_NAMES,'市北区委-',''),'-',1) as streetName, SUBSTRING_INDEX(REPLACE(i.PARENT_DEPT_NAMES,'市北区委-',''),'-',-1) as communityName, - case when (getworkminute(i.CREATED_TIME,now()) / 60 > 8) then '1' - when (getworkminute(i.CREATED_TIME,now()) / 60 > 6 and getworkminute(i.CREATED_TIME,now()) / 60 <=8) then '2' - when (getworkminute(i.CREATED_TIME,now()) / 60 <= 6) then '3' else '' end as isRemind, + case when (getworkminute(i.CREATED_TIME,now()) / 60 > 6) then '1' + when (getworkminute(i.CREATED_TIME,now()) / 60 > 4 and getworkminute(i.CREATED_TIME,now()) / 60 <=6) then '2' + when (getworkminute(i.CREATED_TIME,now()) / 60 <= 4) then '3' else '' end as isRemind, CASE i.ITEM_STATE WHEN '0' THEN '处理中' WHEN '10' THEN '已结案' @@ -2641,8 +2641,8 @@ SUM(a.ITEM_STATE='10')closedTotal, sum((case when a.item_state='0' and b.state = 1001 then 1 else 0 end))pendingTotal, sum((case when a.item_state='0' and b.state != 1001 then 1 else 0 end))processingTotal, - sum((case when b.handleId is null and a.item_state='0' and getworkminute(a.created_time, now()) > 480 then 1 else 0 end))redTotal, - sum((case when b.handleId is null and a.item_state = '0' and (getworkminute(a.created_time, now()) BETWEEN 360 and 480) then 1 else 0 end))yellowTotal + sum((case when b.handleId is null and a.item_state='0' and getworkminute(a.created_time, now()) > 360 then 1 else 0 end))redTotal, + sum((case when b.handleId is null and a.item_state = '0' and (getworkminute(a.created_time, now()) BETWEEN 240 and 360) then 1 else 0 end))yellowTotal FROM epdc_item a LEFT JOIN ( @@ -2771,19 +2771,19 @@ - and process.handleId is null and i.item_state='0' and getworkminute(i.created_time, now()) > 480 + and process.handleId is null and i.item_state='0' and getworkminute(i.created_time, now()) > 360 and process.handleId is null and i.item_state='0' - and (getworkminute(i.created_time, now()) BETWEEN 360 and 480 ) + and (getworkminute(i.created_time, now()) BETWEEN 240 and 360 ) and i.item_state='0' and ( process.handleId is not null - or getworkminute(i.created_time, now()) 360 + or getworkminute(i.created_time, now()) 240 ) 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 1a765a51d..33a2f4745 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 @@ -358,7 +358,7 @@ SELECT item.ALL_DEPT_IDS, count(item.ID) as total, - count((getworkminute(item.CREATED_TIME,process.CREATED_TIME) / 60 <= 8) or null) value + count((getworkminute(item.CREATED_TIME,process.CREATED_TIME) / 60 <= 6) or null) value FROM epdc_item item left join ( select b.ID,b.ITEM_ID,b.CREATED_TIME,b.state @@ -422,8 +422,8 @@ left join ( SELECT aa.ALL_DEPT_IDS, - sum((case when bb.handleId is null and aa.item_state='0' and getworkminute(aa.created_time, now()) > 480 then 1 else 0 end)) redNum, - sum((case when bb.handleId is null and aa.item_state = '0' and (getworkminute(aa.created_time, now()) BETWEEN 360 and 480) then 1 else 0 end))yellowNum + sum((case when bb.handleId is null and aa.item_state='0' and getworkminute(aa.created_time, now()) > 360 then 1 else 0 end)) redNum, + sum((case when bb.handleId is null and aa.item_state = '0' and (getworkminute(aa.created_time, now()) BETWEEN 240 and 360) then 1 else 0 end))yellowNum FROM epdc_item aa LEFT JOIN ( select h.id,h.item_id,h.created_time,h.state,p.id as handleId From 03f959ae8d66a9850e95aad9f1d3eecc960100c5 Mon Sep 17 00:00:00 2001 From: lichao <326994889@qq.com> Date: Fri, 30 Jun 2023 17:37:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=A4=A7=E5=B1=8F?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E4=BA=8B=E4=BB=B6=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/EventStreetRatioResultDTO.java | 19 +++++++ .../screen/controller/ScreenController.java | 28 +++++++++++ .../screen/dao/ScreenDeptEventStatDao.java | 14 ++++++ .../screen/excel/ScreenReplyExportExcel.java | 21 ++++++++ .../excel/ScreenSixResponseExportExcel.java | 21 ++++++++ .../service/ScreenDeptEventStatService.java | 14 ++++++ .../impl/ScreenDeptEventStatServiceImpl.java | 20 ++++++++ .../mapper/screen/ScreenDeptEventStatDao.xml | 50 +++++++++++++++++++ 8 files changed, 187 insertions(+) create mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/screen/result/EventStreetRatioResultDTO.java create mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenReplyExportExcel.java create mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/screen/excel/ScreenSixResponseExportExcel.java 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 + +