From 72f11c9e9edec3d2534112badf7a0ca48fa9da5a Mon Sep 17 00:00:00 2001 From: 罗元桥 <2376770955@qq.com> Date: 星期三, 23 六月 2021 14:37:44 +0800 Subject: [PATCH] Merge branch 'test' into 'test_wangge_two' --- springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java | 488 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 433 insertions(+), 55 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..4074fdb 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 @@ -1,36 +1,38 @@ package com.panzhihua.service_grid.service.impl; +import cn.hutool.core.util.IdcardUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.enums.EventType; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO; +import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO; import com.panzhihua.common.model.dtos.grid.*; +import com.panzhihua.common.model.helper.AESUtil; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActVO; +import com.panzhihua.common.model.vos.community.screen.event.EventListVO; import com.panzhihua.common.model.vos.grid.*; import com.panzhihua.common.service.community.CommunityService; +import com.panzhihua.common.utlis.ExcelSelectListUtil; 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; +import com.panzhihua.service_grid.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @author cedoo @@ -54,7 +56,13 @@ @Resource private EventGridMemberRelationMapper eventGridMemberRelationMapper; @Resource + private EventSpecialCrowdRecordService eventSpecialCrowdRecordService; + @Resource + private EventSpecialCrowdRecordMapper eventSpecialCrowdRecordMapper; + @Resource private EventGridDataService eventGridDataService; + @Resource + private EventResourceMapper eventResourceMapper; /** * 分页查找事件 @@ -234,12 +242,29 @@ } eventDetailsVO.setTrans(eventTransferRecordVOS); - //查询事件发布人头像 - String imageUrl = eventMapper.getGridMemberImageUrl(eventDO.getGridMemberId()); - if (StringUtils.isNotEmpty(imageUrl)) { - eventDetailsVO.setGridMemberImageUrl(imageUrl); + //查询网格员头像,姓名 + Map<String,Object> gridMember = eventMapper.getUserBaseInfo(eventDO.getGridMemberId()); + if (!CollectionUtils.isEmpty(gridMember)) { + eventDetailsVO.setGridMemberName(gridMember.get("name") == null ? "" : gridMember.get("name").toString()); + eventDetailsVO.setGridMemberImageUrl(gridMember.get("image_url") == null ? "" : gridMember.get("image_url").toString()); + } + if(Objects.equals(eventDO.getGridMemberId(),eventDO.getCreateBy())){ + eventDetailsVO.setCreator(eventDetailsVO.getGridMemberName()); + }else{ + Map<String,Object> createUser = eventMapper.getUserBaseInfo(eventDO.getCreateBy()); + eventDetailsVO.setCreator(createUser.get("name") == null ? "" : createUser.get("name").toString()); } + //当事件为特殊人群上报时,需要查询事件与人口关联关系 + if(eventDetailsVO.getEventType().equals(6)){ + List<EventSpecialPopulationDetailsVO> specialPopulationList = eventSpecialCrowdRecordMapper.getSpecialPopulationIds(eventDetailsVO.getId()); + if(!specialPopulationList.isEmpty()){ + specialPopulationList.forEach(special -> { + special.setAge(IdcardUtil.getAgeByIdCard(special.getIdCard())); + }); + } + eventDetailsVO.setPopulationList(specialPopulationList); + } return R.ok(eventDetailsVO); } return R.fail("事件不存在"); @@ -260,6 +285,14 @@ if (eventGridDataDO == null) { return R.fail("网格不存在"); } + + //检查特殊人群上报时参数 + if(commonEventAddDTO.getEventType().equals(6)){ + if(commonEventAddDTO.getPopulationIds() == null || commonEventAddDTO.getPopulationIds().size() <= 0){ + return R.fail("上报人员为空"); + } + } + eventDO.setEventCategory(1l);//办件事件 eventDO.setEventStatus(2);//事件状态 2发布 eventDO.setProcessType(1);//网格员处理 @@ -271,6 +304,21 @@ eventDO.setSubmitDate(new Date()); eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType())); if (eventMapper.insert(eventDO) == 1) { + + //如果是特殊人群,则新增特殊人群与事件关系 + if(commonEventAddDTO.getEventType().equals(6)){ + List<EventSpecialCrowdRecordDO> crowdRecordList = new ArrayList<>(); + commonEventAddDTO.getPopulationIds().forEach(populationId -> { + EventSpecialCrowdRecordDO specialCrowdRecordDO = new EventSpecialCrowdRecordDO(); + specialCrowdRecordDO.setEventId(eventDO.getId()); + specialCrowdRecordDO.setPopulationId(populationId); + specialCrowdRecordDO.setCreateAt(new Date()); + crowdRecordList.add(specialCrowdRecordDO); + }); + //添加特殊人群上报事件与人口关系 + eventSpecialCrowdRecordService.saveBatch(crowdRecordList); + } + //添加音频 if (StringUtils.isNotEmpty(commonEventAddDTO.getAudio())) { EventResourceDO eventResourceDO = new EventResourceDO(); @@ -280,6 +328,7 @@ eventResourceDO.setRefId(eventDO.getId()); eventResourceDO.setCreateBy(commonEventAddDTO.getUserId()); eventResourceDO.setResourceTime(commonEventAddDTO.getAudioTime()); + eventResourceDO.setResourceName(commonEventAddDTO.getAudio().substring(commonEventAddDTO.getAudio().lastIndexOf("/")+1)); int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); if (audioAdd != 1) { throw new ServiceException("添加音频失败"); @@ -294,6 +343,7 @@ eventResourceDO.setRefId(eventDO.getId()); eventResourceDO.setCreateBy(commonEventAddDTO.getUserId()); eventResourceDO.setResourceTime(commonEventAddDTO.getVideoTime()); + eventResourceDO.setResourceName(commonEventAddDTO.getVideo().substring(commonEventAddDTO.getVideo().lastIndexOf("/")+1)); int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); if (videoAdd != 1) { throw new ServiceException("添加视频失败"); @@ -309,6 +359,7 @@ eventResourceDO.setUrl(pica[i]); eventResourceDO.setRefId(eventDO.getId()); eventResourceDO.setCreateBy(commonEventAddDTO.getUserId()); + eventResourceDO.setResourceName(pica[i].substring(pica[i].lastIndexOf("/")+1)); int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); if (picAdd != 1) { throw new ServiceException("添加图片失败"); @@ -328,7 +379,15 @@ if (eventGridDataDO == null) { return R.fail("网格不存在"); } + if (commonEventEditDTO.getId() == null) { + //检查特殊人群上报时参数 + if(commonEventEditDTO.getEventType().equals(6)){ + if(commonEventEditDTO.getPopulationIds().isEmpty()){ + return R.fail("上报人员为空"); + } + } + EventDO eventDO = new EventDO(); BeanUtils.copyProperties(commonEventEditDTO, eventDO); eventDO.setGridMemberId(commonEventEditDTO.getUserId()); @@ -342,6 +401,21 @@ eventDO.setGridMemberTelephone(commonEventEditDTO.getPhone()); eventDO.setEventDealStatus(5); if (eventMapper.insert(eventDO) > 0) { + + //如果是特殊人群,则新增特殊人群与事件关系 + if(commonEventEditDTO.getEventType().equals(6)){ + List<EventSpecialCrowdRecordDO> crowdRecordList = new ArrayList<>(); + commonEventEditDTO.getPopulationIds().forEach(populationId -> { + EventSpecialCrowdRecordDO specialCrowdRecordDO = new EventSpecialCrowdRecordDO(); + specialCrowdRecordDO.setEventId(eventDO.getId()); + specialCrowdRecordDO.setPopulationId(populationId); + specialCrowdRecordDO.setCreateAt(new Date()); + crowdRecordList.add(specialCrowdRecordDO); + }); + //添加特殊人群上报事件与人口关系 + eventSpecialCrowdRecordService.saveBatch(crowdRecordList); + } + //添加音频 if (StringUtils.isNotEmpty(commonEventEditDTO.getAudio())) { EventResourceDO eventResourceDO = new EventResourceDO(); @@ -515,6 +589,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 +607,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 +726,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 +1256,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 +1338,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 +1357,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 +1373,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 +1588,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 +1659,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 +1728,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 +1763,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 +1797,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 +1826,7 @@ throw new ServiceException("更新事件状态失败"); } addTransferRecord(eventDO.getId(), userId, userName, 1, - "重新发布已撤销事件", userId, userName, 8); + "重新发布已撤销事件", userId, userName, 8); } return R.ok(); } else { @@ -1742,27 +1837,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 +1937,281 @@ 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(); + } + + /** + * 事件大屏查询事件列表 + * @param eventListDTO 请求参数 + * @return 事件列表 + */ + @Override + public R getScreenEventList(ScreenEventListDTO eventListDTO) { + if (eventListDTO.getEventTypes() != null && !eventListDTO.getEventTypes().isEmpty()) { + eventListDTO.getEventTypes().forEach(eventType -> { + if(eventType.equals(ScreenEventListDTO.eventType.xc)){ + eventListDTO.setEventCategory(null); + } + }); + + } + IPage<EventListVO> eventPageList = this.baseMapper.getScreenEventList(new Page(eventListDTO.getPageNum(), eventListDTO.getPageSize()), eventListDTO); + if(!eventPageList.getRecords().isEmpty()){ + eventPageList.getRecords().forEach(event -> { + //查询事件关联附件 + List<EventResourceDO> eventResourceDOList = + eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>() + .eq(EventResourceDO::getClassification, 1) + .eq(EventResourceDO::getRefId, event.getId()) + ); + List<EventResourceVO> picList = new ArrayList<>(); + List<EventResourceVO> audioList = new ArrayList<>(); + List<EventResourceVO> videoList = new ArrayList<>(); + eventResourceDOList.forEach(eventResourceDO -> { + switch (eventResourceDO.getType()) { + case 1: + EventResourceVO picEventResourceVO = new EventResourceVO(); + BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); + picList.add(picEventResourceVO); + break; + case 2: + EventResourceVO audioResourceVO = new EventResourceVO(); + BeanUtils.copyProperties(eventResourceDO, audioResourceVO); + audioList.add(audioResourceVO); + break; + case 3: + EventResourceVO videoResourceVO = new EventResourceVO(); + BeanUtils.copyProperties(eventResourceDO, videoResourceVO); + videoList.add(videoResourceVO); + break; + } + }); + event.setAudios(audioList); + event.setPics(picList); + event.setVideos(videoList); + }); + } + return R.ok(eventPageList); + } + + /** + * 特殊人群上报-社区人口数据列表 + * @param specialPopulationDTO 请求参数 + * @return 社区人口数据列表 + */ + @Override + public R specialPopulationList(PageEventSpecialPopulationDTO specialPopulationDTO){ + IPage<EventSpecialPopulationVO> specialPopulationVOIPage = this.baseMapper.specialPopulationList(new Page(specialPopulationDTO.getPageNum(),specialPopulationDTO.getPageSize()),specialPopulationDTO); + return R.ok(specialPopulationVOIPage); + + @Override + public List<EventDetailsVO> getUnUploadEvent() { + List<EventDetailsVO> eventDetailsVOList =new ArrayList<>(); + List<EventDO> unEventList = baseMapper.selectList( + new QueryWrapper<EventDO>() + .eq("upload", false) + ); + unEventList.forEach(eventDO -> { + eventDetailsVOList.add(eventDetails(eventDO.getId()).getData()); + }); + return eventDetailsVOList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateLcUploadFlag(Long id) { + EventDO event = baseMapper.selectById(id); + event.setUpload(true); + baseMapper.updateById(event); + EventResourceDO eventResourceDO =new EventResourceDO(); + eventResourceDO.setUpload(true); + int flag = eventResourceMapper.update(eventResourceDO, new QueryWrapper<EventResourceDO>() + .eq("ref_id", id)); + if(flag>0){ + return true; + } + return false; + } } -- Gitblit v1.7.1