CeDo
2021-06-07 f1afc9dd47bc8e9d4d2c86a5bbd099ee0d7824f2
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
@@ -1788,4 +1788,236 @@
            return R.fail("参数错误");
        }
    }
    /**
     * 根据网格id查询网格统计数据
     * @param gridId    网格id
     * @return  网格统计数据
     */
    @Override
    public R getGridEventStatisticsByApp(Long gridId){
        return R.ok(this.baseMapper.getGridEventStatisticsByApp(gridId));
    }
    /**
     * 查询网格事件统计数据
     * @param statisticsDTO 请求参数
     * @return  网格事件统计数据
     */
    @Override
    public R getGridEventDetailStatisticsByApp(GridEventStatisticsDTO statisticsDTO){
        GridEventStatisticsDetailVO statisticsDetailVO = this.baseMapper.getGridEventDetailStatisticsByApp(statisticsDTO);
        if(statisticsDetailVO == null){
            statisticsDetailVO = new GridEventStatisticsDetailVO();
        }
        if(statisticsDetailVO.getEventSSPTotal() == null){
            statisticsDetailVO.setEventSSPTotal(0);
        }
        if(statisticsDetailVO.getNoEventSSPTotal() == null){
            statisticsDetailVO.setNoEventSSPTotal(0);
        }
        if(statisticsDetailVO.getEventZFTotal() == null){
            statisticsDetailVO.setEventZFTotal(0);
        }
        if(statisticsDetailVO.getNoEventZFTotal() == null){
            statisticsDetailVO.setNoEventZFTotal(0);
        }
        //统计数据
        Integer sum = statisticsDetailVO.getEventTFTotal() + statisticsDetailVO.getEventMDTotal() + statisticsDetailVO.getEventZATotal()
                + statisticsDetailVO.getEventBWDTotal() + statisticsDetailVO.getEventTSTotal() + statisticsDetailVO.getEventGGTotal()
                + statisticsDetailVO.getEventXCTotal() + statisticsDetailVO.getEventSSPTotal() + statisticsDetailVO.getEventZFTotal();
        statisticsDetailVO.setSum(sum);
        Integer noSum = statisticsDetailVO.getNoEventTFTotal() + statisticsDetailVO.getNoEventMDTotal() + statisticsDetailVO.getNoEventZATotal()
                + statisticsDetailVO.getNoEventBWDTotal() + statisticsDetailVO.getNoEventTSTotal() + statisticsDetailVO.getNoEventGGTotal()
                + statisticsDetailVO.getNoEventSSPTotal() + statisticsDetailVO.getNoEventZFTotal();
        statisticsDetailVO.setNoSum(noSum);
        return R.ok(statisticsDetailVO);
    }
    @Override
    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(1);//网格员处理
            eventDO.setCommunityProcess(0);//非 社区处理
            eventDO.setUpdateBy(commonEventDirectReportDTO.getUserId());
            eventDO.setEventDealStatus(5);
            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(1);//网格员处理
            eventDO.setCommunityProcess(0);//非 社区处理
            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();
    }
}