From 3ee15525efd4e1bb276a9b52d95e1f30a25bea8c Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 17 六月 2021 11:22:09 +0800 Subject: [PATCH] 修改bug以及新增根据社区查网格列表接口 --- springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 255 insertions(+), 44 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 3c40986..81ea73c 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 @@ -515,6 +515,8 @@ eventDO.setUpdateBy(eventRevokeDTO.getUserId()); eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 + eventDO.setRevokeType(eventRevokeDTO.getRevokeType()); + eventDO.setRevokeId(eventRevokeDTO.getRevokeId()); int updated = this.getBaseMapper().updateById(eventDO); if (updated == 1) { addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), @@ -531,10 +533,10 @@ if (eventDO == null) { return R.fail("事件不存在"); } - boolean canDealByUser = eventDO.getEventStatus() == 2 && eventDO.getEventProcessStatus() == 1; + boolean canDealByUser = (eventDO.getEventStatus() == 2||eventDO.getEventStatus()==4) && eventDO.getEventProcessStatus() == 1; if (!canDealByUser) { - if (eventDO.getEventStatus() != 2) { - return R.fail("事件不是发布状态"); + if (eventDO.getEventStatus() != 2 ) { + return R.fail("事件不是发布/待处理状态"); } if (eventDO.getEventProcessStatus() != 1) { return R.fail("事件不是待处理状态"); @@ -650,7 +652,8 @@ @Override public R republishEvent(CommonEventRepublishDTO commonEventRepublishDTO) { EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublishDTO.getId()); - boolean canRepublishByUser = eventDO.getEventStatus() == 4 || eventDO.getEventStatus() == 1; + //boolean canRepublishByUser = eventDO.getEventStatus() == 4 || eventDO.getEventStatus() == 1; + boolean canRepublishByUser = eventDO.getEventDealStatus() == 7|eventDO.getEventDealStatus() == 5; //已失效状态 if (!canRepublishByUser) { return R.fail("当前不是撤销/草稿状态"); } @@ -1179,6 +1182,11 @@ eventVO.setAudios(audioList); eventVO.setPics(picList); eventVO.setVideos(videoList); + //查询网格员头像 + String imageUrl = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId()); + if (StringUtils.isNotEmpty(imageUrl)) { + eventVO.setGridMemberImageUrl(imageUrl); + } }); return R.ok(ipage); } @@ -1256,12 +1264,12 @@ if (eventDO.getEventCategory() == 1) { boolean canRevoke = eventDO.getEventDealStatus() == 3; //上报状态 if (!canRevoke) { - return R.fail("当前事件不是上报状态,不允许标为无效"); + return R.fail("当前事件不是上报状态,不允许撤销"); } } else if (eventDO.getEventCategory() == 2) { boolean canRevoke = eventDO.getEventDealStatus() == 8; //发布状态 if (!canRevoke) { - return R.fail("当前事件不是发布状态,不允许标为无效"); + return R.fail("当前事件不是发布状态,不允许撤销"); } } else { return R.fail(""); @@ -1275,6 +1283,8 @@ eventDO.setEventStatus(4);//4、撤销 eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 + eventDO.setRevokeId(eventRevokeDTO.getRevokeId()); + eventDO.setRevokeType(eventRevokeDTO.getRevokeType()); int updated = this.getBaseMapper().updateById(eventDO); if (updated == 1) { addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1, "标为无效", eventRevokeDTO.getCommunityId(), eventRevokeDTO.getCommunityName(), 4); @@ -1289,9 +1299,9 @@ if (eventDO == null) { return R.fail("事件不存在"); } - boolean canRepulish = eventDO.getEventDealStatus() == 7; //已失效状态 + boolean canRepulish = eventDO.getEventDealStatus() == 7|eventDO.getEventDealStatus() == 5; //已失效状态 if (!canRepulish) { - return R.fail("当前事件不是已失效状态,不能重新发布"); + return R.fail("当前事件不是已失效状态/草稿状态,不能重新发布"); } eventDO.setInvalid(true); int updated = this.getBaseMapper().updateById(eventDO); @@ -1504,14 +1514,13 @@ .eq(EventTransferRecordDO::getEventId, eventId) .orderByDesc(EventTransferRecordDO::getCreateAt) ); - if (list == null || list.size() == 0) { - throw new ServiceException("事件流转记录异常"); - } - EventTransferRecordDO lastRecord = list.get(0); EventTransferRecordDO eventTransferRecordDO = new EventTransferRecordDO(); - eventTransferRecordDO.setFromType(lastRecord.getToType()); - eventTransferRecordDO.setFromId(lastRecord.getToId()); - eventTransferRecordDO.setFromName(lastRecord.getToName()); + if (list != null && list.size() > 0) { + EventTransferRecordDO lastRecord = list.get(0); + eventTransferRecordDO.setFromType(lastRecord.getToType()); + eventTransferRecordDO.setFromId(lastRecord.getToId()); + eventTransferRecordDO.setFromName(lastRecord.getToName()); + } eventTransferRecordDO.setToType(toType); eventTransferRecordDO.setToId(toId); eventTransferRecordDO.setProcessDate(new Date()); @@ -1576,10 +1585,11 @@ Integer community_process = eventDO.getCommunityProcess() != null ? eventDO.getCommunityProcess() : -1; Integer eventDealStatus = -1; - if (eventDO.getInvalid() != null && eventDO.getInvalid() == false) { + /*if (eventDO.getInvalid() != null && eventDO.getInvalid() == false) { eventDealStatus = 7; //7已失效 - } else if (event_status == 1) { + }*/ + if (event_status == 1) { eventDealStatus = 5; //"草稿箱" } else if (event_status == 4) { @@ -1644,7 +1654,7 @@ 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})$")){ + if(!latLng.matches("^[\\-\\+]?(0(\\.\\d{1,10})?|([1-9](\\d)?)(\\.\\d{1,10})?|1[0-7]\\d{1}(\\.\\d{1,10})?|180\\.0{1,10}),[\\-\\+]?((0|([1-8]\\d?))(\\.\\d{1,10})?|90(\\.0{1,10})?)$")){ return R.fail("经纬度参数错误"); } String latLngArr[] = latLng.split(","); @@ -1679,23 +1689,28 @@ @Override @Transactional(rollbackFor = Exception.class) public R deleteEventBatch(EventDeleteDTO eventDeleteDTO) { - List<Long> eventIds = eventDeleteDTO.getId(); + List<String> 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("删除事件失败"); + for (String id : eventIds) { + try { + Long eventId = Long.parseLong(id); + EventDO eventDO = eventMapper.selectById(eventId); + 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("删除事件失败"); + } + } + }catch (Exception e){ + throw new ServiceException("事件ID错误,删除失败"); } } return R.ok(); @@ -1708,17 +1723,23 @@ @Override @Transactional(rollbackFor = Exception.class) public R batchRepublishEvent(CommonEventBatchRepublishDTO commonEventBatchRepublishDTO) { - List<Long> ids = commonEventBatchRepublishDTO.getId(); + List<String> 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); + for (String id : ids) { + Long eventId = -1L; + try { + eventId = Long.parseLong(id); + }catch (Exception e){ + throw new ServiceException("事件ID错误,发布失败"); + } + EventDO eventDO = this.getBaseMapper().selectById(eventId); if (eventDO == null) { throw new ServiceException("id为" + id + "的事件不存在"); } - boolean canRepublishByUser = eventDO.getEventStatus() != null && - eventDO.getEventStatus() == 4 || eventDO.getEventStatus() == 1; + boolean canRepublishByUser = eventDO.getEventDealStatus() != null && + (eventDO.getEventDealStatus() == 5 || eventDO.getEventDealStatus() == 6); if (!canRepublishByUser) { throw new ServiceException("当前不是撤销/草稿状态"); } @@ -1731,7 +1752,7 @@ throw new ServiceException("更新事件状态失败"); } addTransferRecord(eventDO.getId(), userId, userName, 1, - "重新发布已撤销事件", userId, userName, 8); + "重新发布已撤销事件", userId, userName, 8); } return R.ok(); } else { @@ -1742,27 +1763,33 @@ @Override @Transactional(rollbackFor = Exception.class) public R batchMarkEventInvalid(EventBatchRevokeDTO eventBatchRevokeDTO) { - List<Long> ids = eventBatchRevokeDTO.getId(); + List<String> 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); + for (String id : ids) { + Long eventId = -1L; + try { + eventId = Long.parseLong(id); + }catch (Exception e){ + throw new ServiceException("事件ID错误,不能标记失效"); + } + EventDO eventDO = this.getBaseMapper().selectById(eventId); if (eventDO == null) { throw new ServiceException("id为" + id + "的事件不存在"); } if (eventDO.getEventCategory() != null) { - if (eventDO.getEventCategory() == 1) { + if (eventDO.getEventCategory() == 1) {// boolean canRevoke = eventDO.getEventDealStatus() == 3; //上报状态 if (!canRevoke) { - throw new ServiceException("当前事件不是上报状态,不允许标为无效"); + throw new ServiceException("当前事件不是上报状态,不允许撤销"); } - } else if (eventDO.getEventCategory() == 2) { + } else if (eventDO.getEventCategory() == 2) {//宣传教育 boolean canRevoke = eventDO.getEventDealStatus() == 8; //发布状态 if (!canRevoke) { - throw new ServiceException("当前事件不是发布状态,不允许标为无效"); + throw new ServiceException("当前事件不是发布状态,不允许撤销"); } } else { throw new ServiceException("事件分类错误"); @@ -1836,4 +1863,188 @@ statisticsDetailVO.setNoSum(noSum); return R.ok(statisticsDetailVO); } + + @Override + @Transactional(rollbackFor = Exception.class) + public R reportDirect(CommonEventDirectReportDTO commonEventDirectReportDTO) { + + if(commonEventDirectReportDTO.getEventId()!=null){ + //编辑原来的 + EventDO eventDO = eventMapper.selectById(commonEventDirectReportDTO.getEventId()); + if (eventDO.getEventStatus() != null && eventDO.getEventStatus() != 1 && eventDO.getEventDealStatus() != 6) { + return R.fail("保存草稿失败,事件不是草稿/已撤销状态"); + } + BeanUtils.copyProperties(commonEventDirectReportDTO, eventDO); + eventDO.setGridMemberId(commonEventDirectReportDTO.getUserId()); + eventDO.setEventCategory(1l);//办件事件 + eventDO.setEventStatus(1);//事件状态 2发布 + eventDO.setProcessType(2);//社区处理 + eventDO.setCommunityProcess(1);// 社区处理 + eventDO.setUpdateBy(commonEventDirectReportDTO.getUserId()); + if (eventMapper.updateById(eventDO) > 0) { + int deleted = eventResourceService.getBaseMapper() + .delete(new LambdaQueryWrapper<EventResourceDO>() + .eq(EventResourceDO::getClassification, 1) + .eq(EventResourceDO::getRefId, eventDO.getId())); + //添加音频 + if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getAudio())) { + EventResourceDO eventResourceDO = new EventResourceDO(); + eventResourceDO.setClassification(1); + eventResourceDO.setType(2); + eventResourceDO.setRefId(eventDO.getId()); + eventResourceDO.setUrl(commonEventDirectReportDTO.getAudio()); + eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId()); + eventResourceDO.setResourceTime(commonEventDirectReportDTO.getAudioTime()); + int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); + if (audioAdd != 1) { + throw new ServiceException("添加音频失败"); + } + } + //添加视频 + if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getVideo())) { + EventResourceDO eventResourceDO = new EventResourceDO(); + eventResourceDO.setClassification(1); + eventResourceDO.setType(3); + eventResourceDO.setRefId(eventDO.getId()); + eventResourceDO.setUrl(commonEventDirectReportDTO.getVideo()); + eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId()); + eventResourceDO.setResourceTime(commonEventDirectReportDTO.getVideoTime()); + int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); + if (videoAdd != 1) { + throw new ServiceException("添加视频失败"); + } + } + //添加图片 + if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getPics())) { + String[] pica = commonEventDirectReportDTO.getPics().split(","); + for (int i = 0; i < pica.length; i++) { + EventResourceDO eventResourceDO = new EventResourceDO(); + eventResourceDO.setClassification(1); + eventResourceDO.setType(1); + eventResourceDO.setRefId(eventDO.getId()); + eventResourceDO.setUrl(pica[i]); + eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId()); + int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); + if (picAdd != 1) { + throw new ServiceException("添加图片失败"); + } + } + } + + R r = communityService.detailCommunity(commonEventDirectReportDTO.getToId()); + if (!R.isOk(r)) { + return R.fail("社区不存在"); + } + ComActVO comActVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComActVO.class); + if (comActVO == null) { + return R.fail("社区不存在"); + } + EventDO eventDOInDB = this.getBaseMapper().selectById(commonEventDirectReportDTO.getEventId()); + eventDOInDB.setCommunityProcess(1); //社区处理 + eventDOInDB.setProcessType(2); //当前处理对象: 社区处理 + eventDOInDB.setCommunityProcess(1); + eventDOInDB.setEventProcessStatus(1); //待处理 + eventDOInDB.setUpdateBy(commonEventDirectReportDTO.getUserId()); + eventDOInDB.setSubmitDate(new Date()); + int updated = this.getBaseMapper().updateById(eventDO); + if (updated != 1) { + throw new ServiceException("事件状态更新失败"); + } + addTransferRecord(eventDO.getId(), commonEventDirectReportDTO.getToId(), comActVO.getName(), 2, commonEventDirectReportDTO.getProcessResult(), + commonEventDirectReportDTO.getUserId(), commonEventDirectReportDTO.getUserName(), 2); + return R.ok(); + } + + }else{ + EventDO eventDO = new EventDO(); + BeanUtils.copyProperties(commonEventDirectReportDTO, eventDO); + eventDO.setGridMemberId(commonEventDirectReportDTO.getUserId()); + EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(commonEventDirectReportDTO.getGridId()); + if (eventGridDataDO == null) { + return R.fail("网格不存在"); + } + eventDO.setEventCategory(1l);//办件事件 + eventDO.setEventStatus(2);//事件状态 2发布 + eventDO.setProcessType(2);//社区处理 + eventDO.setCommunityProcess(1);//社区处理 + eventDO.setEventProcessStatus(1); + eventDO.setGridMemberName(commonEventDirectReportDTO.getUserName()); + eventDO.setGridMemberTelephone(commonEventDirectReportDTO.getPhone()); + eventDO.setCreateBy(commonEventDirectReportDTO.getUserId()); + eventDO.setSubmitDate(new Date()); + eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType())); + if (eventMapper.insert(eventDO) == 1) { + //添加音频 + if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getAudio())) { + EventResourceDO eventResourceDO = new EventResourceDO(); + eventResourceDO.setClassification(1); + eventResourceDO.setType(2); + eventResourceDO.setUrl(commonEventDirectReportDTO.getAudio()); + eventResourceDO.setRefId(eventDO.getId()); + eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId()); + eventResourceDO.setResourceTime(commonEventDirectReportDTO.getAudioTime()); + int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); + if (audioAdd != 1) { + throw new ServiceException("添加音频失败"); + } + } + //添加视频 + if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getVideo())) { + EventResourceDO eventResourceDO = new EventResourceDO(); + eventResourceDO.setClassification(1); + eventResourceDO.setType(3); + eventResourceDO.setUrl(commonEventDirectReportDTO.getVideo()); + eventResourceDO.setRefId(eventDO.getId()); + eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId()); + eventResourceDO.setResourceTime(commonEventDirectReportDTO.getVideoTime()); + int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); + if (videoAdd != 1) { + throw new ServiceException("添加视频失败"); + } + } + //添加图片 + if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getPics())) { + String[] pica = commonEventDirectReportDTO.getPics().split(","); + for (int i = 0; i < pica.length; i++) { + EventResourceDO eventResourceDO = new EventResourceDO(); + eventResourceDO.setClassification(1); + eventResourceDO.setType(1); + eventResourceDO.setUrl(pica[i]); + eventResourceDO.setRefId(eventDO.getId()); + eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId()); + int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); + if (picAdd != 1) { + throw new ServiceException("添加图片失败"); + } + } + } + addReleaseRecord(eventDO.getId(), commonEventDirectReportDTO.getUserId(), commonEventDirectReportDTO.getUserName()); + + R r = communityService.detailCommunity(commonEventDirectReportDTO.getToId()); + if (!R.isOk(r)) { + return R.fail("社区不存在"); + } + ComActVO comActVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComActVO.class); + if (comActVO == null) { + return R.fail("社区不存在"); + } + EventDO eventDOInDB = this.getBaseMapper().selectById(eventDO.getId()); + eventDOInDB.setCommunityProcess(1); //社区处理 + eventDOInDB.setProcessType(2); //当前处理对象: 社区处理 + eventDOInDB.setCommunityProcess(1); + eventDOInDB.setEventProcessStatus(1); //待处理 + eventDOInDB.setUpdateBy(commonEventDirectReportDTO.getUserId()); + eventDOInDB.setSubmitDate(new Date()); + int updated = this.getBaseMapper().updateById(eventDO); + if (updated != 1) { + throw new ServiceException("更新突发事件状态更新失败"); + } + addTransferRecord(eventDO.getId(), commonEventDirectReportDTO.getToId(), comActVO.getName(), 2, commonEventDirectReportDTO.getProcessResult(), + commonEventDirectReportDTO.getUserId(), commonEventDirectReportDTO.getUserName(), 2); + return R.ok(eventDO.getId()); + } + } + + return R.fail(); + } } -- Gitblit v1.7.1