From bd3a56723062aad602636ee47c91fccf2b2868f6 Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期一, 07 六月 2021 16:50:11 +0800 Subject: [PATCH] 定时上报网格员定位数据 --- springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java | 161 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 138 insertions(+), 23 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java index c1edcd6..71390d5 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java @@ -11,10 +11,7 @@ import com.panzhihua.common.model.dtos.grid.*; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActVO; -import com.panzhihua.common.model.vos.grid.EventDetailsVO; -import com.panzhihua.common.model.vos.grid.EventResourceVO; -import com.panzhihua.common.model.vos.grid.EventTransferRecordVO; -import com.panzhihua.common.model.vos.grid.EventVO; +import com.panzhihua.common.model.vos.grid.*; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_grid.dao.*; @@ -52,6 +49,8 @@ private CommunityService communityService; @Resource private EventGridDataMapper eventGridDataMapper; + @Resource + private EventGridMemberRelationMapper eventGridMemberRelationMapper; /** * 分页查找事件 @@ -387,8 +386,8 @@ }else{ //编辑原来的 EventDO eventDO = eventMapper.selectById(commonEventEditDTO.getId()); - if(eventDO.getEventStatus()!=null && eventDO.getEventStatus()!=1){ - return R.fail("保存草稿失败,事件不是草稿状态"); + if(eventDO.getEventStatus()!=null && eventDO.getEventStatus()!=1 && eventDO.getEventDealStatus()!=6){ + return R.fail("保存草稿失败,事件不是草稿/已撤销状态"); } BeanUtils.copyProperties(commonEventEditDTO, eventDO); eventDO.setGridMemberId(commonEventEditDTO.getUserId()); @@ -485,7 +484,8 @@ if(updated!=1){ throw new ServiceException("更新突发事件状态更新失败"); } - addTransferRecord(eventDO.getId(), commonEventReportDTO.getToId(), comActVO.getName(), 2, commonEventReportDTO.getProcessResult()); + addTransferRecord(eventDO.getId(), commonEventReportDTO.getToId(), comActVO.getName(), 2, commonEventReportDTO.getProcessResult(), + commonEventReportDTO.getUserId(), commonEventReportDTO.getUserName(), 2); return R.ok(); } @@ -499,11 +499,10 @@ } boolean canRevoke = eventDO.getEventStatus()==2; //发布状态 if(!canRevoke){ - return R.fail("当前事件不允许撤销"); + return R.fail("当前事件不允许·"); } - if(eventDO.getEventCategory()!=null && eventDO.getEventCategory().intValue()==2){//宣传教育事件 - //不做验证 - }else if(eventDO.getEventProcessStatus()==2 ||eventDO.getEventProcessStatus()==3) { //已解决 或者 待验证 不允许撤销 + Integer eventProcessStatus = eventDO.getEventProcessStatus()!=null?eventDO.getEventProcessStatus():-1; + if(eventProcessStatus==2 ||eventProcessStatus==3) { //已解决 或者 待验证 不允许撤销 return R.fail("当前事件不允许撤销"); } eventDO.setEventStatus(4); @@ -512,7 +511,8 @@ eventDO.setCommunityProcess(0);//非 社区处理 int updated = this.getBaseMapper().updateById(eventDO); if(updated == 1){ - addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1,"撤销成功"); + addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), + 1,"撤销成功", eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 7); return R.ok(); } return R.fail(); @@ -549,8 +549,14 @@ if(updated!=1){ return R.fail("更新事件状态失败"); } + Integer processType = -1; + if(eventDO.getInvalid()!=null){ + processType = 5; + }else{ + processType = 1; + } EventTransferRecordDO transferRecordDO = - addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(),1, "网格员自处理完成"); + addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(),1, "网格员自处理完成", commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), processType); if(transferRecordDO!=null && transferRecordDO.getId()!=null){ //添加音频 if(StringUtils.isNotEmpty(commonEventDealDTO.getAudio())){ @@ -630,16 +636,17 @@ if(updated!=1){ return R.fail("更新事件状态失败"); } - addTransferRecord(eventDO.getId(), commonEventVerifyDTO.getUserId(), commonEventVerifyDTO.getUserName(), 1, commonEventVerifyDTO.getProcessResult()); + addTransferRecord(eventDO.getId(), commonEventVerifyDTO.getUserId(), commonEventVerifyDTO.getUserName(), 1, commonEventVerifyDTO.getProcessResult(), + commonEventVerifyDTO.getUserId(), commonEventVerifyDTO.getUserName(), 6); return R.ok(); } @Override public R republishEvent(CommonEventRepublishDTO commonEventRepublishDTO) { EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublishDTO.getId()); - boolean canRepublishByUser = eventDO.getEventStatus()==4; + boolean canRepublishByUser = eventDO.getEventStatus()==4||eventDO.getEventStatus()==1; if(!canRepublishByUser){ - return R.fail("当前不是撤销状态"); + return R.fail("当前不是撤销/草稿状态"); } eventDO.setEventStatus(2);//2 发布 @@ -650,7 +657,8 @@ if(updated!=1){ return R.fail("更新事件状态失败"); } - addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1, "重新发布已撤销事件"); + addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1, + "重新发布已撤销事件", commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 8); return R.ok(); } @@ -1049,8 +1057,8 @@ }else{ //编辑原来的 EventDO eventDO = eventMapper.selectById(publicityEventEditDTO.getId()); - if(eventDO.getEventStatus()!=null && eventDO.getEventStatus()!=1){ - return R.fail("保存草稿失败,事件不是草稿状态"); + if(eventDO.getEventStatus()!=null && eventDO.getEventStatus()!=1 && eventDO.getEventDealStatus()!=6){ + return R.fail("保存草稿失败,事件不是草稿/撤销状态"); } BeanUtils.copyProperties(publicityEventEditDTO, eventDO); eventDO.setGridMemberId(publicityEventEditDTO.getUserId()); @@ -1249,13 +1257,14 @@ return R.fail("事件所属错误"); } eventDO.setInvalid(false); + //标为无效后, 交给网格员处理 eventDO.setUpdateBy(eventRevokeDTO.getUserId()); eventDO.setEventStatus(4);//4、撤销 eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 int updated = this.getBaseMapper().updateById(eventDO); if(updated == 1){ - addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1,"撤销成功"); + addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1,"标为无效", eventRevokeDTO.getCommunityId(), eventRevokeDTO.getCommunityName(), 4); return R.ok(); } return R.fail(); @@ -1274,7 +1283,8 @@ eventDO.setInvalid(true); int updated = this.getBaseMapper().updateById(eventDO); if(updated == 1){ - addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1,"重新发布事件成功"); + addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1,"重新发布事件成功", + commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 9 ); return R.ok(); } return R.fail(); @@ -1291,6 +1301,24 @@ return R.fail("事件当前不是上报状态"); } + List<EventTransferRecordDO> list = eventTransferRecordService.getBaseMapper().selectList(new LambdaQueryWrapper<EventTransferRecordDO>() + .eq(EventTransferRecordDO::getEventId, eventDO.getId()) + .orderByDesc(EventTransferRecordDO::getCreateAt) + ); + + Long reportToInDB = -1L; + for (int i = 0; i < list.size(); i++) { + EventTransferRecordDO eventTransferRecordDO = list.get(i); + if(eventTransferRecordDO.getProcessType()!=null && eventTransferRecordDO.getProcessType()==2){ + reportToInDB = eventTransferRecordDO.getToId(); + } + } + if(commonEventDealDTO.getCommunityId()==null){ + return R.fail("当前用户社区获取失败"); + } + if(reportToInDB.longValue() != commonEventDealDTO.getCommunityId().longValue()){ + return R.fail("用户上报的社区不是当前社区"); + } if(commonEventDealDTO.getNeedVerify()){ eventDO.setEventProcessStatus(3);//待验证状态 eventDO.setProcessType(1);//交给网格员处理-验证 @@ -1310,7 +1338,8 @@ return R.fail("更新事件状态失败"); } EventTransferRecordDO transferRecordDO = - addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(),1, "社区处理完成"); + addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(),1, + "社区处理完成", commonEventDealDTO.getCommunityId(), commonEventDealDTO.getCommunityName(), 3); if(transferRecordDO!=null && transferRecordDO.getId()!=null){ //添加音频 if(StringUtils.isNotEmpty(commonEventDealDTO.getAudio())){ @@ -1436,6 +1465,7 @@ eventTransferRecordDO.setProcessDate(new Date()); eventTransferRecordDO.setEventId(eventId); eventTransferRecordDO.setProcessResult("发布成功"); + eventTransferRecordDO.setProcessType(0);//初始状态 int inserted = eventTransferRecordService.getBaseMapper().insert(eventTransferRecordDO); if(inserted!=1){ throw new ServiceException("事件流转记录添加失败"); @@ -1443,6 +1473,7 @@ this.updateEventDealStatus(eventId); return eventTransferRecordDO; } + /** * 查询最后的流转记录,并添加事件流转记录 @@ -1453,7 +1484,7 @@ * @param msg 流转消息 * @return */ - private EventTransferRecordDO addTransferRecord(Long eventId, Long toId, String toName, Integer toType, String msg){ + private EventTransferRecordDO addTransferRecord(Long eventId, Long toId, String toName, Integer toType, String msg, Long processBy, String processByName, Integer processType){ List<EventTransferRecordDO> list = eventTransferRecordService.getBaseMapper().selectList(new LambdaQueryWrapper<EventTransferRecordDO>() .eq(EventTransferRecordDO::getEventId, eventId) .orderByDesc(EventTransferRecordDO::getCreateAt) @@ -1472,6 +1503,9 @@ eventTransferRecordDO.setToName(toName); eventTransferRecordDO.setEventId(eventId); eventTransferRecordDO.setProcessResult(msg); + eventTransferRecordDO.setProcessBy(processBy); + eventTransferRecordDO.setProcessByName(processByName); + eventTransferRecordDO.setProcessType(processType); int inserted = eventTransferRecordService.getBaseMapper().insert(eventTransferRecordDO); if(inserted==1) { this.updateEventDealStatus(eventId); @@ -1480,6 +1514,20 @@ throw new ServiceException("事件流转记录添加失败"); } } + + + /** + * 查询最后的流转记录,并添加事件流转记录 + * @param eventId 事件ID + * @param toId 流转到 ID + * @param toName 流转到 名称 + * @param toType 发送类型 + * @param msg 流转消息 + * @return + */ + /* private EventTransferRecordDO addTransferRecord(Long eventId, Long toId, String toName, Integer toType, String msg,Integer processType){ + return addTransferRecord(eventId, toId, toName, toType, msg, null, null, processType); + }*/ /** * 根据子状态 查询用户事件处理状态 @@ -1552,4 +1600,71 @@ } return -1; } + + /** + * 后台管理-统计模块 + * @param communityId 社区id + * @return 统计信息 + */ + @Override + public R eventStatistics(Long communityId){ + return R.ok(this.baseMapper.eventStatistics(communityId)); + } + /** + * 后台管理-网格员统计 + * @param statisticsAdminDTO 请求参数 + * @return 网格员统计信息 + */ + @Override + public R gridMemberStatistics(MemberStatisticsAdminDTO statisticsAdminDTO){ + return R.ok(eventGridMemberRelationMapper.gridMemberStatistics(new Page(statisticsAdminDTO.getPageNum(),statisticsAdminDTO.getPageSize()),statisticsAdminDTO)); + } + + /** + * 根据网格id查询网格统计数据 + * @param gridId 网格id + * @return 网格统计数据 + */ + @Override + public R getGridEventStatisticsByApp(Long gridId){ + return R.ok(this.baseMapper.getGridEventStatisticsByApp(gridId)); + } + + /** + * 查询网格事件统计数据 + * @param statisticsDTO 请求参数 + * @return 网格事件统计数据 + */ + @Override + public R getGridEventDetailStatisticsByApp(GridEventStatisticsDTO statisticsDTO){ + GridEventStatisticsDetailVO statisticsDetailVO = this.baseMapper.getGridEventDetailStatisticsByApp(statisticsDTO); + if(statisticsDetailVO == null){ + statisticsDetailVO = new GridEventStatisticsDetailVO(); + } + + if(statisticsDetailVO.getEventSSPTotal() == null){ + statisticsDetailVO.setEventSSPTotal(0); + } + if(statisticsDetailVO.getNoEventSSPTotal() == null){ + statisticsDetailVO.setNoEventSSPTotal(0); + } + if(statisticsDetailVO.getEventZFTotal() == null){ + statisticsDetailVO.setEventZFTotal(0); + } + if(statisticsDetailVO.getNoEventZFTotal() == null){ + statisticsDetailVO.setNoEventZFTotal(0); + } + + //统计数据 + Integer sum = statisticsDetailVO.getEventTFTotal() + statisticsDetailVO.getEventMDTotal() + statisticsDetailVO.getEventZATotal() + + statisticsDetailVO.getEventBWDTotal() + statisticsDetailVO.getEventTSTotal() + statisticsDetailVO.getEventGGTotal() + + statisticsDetailVO.getEventXCTotal() + statisticsDetailVO.getEventSSPTotal() + statisticsDetailVO.getEventZFTotal(); + statisticsDetailVO.setSum(sum); + + Integer noSum = statisticsDetailVO.getNoEventTFTotal() + statisticsDetailVO.getNoEventMDTotal() + statisticsDetailVO.getNoEventZATotal() + + statisticsDetailVO.getNoEventBWDTotal() + statisticsDetailVO.getNoEventTSTotal() + statisticsDetailVO.getNoEventGGTotal() + + statisticsDetailVO.getNoEventSSPTotal() + statisticsDetailVO.getNoEventZFTotal(); + statisticsDetailVO.setNoSum(noSum); + return R.ok(statisticsDetailVO); + } } -- Gitblit v1.7.1