CeDo
2021-06-07 f4925db559734b543a1d3fdb0dea8da3b395b4a9
bugfixed
5个文件已修改
1个文件已添加
357 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java
New file
@@ -0,0 +1,133 @@
package com.panzhihua.common.model.dtos.grid;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
 * 上报社区表单
 *
 * @author cedoo email:cedoo(a)qq.com
 * @version 1.0
 * @since 1.0
 * @date 2021-05-26
 * */
@Data
@ApiModel("上报社区请求参数")
public class CommonEventDirectReportDTO {
    @Max(9223372036854775807L)
    @ApiModelProperty(value = "事件ID", hidden = false, example = "1",required = true)
    @NotNull(message = "事件ID不能为空")
    private Long eventId;
    @Length(max=255)
    @ApiModelProperty(value = "办理意见", hidden = false, example = "",required = true)
    @NotNull(message = "办理意见不能为空")
    private String processResult;
    //事件下游机构或网格员
    @Max(9223372036854775807L)
    @ApiModelProperty(value = "社区ID", hidden = false, example = "1",required = true)
    @NotNull(message = "社区ID不能为空")
    private Long toId;
    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
    private Long userId;
    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
    private String userName;
    @ApiModelProperty(value = "(当前操作)用户社区ID", hidden = true, example = "1")
    private Long communityId;
    @Max(127)
    @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件", hidden = false, example = "1", required = true)
    @NotNull(message = "事件分类不能为空")
    private Integer eventType;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "发生时间", hidden = false, example = "2021-05-01 18:05:50", required = true)
    @NotNull(message = "发生时间不能为空")
    private Date happenTime;
    @Length(max=255)
    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "41.40338,2.17403", required = true)
    @NotNull(message = "发生的精度纬度信息不能为空")
    private String happentLatLng;
    @Length(max=255)
    @ApiModelProperty(value = "发生地点-位置备注", hidden = false, example = "")
    private String happentAddress;
    @Length(max=255)
    @ApiModelProperty(value = "事件发生地点", hidden = false, example = "", required = true)
    private String happenAddress;
    @Max(9223372036854775807L)
    @ApiModelProperty(value = "发生区域-网格ID", hidden = false, example = "1", required = true)
    @NotNull(message = "发生区域-网格ID不能为空")
    private Long gridId;
    @Length(max=500)
    @ApiModelProperty(value = "事件描述", hidden = false, example = "", required = true)
    @NotNull(message = "事件描述不能为空")
    private String eventDes;
    @Length(max=255)
    @ApiModelProperty(value = "事件类型,逗号隔开", hidden = false, example = "邻里纠纷,土地承包租赁", required = true)
    @NotNull(message = "事件类型不能为空")
    private String eventClazz;
    @Max(127)
    @ApiModelProperty(value = "危险级别:1(特别重大)、2(重大)、3(较大)、4(一般)", hidden = false, example = "1", required = true)
    @NotNull(message = "危险级别不能为空")
    private Integer dangerLevel;
    @Max(9999999999L)
    @ApiModelProperty(value = "死亡人数", hidden = false, example = "1", required = true)
    @NotNull(message = "死亡人数不能为空")
    private Integer deathsNumber;
    @Max(9999999999L)
    @ApiModelProperty(value = "受伤人数", hidden = false, example = "1", required = true)
    @NotNull(message = "受伤人数不能为空")
    private Integer injuriesNumber;
    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true", required = true)
    @NotNull(message = "是否紧急不能为空")
    private Boolean urgent;
    @ApiModelProperty(value = "是否重大", hidden = false, example = "true", required = true)
    @NotNull(message = "是否重大不能为空")
    private Boolean major;
    @ApiModelProperty(value = "音频(限1个)", hidden = false, example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
    private String audio;
    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
    private Integer audioTime;
    @ApiModelProperty(value = "视频(限1个)", hidden = false, example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
    private String video;
    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
    private Integer videoTime;
    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
            example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
    private String pics;
    @ApiModelProperty(value = "(当前操作)用户电话", hidden = true, example = "18888888888")
    @Length(max = 11)
    private String phone;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
@@ -877,4 +877,12 @@
     */
    @PostMapping("/eventgridmembergpslog/add")
    R gridReportPosition(@RequestBody GridMemberPositionDTO memberPositionDTO);
    /**
     * 直接上报社区
     * @param commonEventDirectReportDTO
     * @return
     */
    @PostMapping("/event/reportDirect")
    R reportDirect(@RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO);
}
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java
@@ -149,6 +149,22 @@
    }
    /**
     * 直接上报社区
     * @param commonEventDirectReportDTO 上报社区传递对象
     * @return 上报结果
     */
    @PostMapping("/reportDirect")
    @ApiOperation(value = "直接上报社区", response = R.class)
    R reportDirect(@Validated @RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO){
        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
        ClazzUtils.setIfStringIsEmpty(commonEventDirectReportDTO);
        commonEventDirectReportDTO.setUserId(loginUserInfoVO.getUserId());
        commonEventDirectReportDTO.setUserName(loginUserInfoVO.getNickName());
        commonEventDirectReportDTO.setCommunityId(loginUserInfoVO.getCommunityId());
        return gridService.reportDirect(commonEventDirectReportDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java
@@ -293,4 +293,13 @@
        return eventService.getNearByGrid(pageEventGridNearbyDTO);
    }
    /**
     * 直接上报社区
     * @param commonEventDirectReportDTO
     * @return
     */
    @PostMapping("/event/reportDirect")
    R reportDirect(@RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO){
        return eventService.reportDirect(commonEventDirectReportDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java
@@ -233,4 +233,11 @@
     * @return  网格事件统计数据
     */
    R getGridEventDetailStatisticsByApp(GridEventStatisticsDTO statisticsDTO);
    /**
     * 直接上报社区
     * @param commonEventDirectReportDTO
     * @return
     */
    R reportDirect(CommonEventDirectReportDTO commonEventDirectReportDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
@@ -1836,4 +1836,188 @@
        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(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();
            }
        }
        return R.fail();
    }
}