From f4925db559734b543a1d3fdb0dea8da3b395b4a9 Mon Sep 17 00:00:00 2001
From: CeDo <cedoogle@gmail.com>
Date: 星期一, 07 六月 2021 19:46:50 +0800
Subject: [PATCH] bugfixed

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java |  133 ++++++++++++++++++++++
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java                     |   16 ++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java                   |    9 +
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java  |  184 ++++++++++++++++++++++++++++++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java                   |    8 +
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java           |    7 +
 6 files changed, 357 insertions(+), 0 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java
new file mode 100644
index 0000000..c5dc308
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java
@@ -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;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
index f224067..2e8c650 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
+++ b/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);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java
index d646f8f..bf5bd82 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java
+++ b/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);
+    }
+
 
 
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java
index 76f567e..64843fa 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java
+++ b/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);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java
index a1220de..f7e5ac4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java
+++ b/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);
 }
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..c1a6072 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
@@ -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();
+    }
 }

--
Gitblit v1.7.1