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