huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
@@ -1,8 +1,15 @@
package com.panzhihua.service_grid.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdcardUtil;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -31,25 +38,21 @@
import com.panzhihua.service_grid.dao.*;
import com.panzhihua.service_grid.model.dos.*;
import com.panzhihua.service_grid.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdcardUtil;
import lombok.extern.slf4j.Slf4j;
/**
 * @author cedoo
 * 2021-04-14 15:03:01
 * 订单表服务实现类
 * @author cedoo 2021-04-14 15:03:01 订单表服务实现类
 */
@Slf4j
@Service
public class EventServiceImpl extends ServiceImpl<EventMapper, EventDO> implements EventService {
    private final String moth_format_str = "yyyy-MM";
    private final String[] monthStr = new String[] {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"};
    @Resource
    private EventMapper eventMapper;
    @Resource
@@ -70,10 +73,6 @@
    private EventGridDataService eventGridDataService;
    @Resource
    private EventResourceMapper eventResourceMapper;
    private final String moth_format_str = "yyyy-MM";
    private final String[] monthStr = new String[]{"一","二","三","四","五","六","七","八","九","十","十一","十二"};
    /**
     * 分页查找事件
@@ -96,9 +95,7 @@
            eventVOList.forEach(eventVO -> {
                List<EventResourceDO> eventResourceDOList =
                        eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
                                .eq(EventResourceDO::getClassification, 1)
                                .eq(EventResourceDO::getRefId, eventVO.getId())
                        );
                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
                List<EventResourceVO> picList = new ArrayList<>();
                List<EventResourceVO> audioList = new ArrayList<>();
                List<EventResourceVO> videoList = new ArrayList<>();
@@ -149,8 +146,9 @@
        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);
@@ -162,7 +160,8 @@
    /**
     * 查询事件详细信息
     *
     * @param id 事件 id
     * @param id
     *            事件 id
     * @return 查找结果
     */
    @Override
@@ -180,9 +179,7 @@
            //查询事件关联附件
            List<EventResourceDO> eventResourceDOList =
                    eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
                            .eq(EventResourceDO::getClassification, 1)
                            .eq(EventResourceDO::getRefId, id)
                    );
                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, id));
            List<EventResourceVO> picList = new ArrayList<>();
            List<EventResourceVO> audioList = new ArrayList<>();
            List<EventResourceVO> videoList = new ArrayList<>();
@@ -209,23 +206,18 @@
            eventDetailsVO.setPics(picList);
            eventDetailsVO.setVideos(videoList);
            //查询事件流转记录
            List<EventTransferRecordDO> eventTransferRecordDOList = eventTransferRecordService.getBaseMapper()
                    .selectList(new LambdaQueryWrapper<EventTransferRecordDO>()
                            .eq(EventTransferRecordDO::getEventId, id)
                            .orderByAsc(EventTransferRecordDO::getCreateAt)
                    );
            List<EventTransferRecordDO> eventTransferRecordDOList =
                eventTransferRecordService.getBaseMapper().selectList(new LambdaQueryWrapper<EventTransferRecordDO>()
                    .eq(EventTransferRecordDO::getEventId, id).orderByAsc(EventTransferRecordDO::getCreateAt));
            List<EventTransferRecordVO> eventTransferRecordVOS = new ArrayList<>();
            for (EventTransferRecordDO eventTransferRecordDO : eventTransferRecordDOList) {
                EventTransferRecordVO eventTransferRecordVO = new EventTransferRecordVO();
                BeanUtils.copyProperties(eventTransferRecordDO, eventTransferRecordVO);
                List<EventResourceDO> eventTransferResourceDOList =
                        eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
                                .eq(EventResourceDO::getClassification, 3)
                                .eq(EventResourceDO::getRefId, eventTransferRecordDO.getId())
                        );
                List<EventResourceDO> eventTransferResourceDOList = eventResourceService.getBaseMapper()
                    .selectList(new LambdaQueryWrapper<EventResourceDO>().eq(EventResourceDO::getClassification, 3)
                        .eq(EventResourceDO::getRefId, eventTransferRecordDO.getId()));
                List<EventResourceVO> transferPicList = new ArrayList<>();
                List<EventResourceVO> transferAudioList = new ArrayList<>();
                List<EventResourceVO> transferVideoList = new ArrayList<>();
@@ -258,19 +250,23 @@
            //查询网格员头像,姓名
            Map<String,Object> gridMember = eventMapper.getUserBaseInfo(eventDO.getGridMemberId());
            if (!CollectionUtils.isEmpty(gridMember)) {
                eventDetailsVO.setGridMemberName(gridMember.get("nick_name") == null ? "" : gridMember.get("nick_name").toString());
                eventDetailsVO.setGridMemberImageUrl(gridMember.get("image_url") == null ? "" : gridMember.get("image_url").toString());
                eventDetailsVO.setGridMemberName(
                    gridMember.get("nick_name") == null ? "" : gridMember.get("nick_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("nick_name") == null ? "" : createUser.get("nick_name").toString());
                eventDetailsVO
                    .setCreator(createUser.get("nick_name") == null ? "" : createUser.get("nick_name").toString());
            }
            //当事件为特殊人群上报时,需要查询事件与人口关联关系
            if(eventDetailsVO.getEventType() != null && eventDetailsVO.getEventType().equals(6)){
                List<EventSpecialPopulationDetailsVO> specialPopulationList = eventSpecialCrowdRecordMapper.getSpecialPopulationIds(eventDetailsVO.getId());
                List<EventSpecialPopulationDetailsVO> specialPopulationList =
                    eventSpecialCrowdRecordMapper.getSpecialPopulationIds(eventDetailsVO.getId());
                if(!specialPopulationList.isEmpty()){
                    specialPopulationList.forEach(special -> {
                        special.setAge(IdcardUtil.getAgeByIdCard(special.getIdCard()));
@@ -345,7 +341,8 @@
                eventResourceDO.setRefId(eventDO.getId());
                eventResourceDO.setCreateBy(commonEventAddDTO.getUserId());
                eventResourceDO.setResourceTime(commonEventAddDTO.getAudioTime());
                eventResourceDO.setResourceName(commonEventAddDTO.getAudio().substring(commonEventAddDTO.getAudio().lastIndexOf("/")+1));
                eventResourceDO.setResourceName(
                    commonEventAddDTO.getAudio().substring(commonEventAddDTO.getAudio().lastIndexOf("/") + 1));
                int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
                if (audioAdd != 1) {
                    throw new ServiceException("添加音频失败");
@@ -360,7 +357,8 @@
                eventResourceDO.setRefId(eventDO.getId());
                eventResourceDO.setCreateBy(commonEventAddDTO.getUserId());
                eventResourceDO.setResourceTime(commonEventAddDTO.getVideoTime());
                eventResourceDO.setResourceName(commonEventAddDTO.getVideo().substring(commonEventAddDTO.getVideo().lastIndexOf("/")+1));
                eventResourceDO.setResourceName(
                    commonEventAddDTO.getVideo().substring(commonEventAddDTO.getVideo().lastIndexOf("/") + 1));
                int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
                if (videoAdd != 1) {
                    throw new ServiceException("添加视频失败");
@@ -483,7 +481,8 @@
        } 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);
@@ -495,10 +494,8 @@
            eventDO.setUpdateBy(commonEventEditDTO.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()));
                int deleted = eventResourceService.getBaseMapper().delete(new LambdaQueryWrapper<EventResourceDO>()
                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventDO.getId()));
                //添加音频
                if (StringUtils.isNotEmpty(commonEventEditDTO.getAudio())) {
                    EventResourceDO eventResourceDO = new EventResourceDO();
@@ -581,8 +578,9 @@
        if (updated != 1) {
            throw new ServiceException("更新突发事件状态更新失败");
        }
        addTransferRecord(eventDO.getId(), commonEventReportDTO.getToId(), comActVO.getName(), 2, commonEventReportDTO.getProcessResult(),
                commonEventReportDTO.getUserId(), commonEventReportDTO.getUserName(), 2);
        addTransferRecord(eventDO.getId(), commonEventReportDTO.getToId(), comActVO.getName(), 2,
            commonEventReportDTO.getProcessResult(), commonEventReportDTO.getUserId(),
            commonEventReportDTO.getUserName(), 2);
        return R.ok();
    }
@@ -610,8 +608,8 @@
        eventDO.setRevokeId(eventRevokeDTO.getRevokeId());
        int updated = this.getBaseMapper().updateById(eventDO);
        if (updated == 1) {
            addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(),
                    1, "撤销成功", eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 7);
            addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1, "撤销成功",
                eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 7);
            return R.ok();
        }
        return R.fail();
@@ -624,7 +622,8 @@
        if (eventDO == null) {
            return R.fail("事件不存在");
        }
        boolean canDealByUser = (eventDO.getEventStatus() == 2||eventDO.getEventStatus()==4) && eventDO.getEventProcessStatus() == 1;
        boolean canDealByUser =
            (eventDO.getEventStatus() == 2 || eventDO.getEventStatus() == 4) && eventDO.getEventProcessStatus() == 1;
        if (!canDealByUser) {
            if (eventDO.getEventStatus() != 2 ) {
                return R.fail("事件不是发布/待处理状态");
@@ -655,7 +654,8 @@
            processType = 1;
        }
        EventTransferRecordDO transferRecordDO =
                addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), 1, "网格员自处理完成", commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), processType);
            addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), 1,
                "网格员自处理完成", commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), processType);
        if (transferRecordDO != null && transferRecordDO.getId() != null) {
            //添加音频
            if (StringUtils.isNotEmpty(commonEventDealDTO.getAudio())) {
@@ -716,7 +716,6 @@
        }
    }
    @Override
    public R verifyEvent(CommonEventVerifyDTO commonEventVerifyDTO) {
        EventDO eventDO = this.getBaseMapper().selectById(commonEventVerifyDTO.getId());
@@ -735,8 +734,9 @@
        if (updated != 1) {
            return R.fail("更新事件状态失败");
        }
        addTransferRecord(eventDO.getId(), commonEventVerifyDTO.getUserId(), commonEventVerifyDTO.getUserName(), 1, commonEventVerifyDTO.getProcessResult(),
                commonEventVerifyDTO.getUserId(), commonEventVerifyDTO.getUserName(), 6);
        addTransferRecord(eventDO.getId(), commonEventVerifyDTO.getUserId(), commonEventVerifyDTO.getUserName(), 1,
            commonEventVerifyDTO.getProcessResult(), commonEventVerifyDTO.getUserId(),
            commonEventVerifyDTO.getUserName(), 6);
        return R.ok();
    }
@@ -762,8 +762,8 @@
        if (updated != 1) {
            return R.fail("更新事件状态失败");
        }
        addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1,
                "重新发布已撤销事件", commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 8);
        addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(),
            1, "重新发布已撤销事件", commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 8);
        return R.ok();
    }
@@ -792,7 +792,8 @@
    /**
     * 生成服务单号
     *
     * @param eventType 事件类型,宣传事件默认为20
     * @param eventType
     *            事件类型,宣传事件默认为20
     * @return
     */
    private String getEventOrderSn(Integer eventType) {
@@ -801,7 +802,8 @@
            eventType = 20;
        }
        String pre = String.format(simpleDateFormat.format(new Date()) + "%02d", eventType);
        Integer todayCount = this.getBaseMapper().selectCount(new LambdaQueryWrapper<EventDO>().likeRight(EventDO::getOrderSn, pre));
        Integer todayCount =
            this.getBaseMapper().selectCount(new LambdaQueryWrapper<EventDO>().likeRight(EventDO::getOrderSn, pre));
        String orderSn = String.format(pre + "%04d", todayCount + 1);
        return orderSn;
    }
@@ -884,10 +886,8 @@
            eventDO.setUpdateBy(specialEventEditDTO.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()));
                int deleted = eventResourceService.getBaseMapper().delete(new LambdaQueryWrapper<EventResourceDO>()
                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventDO.getId()));
                //添加音频
                if (StringUtils.isNotEmpty(specialEventEditDTO.getAudio())) {
                    EventResourceDO eventResourceDO = new EventResourceDO();
@@ -1172,7 +1172,8 @@
        } 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);
@@ -1184,10 +1185,8 @@
            eventDO.setUpdateBy(publicityEventEditDTO.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()));
                int deleted = eventResourceService.getBaseMapper().delete(new LambdaQueryWrapper<EventResourceDO>()
                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventDO.getId()));
                //添加音频
                if (StringUtils.isNotEmpty(publicityEventEditDTO.getAudio())) {
                    EventResourceDO eventResourceDO = new EventResourceDO();
@@ -1253,9 +1252,7 @@
            eventVOList.forEach(eventVO -> {
                List<EventResourceDO> eventResourceDOList =
                        eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
                                .eq(EventResourceDO::getClassification, 1)
                                .eq(EventResourceDO::getRefId, eventVO.getId())
                        );
                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
                List<EventResourceVO> picList = new ArrayList<>();
                List<EventResourceVO> audioList = new ArrayList<>();
                List<EventResourceVO> videoList = new ArrayList<>();
@@ -1314,9 +1311,7 @@
            eventVOList.forEach(eventVO -> {
                List<EventResourceDO> eventResourceDOList =
                        eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
                                .eq(EventResourceDO::getClassification, 1)
                                .eq(EventResourceDO::getRefId, eventVO.getId())
                        );
                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
                List<EventResourceVO> picList = new ArrayList<>();
                List<EventResourceVO> audioList = new ArrayList<>();
                List<EventResourceVO> videoList = new ArrayList<>();
@@ -1388,7 +1383,8 @@
        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);
            addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1, "标为无效",
                eventRevokeDTO.getCommunityId(), eventRevokeDTO.getCommunityName(), 4);
            return R.ok();
        }
        return R.fail();
@@ -1407,8 +1403,9 @@
        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);
            addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(),
                commonEventRepublishDTO.getUserName(), 1, "重新发布事件成功", commonEventRepublishDTO.getUserId(),
                commonEventRepublishDTO.getUserName(), 9);
            return R.ok();
        }
        return R.fail();
@@ -1425,10 +1422,9 @@
            return R.fail("事件当前不是上报状态");
        }
        List<EventTransferRecordDO> list = eventTransferRecordService.getBaseMapper().selectList(new LambdaQueryWrapper<EventTransferRecordDO>()
                .eq(EventTransferRecordDO::getEventId, eventDO.getId())
                .orderByDesc(EventTransferRecordDO::getCreateAt)
        );
        List<EventTransferRecordDO> list = eventTransferRecordService.getBaseMapper().selectList(
            new LambdaQueryWrapper<EventTransferRecordDO>().eq(EventTransferRecordDO::getEventId, eventDO.getId())
                .orderByDesc(EventTransferRecordDO::getCreateAt));
        Long reportToInDB = -1L;
        for (int i = 0; i < list.size(); i++) {
@@ -1537,9 +1533,7 @@
            eventVOList.forEach(eventVO -> {
                List<EventResourceDO> eventResourceDOList =
                        eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
                                .eq(EventResourceDO::getClassification, 1)
                                .eq(EventResourceDO::getRefId, eventVO.getId())
                        );
                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
                List<EventResourceVO> picList = new ArrayList<>();
                List<EventResourceVO> audioList = new ArrayList<>();
                List<EventResourceVO> videoList = new ArrayList<>();
@@ -1574,9 +1568,12 @@
    /**
     * 添加发布事件流转记录
     *
     * @param eventId  事件ID
     * @param userId   操作用户ID
     * @param userName 操作用户姓名
     * @param eventId
     *            事件ID
     * @param userId
     *            操作用户ID
     * @param userName
     *            操作用户姓名
     * @return 添加成功返回true, 否则返回false
     */
    private EventTransferRecordDO addReleaseRecord(Long eventId, Long userId, String userName) {
@@ -1599,22 +1596,26 @@
        return eventTransferRecordDO;
    }
    /**
     * 查询最后的流转记录,并添加事件流转记录
     *
     * @param eventId 事件ID
     * @param toId    流转到 ID
     * @param toName  流转到 名称
     * @param toType  发送类型
     * @param msg     流转消息
     * @param eventId
     *            事件ID
     * @param toId
     *            流转到 ID
     * @param toName
     *            流转到 名称
     * @param toType
     *            发送类型
     * @param msg
     *            流转消息
     * @return
     */
    private EventTransferRecordDO addTransferRecord(Long eventId, Long toId, String toName, Integer toType, String msg, Long processBy, String processByName, Integer processType) {
        List<EventTransferRecordDO> list = eventTransferRecordService.getBaseMapper().selectList(new LambdaQueryWrapper<EventTransferRecordDO>()
                .eq(EventTransferRecordDO::getEventId, eventId)
                .orderByDesc(EventTransferRecordDO::getCreateAt)
        );
    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));
        EventTransferRecordDO eventTransferRecordDO = new EventTransferRecordDO();
        if (list != null && list.size() > 0) {
            EventTransferRecordDO lastRecord = list.get(0);
@@ -1640,14 +1641,19 @@
        }
    }
    /**
     * 查询最后的流转记录,并添加事件流转记录
     * @param eventId 事件ID
     * @param toId 流转到 ID
     * @param toName 流转到 名称
     * @param toType 发送类型
     * @param msg 流转消息
     *
     * @param eventId
     *            事件ID
     * @param toId
     *            流转到 ID
     * @param toName
     *            流转到 名称
     * @param toType
     *            发送类型
     * @param msg
     *            流转消息
     * @return
     */
   /* private EventTransferRecordDO addTransferRecord(Long eventId, Long toId, String toName, Integer toType, String msg,Integer processType){
@@ -1657,7 +1663,8 @@
    /**
     * 根据子状态 查询用户事件处理状态
     *
     * @param eventId 事件ID
     * @param eventId
     *            事件ID
     */
    private EventDO updateEventDealStatus(Long eventId) {
        EventDO eventDO = this.getBaseMapper().selectById(eventId);
@@ -1674,14 +1681,16 @@
    /**
     * 根据子状态 查询用户事件处理状态
     *
     * @param eventDO 事件
     * @param eventDO
     *            事件
     */
    private Integer getEventDealStatus(EventDO eventDO) {
        //1 待处理、2 待验证、3 已上报、4 已解决、5 草稿箱、6已撤销、7已失效、8已发布
        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 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;
@@ -1732,7 +1741,8 @@
    /**
     * 后台管理-统计模块
     *
     * @param communityId 社区id
     * @param communityId
     *            社区id
     * @return 统计信息
     */
    @Override
@@ -1743,12 +1753,14 @@
    /**
     * 后台管理-网格员统计
     *
     * @param statisticsAdminDTO 请求参数
     * @param statisticsAdminDTO
     *            请求参数
     * @return 网格员统计信息
     */
    @Override
    public R gridMemberStatistics(MemberStatisticsAdminDTO statisticsAdminDTO) {
        return R.ok(eventGridMemberRelationMapper.gridMemberStatistics(new Page(statisticsAdminDTO.getPageNum(), statisticsAdminDTO.getPageSize()), statisticsAdminDTO));
        return R.ok(eventGridMemberRelationMapper.gridMemberStatistics(
            new Page(statisticsAdminDTO.getPageNum(), statisticsAdminDTO.getPageSize()), statisticsAdminDTO));
    }
    @Override
@@ -1762,12 +1774,11 @@
//        if(!latLng.matches("[1-9][0-9](\\.[0-9]{1,6})?,[1-9][0-9]{2}(\\.[0-9]{1,6})?")){
//            return R.fail("经纬度参数错误");
//        }
        String latLngArr[] = latLng.split(",");
        String[] latLngArr = latLng.split(",");
        try {
            Double lat = Double.valueOf(latLngArr[1]);
            Double lng = Double.valueOf(latLngArr[0]);
            List<EventGridDataAreaVO> gridList =
                    eventGridDataMapper.selectGridWithArea(page, pageEventGridNearbyDTO);
            List<EventGridDataAreaVO> gridList = eventGridDataMapper.selectGridWithArea(page, pageEventGridNearbyDTO);
            if (gridList != null && gridList.size() > 0) {
                List<EventGridDataVO> rtEventGridList = new ArrayList<>();
                for (EventGridDataAreaVO eventGridDataDO : gridList) {
@@ -1805,8 +1816,11 @@
                    if (eventDO == null) {
                        throw new ServiceException("id为" + id + "的事件不存在");
                    }
                    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(userId);
                        int updated = this.getBaseMapper().updateById(eventDO);
@@ -1843,8 +1857,8 @@
                if (eventDO == null) {
                    throw new ServiceException("id为" + id + "的事件不存在");
                }
                boolean canRepublishByUser = eventDO.getEventDealStatus() != null &&
                        (eventDO.getEventDealStatus() == 5 || eventDO.getEventDealStatus() == 6);
                boolean canRepublishByUser = eventDO.getEventDealStatus() != null
                    && (eventDO.getEventDealStatus() == 5 || eventDO.getEventDealStatus() == 6);
                if (!canRepublishByUser) {
                    throw new ServiceException("当前不是撤销/草稿状态");
                }
@@ -1856,8 +1870,7 @@
                if (updated != 1) {
                    throw new ServiceException("更新事件状态失败");
                }
                addTransferRecord(eventDO.getId(), userId, userName, 1,
                            "重新发布已撤销事件", userId, userName, 8);
                addTransferRecord(eventDO.getId(), userId, userName, 1, "重新发布已撤销事件", userId, userName, 8);
            }
            return R.ok();
        } else {
@@ -1923,7 +1936,9 @@
    /**
     * 根据网格id查询网格统计数据
     * @param gridId    网格id
     *
     * @param gridId
     *            网格id
     * @return  网格统计数据
     */
    @Override
@@ -1951,12 +1966,15 @@
    /**
     * 查询网格事件统计数据
     * @param statisticsDTO 请求参数
     *
     * @param statisticsDTO
     *            请求参数
     * @return  网格事件统计数据
     */
    @Override
    public R getGridEventDetailStatisticsByApp(GridEventStatisticsDTO statisticsDTO){
        GridEventStatisticsDetailVO statisticsDetailVO = this.baseMapper.getGridEventDetailStatisticsByApp(statisticsDTO);
        GridEventStatisticsDetailVO statisticsDetailVO =
            this.baseMapper.getGridEventDetailStatisticsByApp(statisticsDTO);
        if(statisticsDetailVO == null){
            statisticsDetailVO = new GridEventStatisticsDetailVO();
        }
@@ -1979,19 +1997,24 @@
        if(gridDataDO != null){
            Map<String,Long> sspCountMap = this.baseMapper.getSSPEventTotal(gridDataDO.getGridCommunityId());
            if(!sspCountMap.isEmpty()){
                statisticsDetailVO.setEventSSPTotal(sspCountMap.get("eventSSPTotal")!=null?sspCountMap.get("eventSSPTotal").intValue():0);
                statisticsDetailVO.setNoEventSSPTotal(sspCountMap.get("noEventSSPTotal")!=null?sspCountMap.get("noEventSSPTotal").intValue():0);
                statisticsDetailVO.setEventSSPTotal(
                    sspCountMap.get("eventSSPTotal") != null ? sspCountMap.get("eventSSPTotal").intValue() : 0);
                statisticsDetailVO.setNoEventSSPTotal(
                    sspCountMap.get("noEventSSPTotal") != null ? sspCountMap.get("noEventSSPTotal").intValue() : 0);
            }
        }
        //统计数据
        Integer sum = statisticsDetailVO.getEventTFTotal() + statisticsDetailVO.getEventMDTotal() + statisticsDetailVO.getEventZATotal()
                + statisticsDetailVO.getEventBWDTotal() + statisticsDetailVO.getEventTSTotal() + statisticsDetailVO.getEventGGTotal()
                + statisticsDetailVO.getEventXCTotal() + statisticsDetailVO.getEventSSPTotal() + statisticsDetailVO.getEventZFTotal();
        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()
        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);
@@ -2004,7 +2027,8 @@
        if(commonEventDirectReportDTO.getEventId()!=null){
            //编辑原来的
            EventDO eventDO = eventMapper.selectById(commonEventDirectReportDTO.getEventId());
            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(commonEventDirectReportDTO, eventDO);
@@ -2015,10 +2039,8 @@
            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()));
                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();
@@ -2083,8 +2105,9 @@
                if (updated != 1) {
                    throw new ServiceException("事件状态更新失败");
                }
                addTransferRecord(eventDO.getId(), commonEventDirectReportDTO.getToId(), comActVO.getName(), 2, commonEventDirectReportDTO.getProcessResult(),
                        commonEventDirectReportDTO.getUserId(), commonEventDirectReportDTO.getUserName(), 2);
                addTransferRecord(eventDO.getId(), commonEventDirectReportDTO.getToId(), comActVO.getName(), 2,
                    commonEventDirectReportDTO.getProcessResult(), commonEventDirectReportDTO.getUserId(),
                    commonEventDirectReportDTO.getUserName(), 2);
                return R.ok();
            }
@@ -2151,7 +2174,8 @@
                        }
                    }
                }
                addReleaseRecord(eventDO.getId(), commonEventDirectReportDTO.getUserId(), commonEventDirectReportDTO.getUserName());
                addReleaseRecord(eventDO.getId(), commonEventDirectReportDTO.getUserId(),
                    commonEventDirectReportDTO.getUserName());
                R r = communityService.detailCommunity(commonEventDirectReportDTO.getToId());
                if (!R.isOk(r)) {
@@ -2172,8 +2196,9 @@
                if (updated != 1) {
                    throw new ServiceException("更新突发事件状态更新失败");
                }
                addTransferRecord(eventDO.getId(), commonEventDirectReportDTO.getToId(), comActVO.getName(), 2, commonEventDirectReportDTO.getProcessResult(),
                        commonEventDirectReportDTO.getUserId(), commonEventDirectReportDTO.getUserName(), 2);
                addTransferRecord(eventDO.getId(), commonEventDirectReportDTO.getToId(), comActVO.getName(), 2,
                    commonEventDirectReportDTO.getProcessResult(), commonEventDirectReportDTO.getUserId(),
                    commonEventDirectReportDTO.getUserName(), 2);
                return R.ok(eventDO.getId());
            }
        }
@@ -2183,7 +2208,9 @@
    /**
     * 事件大屏查询事件列表
     * @param eventListDTO  请求参数
     *
     * @param eventListDTO
     *            请求参数
     * @return  事件列表
     */
    @Override
@@ -2196,15 +2223,14 @@
            });
        }
        IPage<EventListVO> eventPageList = this.baseMapper.getScreenEventList(new Page(eventListDTO.getPageNum(), eventListDTO.getPageSize()), eventListDTO);
        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())
                        );
                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, event.getId()));
                List<EventResourceVO> picList = new ArrayList<>();
                List<EventResourceVO> audioList = new ArrayList<>();
                List<EventResourceVO> videoList = new ArrayList<>();
@@ -2237,12 +2263,15 @@
    /**
     * 特殊人群上报-社区人口数据列表
     * @param specialPopulationDTO   请求参数
     *
     * @param specialPopulationDTO
     *            请求参数
     * @return  社区人口数据列表
     */
    @Override
    public R specialPopulationList(PageEventSpecialPopulationDTO specialPopulationDTO) {
        IPage<EventSpecialPopulationVO> specialPopulationVOIPage = this.baseMapper.specialPopulationList(new Page(specialPopulationDTO.getPageNum(), specialPopulationDTO.getPageSize()), specialPopulationDTO);
        IPage<EventSpecialPopulationVO> specialPopulationVOIPage = this.baseMapper.specialPopulationList(
            new Page(specialPopulationDTO.getPageNum(), specialPopulationDTO.getPageSize()), specialPopulationDTO);
        if(!specialPopulationVOIPage.getRecords().isEmpty()){
            specialPopulationVOIPage.getRecords().forEach(specialPopulation -> {
                try {
@@ -2259,11 +2288,8 @@
    @Override
    public List<EventDetailsVO> getUnUploadEvent() {
        List<EventDetailsVO> eventDetailsVOList =new ArrayList<>();
        List<EventDO> unEventList = baseMapper.selectList(
                new QueryWrapper<EventDO>()
                        .eq("upload", false)
                        .eq("event_process_status", 2)
        );
        List<EventDO> unEventList =
            baseMapper.selectList(new QueryWrapper<EventDO>().eq("upload", false).eq("event_process_status", 2));
        unEventList.forEach(eventDO -> {
            eventDetailsVOList.add(eventDetails(eventDO.getId()).getData());
        });
@@ -2278,12 +2304,8 @@
        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;
        int flag = eventResourceMapper.update(eventResourceDO, new QueryWrapper<EventResourceDO>().eq("ref_id", id));
        return flag > 0;
    }
    @Override
@@ -2292,9 +2314,12 @@
        String date = DateUtils.getDateFormatString(new Date(),moth_format_str);
        Map<String,Long> countMap = this.eventMapper.countByCommunityId(communityId,date);
        if(!countMap.isEmpty()){
            workScreenVO.setResolvedNum(countMap.get("resolvedNum")== null ? 0L : Long.valueOf(countMap.get("resolvedNum").toString()));
            workScreenVO.setPendingNum(countMap.get("pendingNum")== null ? 0L : Long.valueOf(countMap.get("pendingNum").toString()));
            workScreenVO.setPropagandaNum(countMap.get("propagandaNum")== null ? 13L : Long.valueOf(countMap.get("propagandaNum").toString()));
            workScreenVO.setResolvedNum(
                countMap.get("resolvedNum") == null ? 0L : Long.valueOf(countMap.get("resolvedNum").toString()));
            workScreenVO.setPendingNum(
                countMap.get("pendingNum") == null ? 0L : Long.valueOf(countMap.get("pendingNum").toString()));
            workScreenVO.setPropagandaNum(
                countMap.get("propagandaNum") == null ? 13L : Long.valueOf(countMap.get("propagandaNum").toString()));
            workScreenVO.setCurrentNum(countMap.get("sspCurrentNum") + countMap.get("currentNum"));
        }
@@ -2316,7 +2341,8 @@
        //统计近半年数据
        List<EventWorkVO> list = new ArrayList<>();
        for(EventWorkVO eventWorkVO: listHalfYearByDyn()){
            EventWorkVO result = this.eventMapper.countByTime(eventWorkVO.getStart(),eventWorkVO.getEnd(),communityId);
            EventWorkVO result =
                this.eventMapper.countByTime(eventWorkVO.getStart(), eventWorkVO.getEnd(), communityId);
            result.setEventTotal(result.getEventTotal() + result.getSspTotal());
            result.setEventAdd(result.getEventAdd() + result.getSspAdd());
            result.setEventSolve(result.getEventSolve() + result.getSspSolve());
@@ -2369,7 +2395,9 @@
    /**
     * 绘制多边形统计数据
     * @param eventListDTO  请求参数
     *
     * @param eventListDTO
     *            请求参数
     * @return  统计数据
     */
    @Override
@@ -2385,7 +2413,8 @@
        //返回人口统计
        ScreenDrawEventPopulationTotalVO drawEventPopulationTotalVO = new ScreenDrawEventPopulationTotalVO();
        //查询所有事件
        List<EventGridIncidentStatisticsVO> gridIncidentList = this.baseMapper.getEventListByCommunityId(eventListDTO.getCommunityId());
        List<EventGridIncidentStatisticsVO> gridIncidentList =
            this.baseMapper.getEventListByCommunityId(eventListDTO.getCommunityId());
        if(!gridIncidentList.isEmpty()){
            gridIncidentList.forEach(gridIncident -> {
                //拆分事件经纬度
@@ -2403,7 +2432,8 @@
                //判断绘制的图形类型
                if(eventListDTO.getType().equals(ScreenDrawEventListDTO.type.yx)){
                    //判断这个点是否在圆形范围内
                    if(GisPointUtil.isInCircle(eventListDTO.getCenterLng(),eventListDTO.getCenterLat(),lng,lat,eventListDTO.getRadius())){
                    if (GisPointUtil.isInCircle(eventListDTO.getCenterLng(), eventListDTO.getCenterLat(), lng, lat,
                        eventListDTO.getRadius())) {
                        if(eventResultList.size() <= eventListDTO.getCount()){
                            eventResultList.add(gridIncident);
                        }
@@ -2411,43 +2441,50 @@
                            case 1:
                                leftDownStatisticsVO.setEventZATotal(leftDownStatisticsVO.getEventZATotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventZATotal(leftDownStatisticsVO.getYesEventZATotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventZATotal(leftDownStatisticsVO.getYesEventZATotal() + 1);
                                }
                                break;
                            case 2:
                                leftDownStatisticsVO.setEventGGTotal(leftDownStatisticsVO.getEventGGTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventGGTotal(leftDownStatisticsVO.getYesEventGGTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventGGTotal(leftDownStatisticsVO.getYesEventGGTotal() + 1);
                                }
                                break;
                            case 3:
                                leftDownStatisticsVO.setEventMDTotal(leftDownStatisticsVO.getEventMDTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventMDTotal(leftDownStatisticsVO.getYesEventMDTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventMDTotal(leftDownStatisticsVO.getYesEventMDTotal() + 1);
                                }
                                break;
                            case 4:
                                leftDownStatisticsVO.setEventBWDTotal(leftDownStatisticsVO.getEventBWDTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventBWDTotal(leftDownStatisticsVO.getYesEventBWDTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventBWDTotal(leftDownStatisticsVO.getYesEventBWDTotal() + 1);
                                }
                                break;
                            case 5:
                                leftDownStatisticsVO.setEventTFTotal(leftDownStatisticsVO.getEventTFTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventTFTotal(leftDownStatisticsVO.getYesEventTFTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventTFTotal(leftDownStatisticsVO.getYesEventTFTotal() + 1);
                                }
                                break;
                            case 6:
                                leftDownStatisticsVO.setEventTSTotal(leftDownStatisticsVO.getEventTSTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventTSTotal(leftDownStatisticsVO.getYesEventTSTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventTSTotal(leftDownStatisticsVO.getYesEventTSTotal() + 1);
                                }
                                break;
                            case 7:
                                leftDownStatisticsVO.setEventSSPTotal(leftDownStatisticsVO.getEventSSPTotal() + 1);
                                if(gridIncident.getStatus().equals(2)){
                                    leftDownStatisticsVO.setYesEventSSPTotal(leftDownStatisticsVO.getYesEventSSPTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventSSPTotal(leftDownStatisticsVO.getYesEventSSPTotal() + 1);
                                }
                                break;
                            default:
@@ -2463,43 +2500,50 @@
                            case 1:
                                leftDownStatisticsVO.setEventZATotal(leftDownStatisticsVO.getEventZATotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventZATotal(leftDownStatisticsVO.getYesEventZATotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventZATotal(leftDownStatisticsVO.getYesEventZATotal() + 1);
                                }
                                break;
                            case 2:
                                leftDownStatisticsVO.setEventGGTotal(leftDownStatisticsVO.getEventGGTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventGGTotal(leftDownStatisticsVO.getYesEventGGTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventGGTotal(leftDownStatisticsVO.getYesEventGGTotal() + 1);
                                }
                                break;
                            case 3:
                                leftDownStatisticsVO.setEventMDTotal(leftDownStatisticsVO.getEventMDTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventMDTotal(leftDownStatisticsVO.getYesEventMDTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventMDTotal(leftDownStatisticsVO.getYesEventMDTotal() + 1);
                                }
                                break;
                            case 4:
                                leftDownStatisticsVO.setEventBWDTotal(leftDownStatisticsVO.getEventBWDTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventBWDTotal(leftDownStatisticsVO.getYesEventBWDTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventBWDTotal(leftDownStatisticsVO.getYesEventBWDTotal() + 1);
                                }
                                break;
                            case 5:
                                leftDownStatisticsVO.setEventTFTotal(leftDownStatisticsVO.getEventTFTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventTFTotal(leftDownStatisticsVO.getYesEventTFTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventTFTotal(leftDownStatisticsVO.getYesEventTFTotal() + 1);
                                }
                                break;
                            case 6:
                                leftDownStatisticsVO.setEventTSTotal(leftDownStatisticsVO.getEventTSTotal() + 1);
                                if(gridIncident.getStatus().equals(4)){
                                    leftDownStatisticsVO.setYesEventTSTotal(leftDownStatisticsVO.getYesEventTSTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventTSTotal(leftDownStatisticsVO.getYesEventTSTotal() + 1);
                                }
                                break;
                            case 7:
                                leftDownStatisticsVO.setEventSSPTotal(leftDownStatisticsVO.getEventSSPTotal() + 1);
                                if(gridIncident.getStatus().equals(2)){
                                    leftDownStatisticsVO.setYesEventSSPTotal(leftDownStatisticsVO.getYesEventSSPTotal() + 1);
                                    leftDownStatisticsVO
                                        .setYesEventSSPTotal(leftDownStatisticsVO.getYesEventSSPTotal() + 1);
                                }
                                break;
                            default:
@@ -2513,35 +2557,55 @@
        drawEventVO.setLeftDownStatisticsVO(leftDownStatisticsVO);
        //查询所有小区
        List<CivilVillageStatisticsVO> villageStatisticsList = this.baseMapper.getCivilScreenVillageList(eventListDTO.getCommunityId());
        List<CivilVillageStatisticsVO> villageStatisticsList =
            this.baseMapper.getCivilScreenVillageList(eventListDTO.getCommunityId());
        if(!villageStatisticsList.isEmpty()){
            villageStatisticsList.forEach(village -> {
                //判断绘制的图形类型
                if(eventListDTO.getType().equals(ScreenDrawEventListDTO.type.yx)){
                    //判断这个点是否在圆形范围内
                    if(GisPointUtil.isInCircle(eventListDTO.getCenterLng(),eventListDTO.getCenterLat(),Double.parseDouble(village.getLng()),Double.parseDouble(village.getLat()),eventListDTO.getRadius())){
                    if (GisPointUtil.isInCircle(eventListDTO.getCenterLng(), eventListDTO.getCenterLat(),
                        Double.parseDouble(village.getLng()), Double.parseDouble(village.getLat()),
                        eventListDTO.getRadius())) {
                        villageResultList.add(village);
                        ScreenDrawEventPopulationTotalVO populationTotalVO = this.baseMapper.getVillagePopulationTotal(village.getVillageId());
                        ScreenDrawEventPopulationTotalVO populationTotalVO =
                            this.baseMapper.getVillagePopulationTotal(village.getVillageId());
                        if(populationTotalVO != null){
                            drawEventPopulationTotalVO.setVillageTotal(drawEventPopulationTotalVO.getVillageTotal() + 1);
                            drawEventPopulationTotalVO.setPopulationTotal(drawEventPopulationTotalVO.getPopulationTotal() + populationTotalVO.getPopulationTotal());
                            drawEventPopulationTotalVO.setLocalTotal(drawEventPopulationTotalVO.getLocalTotal() + populationTotalVO.getLocalTotal());
                            drawEventPopulationTotalVO.setOutTotal(drawEventPopulationTotalVO.getOutTotal() + populationTotalVO.getOutTotal());
                            drawEventPopulationTotalVO.setSpecialTotal(drawEventPopulationTotalVO.getSpecialTotal() + populationTotalVO.getSpecialTotal());
                            drawEventPopulationTotalVO.setBuildTotal(drawEventPopulationTotalVO.getBuildTotal() + populationTotalVO.getBuildTotal());
                            drawEventPopulationTotalVO
                                .setVillageTotal(drawEventPopulationTotalVO.getVillageTotal() + 1);
                            drawEventPopulationTotalVO
                                .setPopulationTotal(drawEventPopulationTotalVO.getPopulationTotal()
                                    + populationTotalVO.getPopulationTotal());
                            drawEventPopulationTotalVO.setLocalTotal(
                                drawEventPopulationTotalVO.getLocalTotal() + populationTotalVO.getLocalTotal());
                            drawEventPopulationTotalVO.setOutTotal(
                                drawEventPopulationTotalVO.getOutTotal() + populationTotalVO.getOutTotal());
                            drawEventPopulationTotalVO.setSpecialTotal(
                                drawEventPopulationTotalVO.getSpecialTotal() + populationTotalVO.getSpecialTotal());
                            drawEventPopulationTotalVO.setBuildTotal(
                                drawEventPopulationTotalVO.getBuildTotal() + populationTotalVO.getBuildTotal());
                        }
                    }
                }else {//多边形类型
                    if(GisPointUtil.isInPolygon(Double.parseDouble(village.getLng()),Double.parseDouble(village.getLat()),eventListDTO.getLngLatList())){
                    if (GisPointUtil.isInPolygon(Double.parseDouble(village.getLng()),
                        Double.parseDouble(village.getLat()), eventListDTO.getLngLatList())) {
                        villageResultList.add(village);
                        ScreenDrawEventPopulationTotalVO populationTotalVO = this.baseMapper.getVillagePopulationTotal(village.getVillageId());
                        ScreenDrawEventPopulationTotalVO populationTotalVO =
                            this.baseMapper.getVillagePopulationTotal(village.getVillageId());
                        if(populationTotalVO != null){
                            drawEventPopulationTotalVO.setVillageTotal(drawEventPopulationTotalVO.getVillageTotal() + 1);
                            drawEventPopulationTotalVO.setPopulationTotal(drawEventPopulationTotalVO.getPopulationTotal() + populationTotalVO.getPopulationTotal());
                            drawEventPopulationTotalVO.setLocalTotal(drawEventPopulationTotalVO.getLocalTotal() + populationTotalVO.getLocalTotal());
                            drawEventPopulationTotalVO.setOutTotal(drawEventPopulationTotalVO.getOutTotal() + populationTotalVO.getOutTotal());
                            drawEventPopulationTotalVO.setSpecialTotal(drawEventPopulationTotalVO.getSpecialTotal() + populationTotalVO.getSpecialTotal());
                            drawEventPopulationTotalVO.setBuildTotal(drawEventPopulationTotalVO.getBuildTotal() + populationTotalVO.getBuildTotal());
                            drawEventPopulationTotalVO
                                .setVillageTotal(drawEventPopulationTotalVO.getVillageTotal() + 1);
                            drawEventPopulationTotalVO
                                .setPopulationTotal(drawEventPopulationTotalVO.getPopulationTotal()
                                    + populationTotalVO.getPopulationTotal());
                            drawEventPopulationTotalVO.setLocalTotal(
                                drawEventPopulationTotalVO.getLocalTotal() + populationTotalVO.getLocalTotal());
                            drawEventPopulationTotalVO.setOutTotal(
                                drawEventPopulationTotalVO.getOutTotal() + populationTotalVO.getOutTotal());
                            drawEventPopulationTotalVO.setSpecialTotal(
                                drawEventPopulationTotalVO.getSpecialTotal() + populationTotalVO.getSpecialTotal());
                            drawEventPopulationTotalVO.setBuildTotal(
                                drawEventPopulationTotalVO.getBuildTotal() + populationTotalVO.getBuildTotal());
                        }
                    }
                }
@@ -2555,7 +2619,9 @@
    /**
     * 大屏-根据小区id查询小区统计人数
     * @param villageId 小区id
     *
     * @param villageId
     *            小区id
     * @return  小区统计数据
     */
    @Override
@@ -2567,7 +2633,9 @@
    /**
     * 查询所有网格员工作汇总数据
     * @param statisticsAdminDTO    请求参数
     *
     * @param statisticsAdminDTO
     *            请求参数
     * @return  网格员工作汇总数据
     */
    @Override