From b73ca75cae9d716a9d03ba6d66fdbe2faec5e9f9 Mon Sep 17 00:00:00 2001 From: CeDo <cedoogle@gmail.com> Date: 星期六, 05 六月 2021 22:29:44 +0800 Subject: [PATCH] bugfixed --- springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java | 104 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 87 insertions(+), 17 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..4fe732e 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 @@ -52,6 +52,8 @@ private CommunityService communityService; @Resource private EventGridDataMapper eventGridDataMapper; + @Resource + private EventGridMemberRelationMapper eventGridMemberRelationMapper; /** * 分页查找事件 @@ -387,8 +389,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 +487,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 +502,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 +514,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 +552,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,7 +639,8 @@ 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(); } @@ -650,7 +660,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 +1060,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 +1260,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 +1286,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 +1304,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 +1341,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 +1468,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 +1476,7 @@ this.updateEventDealStatus(eventId); return eventTransferRecordDO; } + /** * 查询最后的流转记录,并添加事件流转记录 @@ -1453,7 +1487,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 +1506,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 +1517,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 +1603,23 @@ } 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)); + } } -- Gitblit v1.7.1