| | |
| | | import com.panzhihua.common.model.vos.community.ComActVO; |
| | | import com.panzhihua.common.model.vos.grid.*; |
| | | import com.panzhihua.common.service.community.CommunityService; |
| | | import com.panzhihua.common.utlis.LngLatUtils; |
| | | import com.panzhihua.common.utlis.StringUtils; |
| | | import com.panzhihua.service_grid.dao.*; |
| | | import com.panzhihua.service_grid.model.dos.*; |
| | | import com.panzhihua.service_grid.service.EventGridDataService; |
| | | import com.panzhihua.service_grid.service.EventResourceService; |
| | | import com.panzhihua.service_grid.service.EventService; |
| | | import com.panzhihua.service_grid.service.EventTransferRecordService; |
| | |
| | | private EventGridDataMapper eventGridDataMapper; |
| | | @Resource |
| | | private EventGridMemberRelationMapper eventGridMemberRelationMapper; |
| | | @Resource |
| | | private EventGridDataService eventGridDataService; |
| | | |
| | | /** |
| | | * 分页查找事件 |
| | | * |
| | | * @param pageEventDTO |
| | | * @return 维护结果 |
| | | */ |
| | | @Override |
| | | public R<IPage<EventVO>> query(PageEventDTO pageEventDTO){ |
| | | Page page = new Page(1,10); |
| | | if(pageEventDTO.getPageNum()!=null) { |
| | | public R<IPage<EventVO>> query(PageEventDTO pageEventDTO) { |
| | | Page page = new Page(1, 10); |
| | | if (pageEventDTO.getPageNum() != null) { |
| | | page.setCurrent(pageEventDTO.getPageNum()); |
| | | } |
| | | if(pageEventDTO.getPageSize()!=null) { |
| | | if (pageEventDTO.getPageSize() != null) { |
| | | page.setSize(pageEventDTO.getPageSize()); |
| | | } |
| | | IPage<EventVO> ipage = eventMapper.findByPage(page, pageEventDTO); |
| | | if(ipage!=null){ |
| | | if (ipage != null) { |
| | | List<EventVO> eventVOList = ipage.getRecords(); |
| | | eventVOList.forEach(eventVO -> { |
| | | List<EventResourceDO> eventResourceDOList = |
| | |
| | | List<EventResourceVO> audioList = new ArrayList<>(); |
| | | List<EventResourceVO> videoList = new ArrayList<>(); |
| | | eventResourceDOList.forEach(eventResourceDO -> { |
| | | switch (eventResourceDO.getType()){ |
| | | switch (eventResourceDO.getType()) { |
| | | case 1: |
| | | EventResourceVO picEventResourceVO = new EventResourceVO(); |
| | | BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); |
| | |
| | | |
| | | //查询网格员头像 |
| | | String imageUrl = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId()); |
| | | if(StringUtils.isNotEmpty(imageUrl)){ |
| | | if (StringUtils.isNotEmpty(imageUrl)) { |
| | | eventVO.setGridMemberImageUrl(imageUrl); |
| | | } |
| | | }); |
| | |
| | | |
| | | /** |
| | | * 删除事件 |
| | | * |
| | | * @param commonEventDeleteDTO |
| | | * @return 平台用户信息 |
| | | */ |
| | | @Override |
| | | public R delete(CommonEventDeleteDTO commonEventDeleteDTO){ |
| | | public R delete(CommonEventDeleteDTO commonEventDeleteDTO) { |
| | | EventDO eventDO = eventMapper.selectById(commonEventDeleteDTO.getId()); |
| | | if(eventDO==null){ |
| | | if (eventDO == null) { |
| | | return R.fail("事件不存在"); |
| | | } |
| | | if(eventDO.getEventStatus()!=null && |
| | | (eventDO.getEventStatus().intValue()==1||eventDO.getEventStatus().intValue()==4)){//草稿 或者 已撤销 的事件可以删除 |
| | | if (eventDO.getEventStatus() != null && |
| | | (eventDO.getEventStatus().intValue() == 1 || eventDO.getEventStatus().intValue() == 4)) {//草稿 或者 已撤销 的事件可以删除 |
| | | eventDO.setEventStatus(3);//逻辑删除 |
| | | eventDO.setUpdateBy(commonEventDeleteDTO.getUserId()); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | return updated==1?R.ok():R.fail(); |
| | | return updated == 1 ? R.ok() : R.fail(); |
| | | } |
| | | return R.fail("事件不是草稿/已撤销/无效状态, 不允许删除"); |
| | | } |
| | | |
| | | /** |
| | | * 查询事件详细信息 |
| | | * |
| | | * @param id 事件 id |
| | | * @return 查找结果 |
| | | */ |
| | | @Override |
| | | public R<EventDetailsVO> eventDetails(Long id){ |
| | | public R<EventDetailsVO> eventDetails(Long id) { |
| | | EventDO eventDO = eventMapper.selectById(id); |
| | | if(eventDO!=null) { |
| | | if (eventDO != null) { |
| | | EventDetailsVO eventDetailsVO = new EventDetailsVO(); |
| | | BeanUtils.copyProperties(eventDO, eventDetailsVO); |
| | | EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(eventDO.getGridId()); |
| | | if(eventGridDataDO!=null) { |
| | | if (eventGridDataDO != null) { |
| | | eventDetailsVO.setGridName(eventGridDataDO.getGridName()); |
| | | } |
| | | |
| | |
| | | List<EventResourceVO> audioList = new ArrayList<>(); |
| | | List<EventResourceVO> videoList = new ArrayList<>(); |
| | | eventResourceDOList.forEach(eventResourceDO -> { |
| | | switch (eventResourceDO.getType()){ |
| | | switch (eventResourceDO.getType()) { |
| | | case 1: |
| | | EventResourceVO picEventResourceVO = new EventResourceVO(); |
| | | BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); |
| | |
| | | eventDetailsVO.setVideos(videoList); |
| | | |
| | | |
| | | |
| | | //查询事件流转记录 |
| | | List<EventTransferRecordDO> eventTransferRecordDOList = eventTransferRecordService.getBaseMapper() |
| | | .selectList(new LambdaQueryWrapper<EventTransferRecordDO>() |
| | |
| | | List<EventResourceVO> transferAudioList = new ArrayList<>(); |
| | | List<EventResourceVO> transferVideoList = new ArrayList<>(); |
| | | eventTransferResourceDOList.forEach(eventResourceDO -> { |
| | | switch (eventResourceDO.getType()){ |
| | | switch (eventResourceDO.getType()) { |
| | | case 1: |
| | | EventResourceVO picEventResourceVO = new EventResourceVO(); |
| | | BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); |
| | |
| | | |
| | | //查询事件发布人头像 |
| | | String imageUrl = eventMapper.getGridMemberImageUrl(eventDO.getGridMemberId()); |
| | | if(StringUtils.isNotEmpty(imageUrl)){ |
| | | if (StringUtils.isNotEmpty(imageUrl)) { |
| | | eventDetailsVO.setGridMemberImageUrl(imageUrl); |
| | | } |
| | | |
| | |
| | | public R addCommon(CommonEventAddDTO commonEventAddDTO) { |
| | | EventDO eventDO = new EventDO(); |
| | | BeanUtils.copyProperties(commonEventAddDTO, eventDO); |
| | | if(commonEventAddDTO instanceof CommonEventCommunityAddDTO) { |
| | | CommonEventCommunityAddDTO commonEventCommunityAddDTO = (CommonEventCommunityAddDTO)commonEventAddDTO; |
| | | if (commonEventAddDTO instanceof CommonEventCommunityAddDTO) { |
| | | CommonEventCommunityAddDTO commonEventCommunityAddDTO = (CommonEventCommunityAddDTO) commonEventAddDTO; |
| | | eventDO.setGridMemberId(commonEventCommunityAddDTO.getGridMemberId()); |
| | | }else{ |
| | | } else { |
| | | eventDO.setGridMemberId(commonEventAddDTO.getUserId()); |
| | | } |
| | | EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(commonEventAddDTO.getGridId()); |
| | | if(eventGridDataDO==null){ |
| | | if (eventGridDataDO == null) { |
| | | return R.fail("网格不存在"); |
| | | } |
| | | eventDO.setEventCategory(1l);//办件事件 |
| | |
| | | eventDO.setCreateBy(commonEventAddDTO.getUserId()); |
| | | eventDO.setSubmitDate(new Date()); |
| | | eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType())); |
| | | if(eventMapper.insert(eventDO)==1){ |
| | | if (eventMapper.insert(eventDO) == 1) { |
| | | //添加音频 |
| | | if(StringUtils.isNotEmpty(commonEventAddDTO.getAudio())){ |
| | | if (StringUtils.isNotEmpty(commonEventAddDTO.getAudio())) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | | eventResourceDO.setClassification(1); |
| | | eventResourceDO.setType(2); |
| | |
| | | eventResourceDO.setCreateBy(commonEventAddDTO.getUserId()); |
| | | eventResourceDO.setResourceTime(commonEventAddDTO.getAudioTime()); |
| | | int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(audioAdd!=1){ |
| | | if (audioAdd != 1) { |
| | | throw new ServiceException("添加音频失败"); |
| | | } |
| | | } |
| | | //添加视频 |
| | | if(StringUtils.isNotEmpty(commonEventAddDTO.getVideo())){ |
| | | if (StringUtils.isNotEmpty(commonEventAddDTO.getVideo())) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | | eventResourceDO.setClassification(1); |
| | | eventResourceDO.setType(3); |
| | |
| | | eventResourceDO.setCreateBy(commonEventAddDTO.getUserId()); |
| | | eventResourceDO.setResourceTime(commonEventAddDTO.getVideoTime()); |
| | | int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(videoAdd!=1){ |
| | | if (videoAdd != 1) { |
| | | throw new ServiceException("添加视频失败"); |
| | | } |
| | | } |
| | | //添加图片 |
| | | if(StringUtils.isNotEmpty(commonEventAddDTO.getPics())){ |
| | | if (StringUtils.isNotEmpty(commonEventAddDTO.getPics())) { |
| | | String[] pica = commonEventAddDTO.getPics().split(","); |
| | | for (int i = 0; i < pica.length; i++) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | |
| | | eventResourceDO.setRefId(eventDO.getId()); |
| | | eventResourceDO.setCreateBy(commonEventAddDTO.getUserId()); |
| | | int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(picAdd!=1){ |
| | | if (picAdd != 1) { |
| | | throw new ServiceException("添加图片失败"); |
| | | } |
| | | } |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R saveDraft(CommonEventEditDTO commonEventEditDTO) { |
| | | EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(commonEventEditDTO.getGridId()); |
| | | if(eventGridDataDO==null){ |
| | | if (eventGridDataDO == null) { |
| | | return R.fail("网格不存在"); |
| | | } |
| | | if(commonEventEditDTO.getId()==null) { |
| | | if (commonEventEditDTO.getId() == null) { |
| | | EventDO eventDO = new EventDO(); |
| | | BeanUtils.copyProperties(commonEventEditDTO, eventDO); |
| | | eventDO.setGridMemberId(commonEventEditDTO.getUserId()); |
| | |
| | | return R.ok(); |
| | | } |
| | | return R.fail(); |
| | | }else{ |
| | | } else { |
| | | //编辑原来的 |
| | | EventDO eventDO = eventMapper.selectById(commonEventEditDTO.getId()); |
| | | if(eventDO.getEventStatus()!=null && eventDO.getEventStatus()!=1 && eventDO.getEventDealStatus()!=6){ |
| | | if (eventDO.getEventStatus() != null && eventDO.getEventStatus() != 1 && eventDO.getEventDealStatus() != 6) { |
| | | return R.fail("保存草稿失败,事件不是草稿/已撤销状态"); |
| | | } |
| | | BeanUtils.copyProperties(commonEventEditDTO, eventDO); |
| | |
| | | if (eventMapper.updateById(eventDO) > 0) { |
| | | int deleted = eventResourceService.getBaseMapper() |
| | | .delete(new LambdaQueryWrapper<EventResourceDO>() |
| | | .eq(EventResourceDO::getClassification,1) |
| | | .eq(EventResourceDO::getClassification, 1) |
| | | .eq(EventResourceDO::getRefId, eventDO.getId())); |
| | | //添加音频 |
| | | if (StringUtils.isNotEmpty(commonEventEditDTO.getAudio())) { |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R report(CommonEventReportDTO commonEventReportDTO) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(commonEventReportDTO.getEventId()); |
| | | if(eventDO==null){ |
| | | if (eventDO == null) { |
| | | return R.fail("事件不存在"); |
| | | } |
| | | if(eventDO.getEventStatus()!=2){ |
| | | if (eventDO.getEventStatus() != 2) { |
| | | return R.fail("当前事件不能上报社区"); |
| | | } |
| | | if(eventDO.getProcessType()==2){ |
| | | if (eventDO.getProcessType() == 2) { |
| | | return R.fail("当前事件已交由社区处理"); |
| | | } |
| | | |
| | | R r = communityService.detailCommunity(commonEventReportDTO.getToId()); |
| | | if(!R.isOk(r)){ |
| | | R r = communityService.detailCommunity(commonEventReportDTO.getToId()); |
| | | if (!R.isOk(r)) { |
| | | return R.fail("社区不存在"); |
| | | } |
| | | ComActVO comActVO= JSONObject.parseObject(JSONObject.toJSONString(r.getData()),ComActVO.class); |
| | | if(comActVO==null){ |
| | | ComActVO comActVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComActVO.class); |
| | | if (comActVO == null) { |
| | | return R.fail("社区不存在"); |
| | | } |
| | | eventDO.setCommunityProcess(1); //社区处理 |
| | |
| | | eventDO.setUpdateBy(commonEventReportDTO.getUserId()); |
| | | eventDO.setSubmitDate(new Date()); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated!=1){ |
| | | if (updated != 1) { |
| | | throw new ServiceException("更新突发事件状态更新失败"); |
| | | } |
| | | addTransferRecord(eventDO.getId(), commonEventReportDTO.getToId(), comActVO.getName(), 2, commonEventReportDTO.getProcessResult(), |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R emergenciesRevoke(EventRevokeDTO eventRevokeDTO) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(eventRevokeDTO.getId()); |
| | | if(eventDO==null){ |
| | | if (eventDO == null) { |
| | | return R.fail("事件不存在"); |
| | | } |
| | | boolean canRevoke = eventDO.getEventStatus()==2; //发布状态 |
| | | if(!canRevoke){ |
| | | boolean canRevoke = eventDO.getEventStatus() == 2; //发布状态 |
| | | if (!canRevoke) { |
| | | return R.fail("当前事件不允许·"); |
| | | } |
| | | Integer eventProcessStatus = eventDO.getEventProcessStatus()!=null?eventDO.getEventProcessStatus():-1; |
| | | if(eventProcessStatus==2 ||eventProcessStatus==3) { //已解决 或者 待验证 不允许撤销 |
| | | Integer eventProcessStatus = eventDO.getEventProcessStatus() != null ? eventDO.getEventProcessStatus() : -1; |
| | | if (eventProcessStatus == 2 || eventProcessStatus == 3) { //已解决 或者 待验证 不允许撤销 |
| | | return R.fail("当前事件不允许撤销"); |
| | | } |
| | | eventDO.setEventStatus(4); |
| | |
| | | eventDO.setProcessType(1);//网格员处理 |
| | | eventDO.setCommunityProcess(0);//非 社区处理 |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated == 1){ |
| | | if (updated == 1) { |
| | | addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), |
| | | 1,"撤销成功", eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 7); |
| | | 1, "撤销成功", eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 7); |
| | | return R.ok(); |
| | | } |
| | | return R.fail(); |
| | |
| | | if (eventDO == null) { |
| | | return R.fail("事件不存在"); |
| | | } |
| | | boolean canDealByUser = eventDO.getEventStatus()==2 && eventDO.getEventProcessStatus()==1; |
| | | if(!canDealByUser){ |
| | | if(eventDO.getEventStatus()!=2){ |
| | | boolean canDealByUser = eventDO.getEventStatus() == 2 && eventDO.getEventProcessStatus() == 1; |
| | | if (!canDealByUser) { |
| | | if (eventDO.getEventStatus() != 2) { |
| | | return R.fail("事件不是发布状态"); |
| | | } |
| | | if(eventDO.getEventProcessStatus()!=1){ |
| | | if (eventDO.getEventProcessStatus() != 1) { |
| | | return R.fail("事件不是待处理状态"); |
| | | } |
| | | return R.fail("事件当前不可自处理"); |
| | |
| | | eventDO.setProcessDesc(commonEventDealDTO.getProcessResult()); |
| | | |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated!=1){ |
| | | if (updated != 1) { |
| | | return R.fail("更新事件状态失败"); |
| | | } |
| | | Integer processType = -1; |
| | | if(eventDO.getInvalid()!=null){ |
| | | if (eventDO.getInvalid() != null) { |
| | | processType = 5; |
| | | }else{ |
| | | } else { |
| | | processType = 1; |
| | | } |
| | | EventTransferRecordDO transferRecordDO = |
| | | addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(),1, "网格员自处理完成", commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), processType); |
| | | if(transferRecordDO!=null && transferRecordDO.getId()!=null){ |
| | | addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), 1, "网格员自处理完成", commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), processType); |
| | | if (transferRecordDO != null && transferRecordDO.getId() != null) { |
| | | //添加音频 |
| | | if(StringUtils.isNotEmpty(commonEventDealDTO.getAudio())){ |
| | | if (StringUtils.isNotEmpty(commonEventDealDTO.getAudio())) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | | eventResourceDO.setClassification(3); |
| | | eventResourceDO.setType(2); |
| | |
| | | eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); |
| | | eventResourceDO.setResourceTime(commonEventDealDTO.getAudioTime()); |
| | | int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(audioAdd!=1){ |
| | | if (audioAdd != 1) { |
| | | throw new ServiceException("添加音频失败"); |
| | | } |
| | | } |
| | | //添加视频 |
| | | if(StringUtils.isNotEmpty(commonEventDealDTO.getVideo())){ |
| | | if (StringUtils.isNotEmpty(commonEventDealDTO.getVideo())) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | | eventResourceDO.setClassification(3); |
| | | eventResourceDO.setType(3); |
| | |
| | | eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); |
| | | eventResourceDO.setResourceTime(commonEventDealDTO.getVideoTime()); |
| | | int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(videoAdd!=1){ |
| | | if (videoAdd != 1) { |
| | | throw new ServiceException("添加视频失败"); |
| | | } |
| | | } |
| | | //添加图片 |
| | | if(StringUtils.isNotEmpty(commonEventDealDTO.getPics())){ |
| | | if (StringUtils.isNotEmpty(commonEventDealDTO.getPics())) { |
| | | String[] pica = commonEventDealDTO.getPics().split(","); |
| | | for (int i = 0; i < pica.length; i++) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | |
| | | eventResourceDO.setRefId(transferRecordDO.getId()); |
| | | eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); |
| | | int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(picAdd!=1){ |
| | | if (picAdd != 1) { |
| | | throw new ServiceException("添加图片失败"); |
| | | } |
| | | } |
| | |
| | | EventDO eventDOToUpdate = this.getBaseMapper().selectById(commonEventDealDTO.getId()); |
| | | eventDOToUpdate.setProcessRecordId(transferRecordId); |
| | | int transferRecordUpdated = this.getBaseMapper().updateById(eventDOToUpdate); |
| | | if(transferRecordUpdated!=1){ |
| | | if (transferRecordUpdated != 1) { |
| | | throw new ServiceException("更新事件处理流程失败"); |
| | | } |
| | | |
| | | return R.ok(); |
| | | }else{ |
| | | } else { |
| | | throw new ServiceException("处理事件记录出错"); |
| | | } |
| | | } |
| | |
| | | @Override |
| | | public R verifyEvent(CommonEventVerifyDTO commonEventVerifyDTO) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(commonEventVerifyDTO.getId()); |
| | | boolean canVerifyByUser = eventDO.getEventProcessStatus()==3; |
| | | if(!canVerifyByUser){ |
| | | boolean canVerifyByUser = eventDO.getEventProcessStatus() == 3; |
| | | if (!canVerifyByUser) { |
| | | return R.fail("当前不是待验证状态"); |
| | | } |
| | | boolean processTypeRight = eventDO.getProcessType()==1; |
| | | if(!processTypeRight){ |
| | | boolean processTypeRight = eventDO.getProcessType() == 1; |
| | | if (!processTypeRight) { |
| | | return R.fail("当前处理对象不是网格员"); |
| | | } |
| | | |
| | | eventDO.setEventProcessStatus(2);//2已解决 |
| | | eventDO.setUpdateBy(commonEventVerifyDTO.getUserId()); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated!=1){ |
| | | if (updated != 1) { |
| | | return R.fail("更新事件状态失败"); |
| | | } |
| | | addTransferRecord(eventDO.getId(), commonEventVerifyDTO.getUserId(), commonEventVerifyDTO.getUserName(), 1, commonEventVerifyDTO.getProcessResult(), |
| | |
| | | @Override |
| | | public R republishEvent(CommonEventRepublishDTO commonEventRepublishDTO) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublishDTO.getId()); |
| | | boolean canRepublishByUser = eventDO.getEventStatus()==4||eventDO.getEventStatus()==1; |
| | | if(!canRepublishByUser){ |
| | | boolean canRepublishByUser = eventDO.getEventStatus() == 4 || eventDO.getEventStatus() == 1; |
| | | if (!canRepublishByUser) { |
| | | return R.fail("当前不是撤销/草稿状态"); |
| | | } |
| | | |
| | |
| | | eventDO.setProcessType(1); //网格员处理 |
| | | eventDO.setUpdateBy(commonEventRepublishDTO.getUserId()); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated!=1){ |
| | | if (updated != 1) { |
| | | return R.fail("更新事件状态失败"); |
| | | } |
| | | addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1, |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R draftRelease(CommonEventPublicDTO commonEventPublicDTO) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(commonEventPublicDTO.getId()); |
| | | boolean draftCanRelease = eventDO.getEventStatus()==1; |
| | | if(!draftCanRelease){ |
| | | boolean draftCanRelease = eventDO.getEventStatus() == 1; |
| | | if (!draftCanRelease) { |
| | | return R.fail("当前不是草稿状态"); |
| | | } |
| | | eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType())); |
| | |
| | | eventDO.setEventProcessStatus(1);//待处理 |
| | | eventDO.setUpdateBy(commonEventPublicDTO.getUserId()); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated!=1){ |
| | | if (updated != 1) { |
| | | return R.fail("更新事件状态失败"); |
| | | } |
| | | addReleaseRecord(eventDO.getId(), commonEventPublicDTO.getUserId(), commonEventPublicDTO.getUserName()); |
| | |
| | | |
| | | /** |
| | | * 生成服务单号 |
| | | * |
| | | * @param eventType 事件类型,宣传事件默认为20 |
| | | * @return |
| | | */ |
| | | private String getEventOrderSn(Integer eventType) { |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); |
| | | if(eventType==null){ |
| | | eventType = 20; |
| | | if (eventType == null) { |
| | | eventType = 20; |
| | | } |
| | | String pre = String.format(simpleDateFormat.format(new Date()) + "%02d", eventType); |
| | | Integer todayCount = this.getBaseMapper().selectCount(new LambdaQueryWrapper<EventDO>().likeRight(EventDO::getOrderSn, pre)); |
| | | String orderSn = String.format(pre + "%04d", todayCount+1); |
| | | String orderSn = String.format(pre + "%04d", todayCount + 1); |
| | | return orderSn; |
| | | } |
| | | |
| | | @Override |
| | | public R saveSpecialDraft(SpecialEventEditDTO specialEventEditDTO) { |
| | | EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(specialEventEditDTO.getGridId()); |
| | | if(eventGridDataDO==null){ |
| | | if (eventGridDataDO == null) { |
| | | return R.fail("网格不存在"); |
| | | } |
| | | R rtVal = R.fail(); |
| | | if(specialEventEditDTO.getId()==null) { |
| | | if (specialEventEditDTO.getId() == null) { |
| | | EventDO eventDO = new EventDO(); |
| | | BeanUtils.copyProperties(specialEventEditDTO, eventDO); |
| | | eventDO.setGridMemberId(specialEventEditDTO.getUserId()); |
| | |
| | | rtVal = R.ok(); |
| | | } |
| | | rtVal = R.fail(); |
| | | }else{ |
| | | } else { |
| | | //编辑原来的 |
| | | EventDO eventDO = eventMapper.selectById(specialEventEditDTO.getId()); |
| | | BeanUtils.copyProperties(specialEventEditDTO, eventDO); |
| | |
| | | if (eventMapper.updateById(eventDO) > 0) { |
| | | int deleted = eventResourceService.getBaseMapper() |
| | | .delete(new LambdaQueryWrapper<EventResourceDO>() |
| | | .eq(EventResourceDO::getClassification,1) |
| | | .eq(EventResourceDO::getClassification, 1) |
| | | .eq(EventResourceDO::getRefId, eventDO.getId())); |
| | | //添加音频 |
| | | if (StringUtils.isNotEmpty(specialEventEditDTO.getAudio())) { |
| | |
| | | } |
| | | rtVal = R.fail(); |
| | | } |
| | | if(R.isOk(rtVal)){ |
| | | if (R.isOk(rtVal)) { |
| | | //TODO 处理特殊人群实有人口数据 |
| | | |
| | | } |
| | |
| | | @Override |
| | | public R addSpecial(SpecialEventAddDTO specialEventAddDTO) { |
| | | EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(specialEventAddDTO.getGridId()); |
| | | if(eventGridDataDO==null){ |
| | | if (eventGridDataDO == null) { |
| | | return R.fail("网格不存在"); |
| | | } |
| | | R rtVal = R.fail(); |
| | |
| | | } |
| | | rtVal = R.fail(); |
| | | |
| | | if(R.isOk(rtVal)){ |
| | | if (R.isOk(rtVal)) { |
| | | //TODO 处理特殊人群实有人口数据 |
| | | |
| | | addReleaseRecord(eventDO.getId(), specialEventAddDTO.getUserId(), specialEventAddDTO.getUserName()); |
| | |
| | | @Override |
| | | public R addPublicity(PublicityEventAddDTO publicityEventAddDTO) { |
| | | EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(publicityEventAddDTO.getGridId()); |
| | | if(eventGridDataDO==null){ |
| | | if (eventGridDataDO == null) { |
| | | return R.fail("网格不存在"); |
| | | } |
| | | EventDO eventDO = new EventDO(); |
| | |
| | | eventDO.setGridMemberId(publicityEventAddDTO.getUserId()); |
| | | eventDO.setEventCategory(2l);//宣传事件 |
| | | eventDO.setEventStatus(2);//事件状态 2发布 |
| | | eventDO.setGridMemberId(publicityEventAddDTO.getUserId()); |
| | | eventDO.setEventType(8); |
| | | if(publicityEventAddDTO.getGridMemberId()!=null) { |
| | | eventDO.setGridMemberId(publicityEventAddDTO.getGridMemberId()); |
| | | }else{ |
| | | eventDO.setGridMemberId(publicityEventAddDTO.getUserId()); |
| | | } |
| | | eventDO.setGridMemberName(publicityEventAddDTO.getUserName()); |
| | | eventDO.setGridMemberTelephone(publicityEventAddDTO.getPhone()); |
| | | eventDO.setCreateBy(publicityEventAddDTO.getUserId()); |
| | | eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType())); |
| | | if(eventMapper.insert(eventDO)==1){ |
| | | if (eventMapper.insert(eventDO) == 1) { |
| | | //添加音频 |
| | | if(StringUtils.isNotEmpty(publicityEventAddDTO.getAudio())){ |
| | | if (StringUtils.isNotEmpty(publicityEventAddDTO.getAudio())) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | | eventResourceDO.setClassification(1); |
| | | eventResourceDO.setType(2); |
| | |
| | | eventResourceDO.setCreateBy(publicityEventAddDTO.getUserId()); |
| | | eventResourceDO.setResourceTime(publicityEventAddDTO.getAudioTime()); |
| | | int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(audioAdd!=1){ |
| | | if (audioAdd != 1) { |
| | | throw new ServiceException("添加音频失败"); |
| | | } |
| | | } |
| | | //添加视频 |
| | | if(StringUtils.isNotEmpty(publicityEventAddDTO.getVideo())){ |
| | | if (StringUtils.isNotEmpty(publicityEventAddDTO.getVideo())) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | | eventResourceDO.setClassification(1); |
| | | eventResourceDO.setType(3); |
| | |
| | | eventResourceDO.setCreateBy(publicityEventAddDTO.getUserId()); |
| | | eventResourceDO.setResourceTime(publicityEventAddDTO.getVideoTime()); |
| | | int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(videoAdd!=1){ |
| | | if (videoAdd != 1) { |
| | | throw new ServiceException("添加视频失败"); |
| | | } |
| | | } |
| | | //添加图片 |
| | | if(StringUtils.isNotEmpty(publicityEventAddDTO.getPics())){ |
| | | if (StringUtils.isNotEmpty(publicityEventAddDTO.getPics())) { |
| | | String[] pica = publicityEventAddDTO.getPics().split(","); |
| | | for (int i = 0; i < pica.length; i++) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | |
| | | eventResourceDO.setRefId(eventDO.getId()); |
| | | eventResourceDO.setCreateBy(publicityEventAddDTO.getUserId()); |
| | | int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(picAdd!=1){ |
| | | if (picAdd != 1) { |
| | | throw new ServiceException("添加图片失败"); |
| | | } |
| | | } |
| | |
| | | @Override |
| | | public R savePublicityDraft(PublicityEventEditDTO publicityEventEditDTO) { |
| | | EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(publicityEventEditDTO.getGridId()); |
| | | if(eventGridDataDO==null){ |
| | | if (eventGridDataDO == null) { |
| | | return R.fail("网格不存在"); |
| | | } |
| | | if(publicityEventEditDTO.getId()==null) { |
| | | if (publicityEventEditDTO.getId() == null) { |
| | | EventDO eventDO = new EventDO(); |
| | | BeanUtils.copyProperties(publicityEventEditDTO, eventDO); |
| | | eventDO.setGridMemberId(publicityEventEditDTO.getUserId()); |
| | |
| | | eventDO.setGridMemberName(publicityEventEditDTO.getUserName()); |
| | | eventDO.setGridMemberTelephone(publicityEventEditDTO.getPhone()); |
| | | eventDO.setEventDealStatus(5);//草稿状态 |
| | | eventDO.setEventType(8); |
| | | if (eventMapper.insert(eventDO) > 0) { |
| | | //添加音频 |
| | | if (StringUtils.isNotEmpty(publicityEventEditDTO.getAudio())) { |
| | |
| | | return R.ok(); |
| | | } |
| | | return R.fail(); |
| | | }else{ |
| | | } else { |
| | | //编辑原来的 |
| | | EventDO eventDO = eventMapper.selectById(publicityEventEditDTO.getId()); |
| | | if(eventDO.getEventStatus()!=null && eventDO.getEventStatus()!=1 && eventDO.getEventDealStatus()!=6){ |
| | | if (eventDO.getEventStatus() != null && eventDO.getEventStatus() != 1 && eventDO.getEventDealStatus() != 6) { |
| | | return R.fail("保存草稿失败,事件不是草稿/撤销状态"); |
| | | } |
| | | BeanUtils.copyProperties(publicityEventEditDTO, eventDO); |
| | |
| | | if (eventMapper.updateById(eventDO) > 0) { |
| | | int deleted = eventResourceService.getBaseMapper() |
| | | .delete(new LambdaQueryWrapper<EventResourceDO>() |
| | | .eq(EventResourceDO::getClassification,1) |
| | | .eq(EventResourceDO::getClassification, 1) |
| | | .eq(EventResourceDO::getRefId, eventDO.getId())); |
| | | //添加音频 |
| | | if (StringUtils.isNotEmpty(publicityEventEditDTO.getAudio())) { |
| | |
| | | |
| | | @Override |
| | | public R selectPublicity(PagePublicityEventDTO pagePublicityEventDTO) { |
| | | Page page = new Page(1,10); |
| | | if(pagePublicityEventDTO.getPageNum()!=null) { |
| | | Page page = new Page(1, 10); |
| | | if (pagePublicityEventDTO.getPageNum() != null) { |
| | | page.setCurrent(pagePublicityEventDTO.getPageNum()); |
| | | } |
| | | if(pagePublicityEventDTO.getPageSize()!=null) { |
| | | if (pagePublicityEventDTO.getPageSize() != null) { |
| | | page.setSize(pagePublicityEventDTO.getPageSize()); |
| | | } |
| | | IPage<EventVO> ipage = eventMapper.findPublicityByPage(page, pagePublicityEventDTO); |
| | | if(ipage!=null){ |
| | | if (ipage != null) { |
| | | List<EventVO> eventVOList = ipage.getRecords(); |
| | | eventVOList.forEach(eventVO -> { |
| | | List<EventResourceDO> eventResourceDOList = |
| | |
| | | List<EventResourceVO> audioList = new ArrayList<>(); |
| | | List<EventResourceVO> videoList = new ArrayList<>(); |
| | | eventResourceDOList.forEach(eventResourceDO -> { |
| | | switch (eventResourceDO.getType()){ |
| | | switch (eventResourceDO.getType()) { |
| | | case 1: |
| | | EventResourceVO picEventResourceVO = new EventResourceVO(); |
| | | BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); |
| | |
| | | @Override |
| | | public R eventToManage(PageEventManageDTO pageEventManageDTO) { |
| | | //查询管理事件 |
| | | Page page = new Page(1,10); |
| | | if(pageEventManageDTO.getPageNum()!=null) { |
| | | Page page = new Page(1, 10); |
| | | if (pageEventManageDTO.getPageNum() != null) { |
| | | page.setCurrent(pageEventManageDTO.getPageNum()); |
| | | } |
| | | if(pageEventManageDTO.getPageSize()!=null) { |
| | | if (pageEventManageDTO.getPageSize() != null) { |
| | | page.setSize(pageEventManageDTO.getPageSize()); |
| | | } |
| | | IPage<EventVO> ipage = eventMapper.findToManageByPage(page, pageEventManageDTO); |
| | | if(ipage!=null){ |
| | | if (ipage != null) { |
| | | List<EventVO> eventVOList = ipage.getRecords(); |
| | | eventVOList.forEach(eventVO -> { |
| | | List<EventResourceDO> eventResourceDOList = |
| | |
| | | List<EventResourceVO> audioList = new ArrayList<>(); |
| | | List<EventResourceVO> videoList = new ArrayList<>(); |
| | | eventResourceDOList.forEach(eventResourceDO -> { |
| | | switch (eventResourceDO.getType()){ |
| | | switch (eventResourceDO.getType()) { |
| | | case 1: |
| | | EventResourceVO picEventResourceVO = new EventResourceVO(); |
| | | BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); |
| | |
| | | |
| | | //查询网格员头像 |
| | | String imageUrl = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId()); |
| | | if(StringUtils.isNotEmpty(imageUrl)){ |
| | | if (StringUtils.isNotEmpty(imageUrl)) { |
| | | eventVO.setGridMemberImageUrl(imageUrl); |
| | | } |
| | | }); |
| | |
| | | @Override |
| | | public R markEventInvalid(EventRevokeDTO eventRevokeDTO) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(eventRevokeDTO.getId()); |
| | | if(eventDO==null){ |
| | | if (eventDO == null) { |
| | | return R.fail("事件不存在"); |
| | | } |
| | | if(eventDO.getEventCategory()!=null) { |
| | | if (eventDO.getEventCategory() != null) { |
| | | if (eventDO.getEventCategory() == 1) { |
| | | boolean canRevoke = eventDO.getEventDealStatus() == 3; //上报状态 |
| | | if (!canRevoke) { |
| | | return R.fail("当前事件不是上报状态,不允许标为无效"); |
| | | } |
| | | }else if (eventDO.getEventCategory() == 2) { |
| | | } else if (eventDO.getEventCategory() == 2) { |
| | | boolean canRevoke = eventDO.getEventDealStatus() == 8; //发布状态 |
| | | if (!canRevoke) { |
| | | return R.fail("当前事件不是发布状态,不允许标为无效"); |
| | | } |
| | | }else{ |
| | | } else { |
| | | return R.fail(""); |
| | | } |
| | | }else{ |
| | | } else { |
| | | return R.fail("事件所属错误"); |
| | | } |
| | | eventDO.setInvalid(false); |
| | |
| | | eventDO.setProcessType(1);//网格员处理 |
| | | eventDO.setCommunityProcess(0);//非 社区处理 |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated == 1){ |
| | | addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1,"标为无效", eventRevokeDTO.getCommunityId(), eventRevokeDTO.getCommunityName(), 4); |
| | | if (updated == 1) { |
| | | addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1, "标为无效", eventRevokeDTO.getCommunityId(), eventRevokeDTO.getCommunityName(), 4); |
| | | return R.ok(); |
| | | } |
| | | return R.fail(); |
| | |
| | | @Override |
| | | public R republishInvalidEvent(CommonEventRepublishDTO commonEventRepublishDTO) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublishDTO.getId()); |
| | | if(eventDO==null){ |
| | | if (eventDO == null) { |
| | | return R.fail("事件不存在"); |
| | | } |
| | | boolean canRepulish = eventDO.getEventDealStatus()==7; //已失效状态 |
| | | if(!canRepulish){ |
| | | boolean canRepulish = eventDO.getEventDealStatus() == 7; //已失效状态 |
| | | if (!canRepulish) { |
| | | return R.fail("当前事件不是已失效状态,不能重新发布"); |
| | | } |
| | | eventDO.setInvalid(true); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated == 1){ |
| | | addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1,"重新发布事件成功", |
| | | commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 9 ); |
| | | if (updated == 1) { |
| | | addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1, "重新发布事件成功", |
| | | commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 9); |
| | | return R.ok(); |
| | | } |
| | | return R.fail(); |
| | |
| | | return R.fail("事件不存在"); |
| | | } |
| | | boolean canDealByCommunity = eventDO.getEventDealStatus() == 3; |
| | | if(!canDealByCommunity){ |
| | | if (!canDealByCommunity) { |
| | | return R.fail("事件当前不是上报状态"); |
| | | } |
| | | |
| | |
| | | Long reportToInDB = -1L; |
| | | for (int i = 0; i < list.size(); i++) { |
| | | EventTransferRecordDO eventTransferRecordDO = list.get(i); |
| | | if(eventTransferRecordDO.getProcessType()!=null && eventTransferRecordDO.getProcessType()==2){ |
| | | if (eventTransferRecordDO.getProcessType() != null && eventTransferRecordDO.getProcessType() == 2) { |
| | | reportToInDB = eventTransferRecordDO.getToId(); |
| | | } |
| | | } |
| | | if(commonEventDealDTO.getCommunityId()==null){ |
| | | if (commonEventDealDTO.getCommunityId() == null) { |
| | | return R.fail("当前用户社区获取失败"); |
| | | } |
| | | if(reportToInDB.longValue() != commonEventDealDTO.getCommunityId().longValue()){ |
| | | if (reportToInDB.longValue() != commonEventDealDTO.getCommunityId().longValue()) { |
| | | return R.fail("用户上报的社区不是当前社区"); |
| | | } |
| | | if(commonEventDealDTO.getNeedVerify()){ |
| | | if (commonEventDealDTO.getNeedVerify()) { |
| | | eventDO.setEventProcessStatus(3);//待验证状态 |
| | | eventDO.setProcessType(1);//交给网格员处理-验证 |
| | | }else { |
| | | } else { |
| | | eventDO.setEventProcessStatus(2);//2已解决 |
| | | } |
| | | eventDO.setUpdateBy(commonEventDealDTO.getUserId()); |
| | |
| | | eventDO.setProcessDesc(commonEventDealDTO.getProcessResult()); |
| | | |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated!=1){ |
| | | if (updated != 1) { |
| | | 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 (transferRecordDO != null && transferRecordDO.getId() != null) { |
| | | //添加音频 |
| | | if(StringUtils.isNotEmpty(commonEventDealDTO.getAudio())){ |
| | | if (StringUtils.isNotEmpty(commonEventDealDTO.getAudio())) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | | eventResourceDO.setClassification(3); |
| | | eventResourceDO.setType(2); |
| | |
| | | eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); |
| | | eventResourceDO.setResourceTime(commonEventDealDTO.getAudioTime()); |
| | | int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(audioAdd!=1){ |
| | | if (audioAdd != 1) { |
| | | throw new ServiceException("添加音频失败"); |
| | | } |
| | | } |
| | | //添加视频 |
| | | if(StringUtils.isNotEmpty(commonEventDealDTO.getVideo())){ |
| | | if (StringUtils.isNotEmpty(commonEventDealDTO.getVideo())) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | | eventResourceDO.setClassification(3); |
| | | eventResourceDO.setType(3); |
| | |
| | | eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); |
| | | eventResourceDO.setResourceTime(commonEventDealDTO.getVideoTime()); |
| | | int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(videoAdd!=1){ |
| | | if (videoAdd != 1) { |
| | | throw new ServiceException("添加视频失败"); |
| | | } |
| | | } |
| | | //添加图片 |
| | | if(StringUtils.isNotEmpty(commonEventDealDTO.getPics())){ |
| | | if (StringUtils.isNotEmpty(commonEventDealDTO.getPics())) { |
| | | String[] pica = commonEventDealDTO.getPics().split(","); |
| | | for (int i = 0; i < pica.length; i++) { |
| | | EventResourceDO eventResourceDO = new EventResourceDO(); |
| | |
| | | eventResourceDO.setRefId(transferRecordDO.getId()); |
| | | eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); |
| | | int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); |
| | | if(picAdd!=1){ |
| | | if (picAdd != 1) { |
| | | throw new ServiceException("添加图片失败"); |
| | | } |
| | | } |
| | |
| | | EventDO eventDOToUpdate = this.getBaseMapper().selectById(commonEventDealDTO.getId()); |
| | | eventDOToUpdate.setProcessRecordId(transferRecordId); |
| | | int transferRecordUpdated = this.getBaseMapper().updateById(eventDOToUpdate); |
| | | if(transferRecordUpdated!=1){ |
| | | if (transferRecordUpdated != 1) { |
| | | throw new ServiceException("更新事件处理流程失败"); |
| | | } |
| | | return R.ok(); |
| | | }else{ |
| | | } else { |
| | | throw new ServiceException("处理事件记录出错"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public R selectCommunityPublicity(PagePublicityEventCommunityDTO pagePublicityEventDTO) { |
| | | Page page = new Page(1,10); |
| | | if(pagePublicityEventDTO.getPageNum()!=null) { |
| | | Page page = new Page(1, 10); |
| | | if (pagePublicityEventDTO.getPageNum() != null) { |
| | | page.setCurrent(pagePublicityEventDTO.getPageNum()); |
| | | } |
| | | if(pagePublicityEventDTO.getPageSize()!=null) { |
| | | if (pagePublicityEventDTO.getPageSize() != null) { |
| | | page.setSize(pagePublicityEventDTO.getPageSize()); |
| | | } |
| | | IPage<EventVO> ipage = eventMapper.findCommunityPublicityByPage(page, pagePublicityEventDTO); |
| | | if(ipage!=null){ |
| | | if (ipage != null) { |
| | | List<EventVO> eventVOList = ipage.getRecords(); |
| | | eventVOList.forEach(eventVO -> { |
| | | List<EventResourceDO> eventResourceDOList = |
| | |
| | | List<EventResourceVO> audioList = new ArrayList<>(); |
| | | List<EventResourceVO> videoList = new ArrayList<>(); |
| | | eventResourceDOList.forEach(eventResourceDO -> { |
| | | switch (eventResourceDO.getType()){ |
| | | switch (eventResourceDO.getType()) { |
| | | case 1: |
| | | EventResourceVO picEventResourceVO = new EventResourceVO(); |
| | | BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); |
| | |
| | | |
| | | /** |
| | | * 添加发布事件流转记录 |
| | | * @param eventId 事件ID |
| | | * @param userId 操作用户ID |
| | | * |
| | | * @param eventId 事件ID |
| | | * @param userId 操作用户ID |
| | | * @param userName 操作用户姓名 |
| | | * @return 添加成功返回true, 否则返回false |
| | | */ |
| | | private EventTransferRecordDO addReleaseRecord(Long eventId, Long userId, String userName){ |
| | | private EventTransferRecordDO addReleaseRecord(Long eventId, Long userId, String userName) { |
| | | EventTransferRecordDO eventTransferRecordDO = new EventTransferRecordDO(); |
| | | eventTransferRecordDO.setFromType(1); |
| | | eventTransferRecordDO.setFromId(userId); |
| | |
| | | eventTransferRecordDO.setProcessResult("发布成功"); |
| | | eventTransferRecordDO.setProcessType(0);//初始状态 |
| | | int inserted = eventTransferRecordService.getBaseMapper().insert(eventTransferRecordDO); |
| | | if(inserted!=1){ |
| | | if (inserted != 1) { |
| | | throw new ServiceException("事件流转记录添加失败"); |
| | | } |
| | | this.updateEventDealStatus(eventId); |
| | |
| | | |
| | | /** |
| | | * 查询最后的流转记录,并添加事件流转记录 |
| | | * |
| | | * @param eventId 事件ID |
| | | * @param toId 流转到 ID |
| | | * @param toName 流转到 名称 |
| | | * @param toType 发送类型 |
| | | * @param msg 流转消息 |
| | | * @param toId 流转到 ID |
| | | * @param toName 流转到 名称 |
| | | * @param toType 发送类型 |
| | | * @param msg 流转消息 |
| | | * @return |
| | | */ |
| | | private EventTransferRecordDO addTransferRecord(Long eventId, Long toId, String toName, Integer toType, String msg, Long processBy, String processByName, Integer processType){ |
| | | 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) |
| | | ); |
| | | if(list==null ||list.size()==0){ |
| | | if (list == null || list.size() == 0) { |
| | | throw new ServiceException("事件流转记录异常"); |
| | | } |
| | | EventTransferRecordDO lastRecord = list.get(0); |
| | |
| | | eventTransferRecordDO.setProcessByName(processByName); |
| | | eventTransferRecordDO.setProcessType(processType); |
| | | int inserted = eventTransferRecordService.getBaseMapper().insert(eventTransferRecordDO); |
| | | if(inserted==1) { |
| | | if (inserted == 1) { |
| | | this.updateEventDealStatus(eventId); |
| | | return eventTransferRecordDO; |
| | | }else{ |
| | | } else { |
| | | throw new ServiceException("事件流转记录添加失败"); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 根据子状态 查询用户事件处理状态 |
| | | * |
| | | * @param eventId 事件ID |
| | | */ |
| | | private EventDO updateEventDealStatus(Long eventId){ |
| | | private EventDO updateEventDealStatus(Long eventId) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(eventId); |
| | | Integer eventDealStatus = getEventDealStatus(eventDO); |
| | | eventDO.setEventDealStatus(eventDealStatus); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if(updated == 1){ |
| | | if (updated == 1) { |
| | | return eventDO; |
| | | }else{ |
| | | } else { |
| | | throw new ServiceException("更新事件处理状态错误"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据子状态 查询用户事件处理状态 |
| | | * |
| | | * @param eventDO 事件 |
| | | */ |
| | | private Integer getEventDealStatus(EventDO eventDO){ |
| | | private Integer getEventDealStatus(EventDO eventDO) { |
| | | //1 待处理、2 待验证、3 已上报、4 已解决、5 草稿箱、6已撤销、7已失效、8已发布 |
| | | if(eventDO.getEventCategory()!=null) { |
| | | if (eventDO.getEventCategory() != null) { |
| | | if (eventDO.getEventCategory() == 1) { |
| | | Integer event_status = eventDO.getEventStatus()!=null?eventDO.getEventStatus():-1; |
| | | Integer event_process_status = eventDO.getEventProcessStatus()!=null?eventDO.getEventProcessStatus():-1; |
| | | Integer process_type = eventDO.getProcessType()!=null?eventDO.getProcessType():-1; |
| | | Integer community_process = eventDO.getCommunityProcess()!=null?eventDO.getCommunityProcess():-1; |
| | | Integer event_status = eventDO.getEventStatus() != null ? eventDO.getEventStatus() : -1; |
| | | Integer event_process_status = eventDO.getEventProcessStatus() != null ? eventDO.getEventProcessStatus() : -1; |
| | | Integer process_type = eventDO.getProcessType() != null ? eventDO.getProcessType() : -1; |
| | | Integer community_process = eventDO.getCommunityProcess() != null ? eventDO.getCommunityProcess() : -1; |
| | | |
| | | Integer eventDealStatus = -1; |
| | | if (eventDO.getInvalid() != null && eventDO.getInvalid() == false) { |
| | |
| | | } else if (event_status == 1) { |
| | | eventDealStatus = 5; |
| | | //"草稿箱" |
| | | } else if ( event_status == 4) { |
| | | } else if (event_status == 4) { |
| | | eventDealStatus = 6; |
| | | //"已撤销" |
| | | } else if (event_status ==2){ |
| | | } else if (event_status == 2) { |
| | | if (event_process_status == 3) { |
| | | eventDealStatus = 2; |
| | | //"待验证" |
| | | }else if (event_process_status == 2) { |
| | | } else if (event_process_status == 2) { |
| | | eventDealStatus = 4; |
| | | //"已解决" |
| | | }else if ( community_process == 1 && process_type == 2) { |
| | | } else if (community_process == 1 && process_type == 2) { |
| | | eventDealStatus = 3; |
| | | //"已上报" |
| | | }else if ( event_process_status == 1 && process_type == 1) { |
| | | } else if (event_process_status == 1 && process_type == 1) { |
| | | eventDealStatus = 1; |
| | | //"待处理" |
| | | } |
| | | } |
| | | } |
| | | return eventDealStatus; |
| | | } else if (eventDO.getEventCategory() == 2) { |
| | |
| | | |
| | | /** |
| | | * 后台管理-统计模块 |
| | | * @param communityId 社区id |
| | | * @return 统计信息 |
| | | * |
| | | * @param communityId 社区id |
| | | * @return 统计信息 |
| | | */ |
| | | @Override |
| | | public R eventStatistics(Long communityId){ |
| | | public R eventStatistics(Long communityId) { |
| | | return R.ok(this.baseMapper.eventStatistics(communityId)); |
| | | } |
| | | |
| | | /** |
| | | * 后台管理-网格员统计 |
| | | * @param statisticsAdminDTO 请求参数 |
| | | * @return 网格员统计信息 |
| | | * |
| | | * @param statisticsAdminDTO 请求参数 |
| | | * @return 网格员统计信息 |
| | | */ |
| | | @Override |
| | | public R gridMemberStatistics(MemberStatisticsAdminDTO statisticsAdminDTO){ |
| | | return R.ok(eventGridMemberRelationMapper.gridMemberStatistics(new Page(statisticsAdminDTO.getPageNum(),statisticsAdminDTO.getPageSize()),statisticsAdminDTO)); |
| | | public R gridMemberStatistics(MemberStatisticsAdminDTO statisticsAdminDTO) { |
| | | return R.ok(eventGridMemberRelationMapper.gridMemberStatistics(new Page(statisticsAdminDTO.getPageNum(), statisticsAdminDTO.getPageSize()), statisticsAdminDTO)); |
| | | } |
| | | |
| | | @Override |
| | | public R getNearByGrid(PageEventGridNearbyDTO pageEventGridNearbyDTO) { |
| | | Page page = new Page(pageEventGridNearbyDTO.getPageNum(), pageEventGridNearbyDTO.getPageSize()); |
| | | String latLng = pageEventGridNearbyDTO.getHappentLatLng(); |
| | | if(!latLng.matches("^[\\-\\+]?((0|([1-8]\\d?))(\\.\\d{1,10})?|90(\\.0{1,10})?),[\\-\\+]?(0(\\.\\d{1,10})?|([1-9](\\d)?)(\\.\\d{1,10})?|1[0-7]\\d{1}(\\.\\d{1,10})?|180\\.0{1,10})$")){ |
| | | return R.fail("经纬度参数错误"); |
| | | } |
| | | String latLngArr[] = latLng.split(","); |
| | | try { |
| | | Double lat = Double.valueOf(latLngArr[1]); |
| | | Double lng = Double.valueOf(latLngArr[0]); |
| | | List<EventGridDataAreaVO> gridList = |
| | | eventGridDataMapper.selectGridWithArea(page, pageEventGridNearbyDTO); |
| | | if (gridList != null && gridList.size() > 0) { |
| | | List<EventGridDataVO> rtEventGridList = new ArrayList<>(); |
| | | for (EventGridDataAreaVO eventGridDataDO : gridList) { |
| | | String data = eventGridDataDO.getData(); |
| | | if(data!=null) { |
| | | List<LatLngVO> latLngList = LngLatUtils.getLatLngFromText(data); |
| | | boolean inGrid = LngLatUtils.isInPolygon(latLngList, lng, lat); |
| | | if (inGrid) { |
| | | EventGridDataVO eventGridDataVO = new EventGridDataVO(); |
| | | BeanUtils.copyProperties(eventGridDataDO, eventGridDataVO); |
| | | rtEventGridList.add(eventGridDataVO); |
| | | } |
| | | } |
| | | } |
| | | return R.ok(rtEventGridList); |
| | | } else { |
| | | return R.ok("未找到社区"); |
| | | } |
| | | }catch (Exception e){ |
| | | return R.fail(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R deleteEventBatch(EventDeleteDTO eventDeleteDTO) { |
| | | List<Long> eventIds = eventDeleteDTO.getId(); |
| | | if (eventIds != null && eventIds.size() > 0) { |
| | | R rt = null; |
| | | Long userId = eventDeleteDTO.getUserId(); |
| | | for (Long id : eventIds) { |
| | | EventDO eventDO = eventMapper.selectById(id); |
| | | if (eventDO == null) { |
| | | throw new ServiceException("id为" + id + "的事件不存在"); |
| | | } |
| | | if (eventDO.getEventStatus() != null && |
| | | (eventDO.getEventStatus().intValue() == 1 || eventDO.getEventStatus().intValue() == 4)) {//草稿 或者 已撤销 的事件可以删除 |
| | | eventDO.setEventStatus(3);//逻辑删除 |
| | | eventDO.setUpdateBy(userId); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if (updated != 1) { |
| | | throw new ServiceException("删除事件失败"); |
| | | } |
| | | } |
| | | } |
| | | return R.ok(); |
| | | } else { |
| | | return R.fail("参数错误"); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R batchRepublishEvent(CommonEventBatchRepublishDTO commonEventBatchRepublishDTO) { |
| | | List<Long> ids = commonEventBatchRepublishDTO.getId(); |
| | | if (ids != null && ids.size() > 0) { |
| | | Long userId = commonEventBatchRepublishDTO.getUserId(); |
| | | String userName = commonEventBatchRepublishDTO.getUserName(); |
| | | for (Long id : ids) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(id); |
| | | if (eventDO == null) { |
| | | throw new ServiceException("id为" + id + "的事件不存在"); |
| | | } |
| | | boolean canRepublishByUser = eventDO.getEventStatus() != null && |
| | | eventDO.getEventStatus() == 4 || eventDO.getEventStatus() == 1; |
| | | if (!canRepublishByUser) { |
| | | throw new ServiceException("当前不是撤销/草稿状态"); |
| | | } |
| | | eventDO.setEventStatus(2);//2 发布 |
| | | eventDO.setEventProcessStatus(1); //待解决 |
| | | eventDO.setProcessType(1); //网格员处理 |
| | | eventDO.setUpdateBy(userId); |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if (updated != 1) { |
| | | throw new ServiceException("更新事件状态失败"); |
| | | } |
| | | addTransferRecord(eventDO.getId(), userId, userName, 1, |
| | | "重新发布已撤销事件", userId, userName, 8); |
| | | } |
| | | return R.ok(); |
| | | } else { |
| | | return R.fail("参数错误"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R batchMarkEventInvalid(EventBatchRevokeDTO eventBatchRevokeDTO) { |
| | | List<Long> ids = eventBatchRevokeDTO.getId(); |
| | | if (ids != null && ids.size() > 0) { |
| | | Long userId = eventBatchRevokeDTO.getUserId(); |
| | | String userName = eventBatchRevokeDTO.getUserName(); |
| | | Long communityId = eventBatchRevokeDTO.getCommunityId(); |
| | | String communityName = eventBatchRevokeDTO.getCommunityName(); |
| | | for (Long id : ids) { |
| | | EventDO eventDO = this.getBaseMapper().selectById(id); |
| | | if (eventDO == null) { |
| | | throw new ServiceException("id为" + id + "的事件不存在"); |
| | | } |
| | | if (eventDO.getEventCategory() != null) { |
| | | if (eventDO.getEventCategory() == 1) { |
| | | boolean canRevoke = eventDO.getEventDealStatus() == 3; //上报状态 |
| | | if (!canRevoke) { |
| | | throw new ServiceException("当前事件不是上报状态,不允许标为无效"); |
| | | } |
| | | } else if (eventDO.getEventCategory() == 2) { |
| | | boolean canRevoke = eventDO.getEventDealStatus() == 8; //发布状态 |
| | | if (!canRevoke) { |
| | | throw new ServiceException("当前事件不是发布状态,不允许标为无效"); |
| | | } |
| | | } else { |
| | | throw new ServiceException("事件分类错误"); |
| | | } |
| | | } else { |
| | | throw new ServiceException("事件所属错误"); |
| | | } |
| | | eventDO.setInvalid(false); |
| | | //标为无效后, 交给网格员处理 |
| | | eventDO.setUpdateBy(userId); |
| | | eventDO.setEventStatus(4);//4、撤销 |
| | | eventDO.setProcessType(1);//网格员处理 |
| | | eventDO.setCommunityProcess(0);//非 社区处理 |
| | | int updated = this.getBaseMapper().updateById(eventDO); |
| | | if (updated == 1) { |
| | | addTransferRecord(eventDO.getId(), userId, userName, 1, "标为无效", communityId, communityName, 4); |
| | | } else { |
| | | throw new ServiceException("事件流转信息添加错误"); |
| | | } |
| | | } |
| | | return R.ok(); |
| | | } else { |
| | | return R.fail("参数错误"); |
| | | } |
| | | } |
| | | |
| | | /** |