springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventAddDTO.java
@@ -47,12 +47,12 @@ @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=255) @ApiModelProperty(value = "事件描述", hidden = false, example = "", required = true) @NotNull(message = "事件描述不能为空") springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventCommunityAddDTO.java
New file @@ -0,0 +1,31 @@ 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 CommonEventCommunityAddDTO extends CommonEventAddDTO { @ApiModelProperty(value = "网格员ID", hidden = false, example = "1", required = true) @NotNull(message = "网格员不能为空") private Long gridMemberId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDealDTO.java
@@ -49,9 +49,18 @@ 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 = false, example = "true") private Boolean needVerify; @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1") private Long userId; @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三") private String userName; @ApiModelProperty(value = "(当前操作)用户类型:0网格员 1 社区后台", hidden = true, example = "1") private Integer operateType; @ApiModelProperty(value = "(当前操作)用户社区ID", hidden = true, example = "1") private Long communityId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventRepublishDTO.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventRepublicDTO.java @@ -19,7 +19,7 @@ * */ @Data @ApiModel("事件重新发布请求参数") public class CommonEventRepublicDTO { public class CommonEventRepublishDTO { @Max(9223372036854775807L) @ApiModelProperty(value = "事件id", hidden = false, example = "1", required = true) springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventManageDTO.java
New file @@ -0,0 +1,87 @@ package com.panzhihua.common.model.dtos.grid; import com.fasterxml.jackson.annotation.JsonFormat; import com.google.common.base.CaseFormat; 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 javax.validation.constraints.Pattern; 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 PageEventManageDTO { @ApiModelProperty(value = "分页-当前页数", example = "1") private Long pageNum = 1L; @ApiModelProperty(value = "分页-每页记录数", example = "10") private Long pageSize = 10L; @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt") private String sortAttr="createAt"; @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc") @Pattern(regexp = "asc|desc|ASC|DESC", message = "排序方式参数错误") private String sortType="desc"; public String getSortColumns(){ String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr); return dbColumn; } @ApiModelProperty(value = "搜索关键词", hidden = false, example = "1", required = true) private String keyWord; @ApiModelProperty(value = "上报社区处理: 0 否 1 是", hidden = false, example = "1") private Integer communityProcess; @Max(value = 6, message = "事件处理状态参数错误") @ApiModelProperty(value = "事件处理状态(为空时查询全部):1 待处理、2 待验证、4 已解决、6 已失效", hidden = false, example = "1") private Integer eventDealStatus; @Max(127) @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件", hidden = false, example = "1", required = true) @NotNull(message = "事件分类不能为空") private Integer eventType; @Max(127) @ApiModelProperty(value = "危险级别", hidden = false, example = "1") private Integer dangerLevel; @ApiModelProperty(value = "是否紧急", hidden = false, example = "true") private Boolean urgent; @ApiModelProperty(value = "是否重大", hidden = false, example = "true") private Boolean major; @ApiModelProperty(value = "红牌", hidden = false, example = "true") private Boolean redCard; @ApiModelProperty(value = "黄牌", hidden = false, example = "true") private Boolean yellowCard; @ApiModelProperty(value = "是否有效", hidden = false, example = "true") private Boolean invalid; @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1") private Long userId; @Max(9223372036854775807L) @ApiModelProperty(value = "社区ID", hidden = true, example = "1") private Long communityId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventDetailsVO.java
@@ -104,6 +104,9 @@ @ApiModelProperty(value = "处理人ID") private Long processUserId; @ApiModelProperty(value = "处理流程记录ID") private Long processRecordId; @ApiModelProperty(value = "处理人名称") private String processUserName; springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
@@ -2,7 +2,6 @@ import com.panzhihua.common.model.dtos.grid.*; import com.panzhihua.common.model.vos.*; import com.panzhihua.common.model.vos.community.ComActVO; import com.panzhihua.common.model.vos.grid.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -497,11 +496,11 @@ /** * 处理事件 * @param commonEventRepublicDTO * @param commonEventRepublishDTO * @return */ @PostMapping("/event/republish") R republishEvent(@RequestBody CommonEventRepublicDTO commonEventRepublicDTO); R republishEvent(@RequestBody CommonEventRepublishDTO commonEventRepublishDTO); /** * 网格数据待处理统计信息 @@ -690,7 +689,7 @@ * @return 网格列表 */ @PostMapping("/eventgriddata/data/list") R getGridDataList(PageEventGridDataDTO eventGridDataDTO); R getGridDataList(@RequestBody PageEventGridDataDTO eventGridDataDTO); /** * 查询社区下所有网格员 @@ -699,4 +698,28 @@ */ @PostMapping("/eventgriddata/member/list") R getGridMemberLists(@RequestParam("communityId") Long communityId); /** * 查询管理事件 * @param pageEventManageDTO * @return */ @PostMapping("/event/manage/list") R queryEventToManage(@RequestBody PageEventManageDTO pageEventManageDTO); /** * 社区网格后台标记事件无效 * @param eventRevokeDTO * @return */ @PostMapping("/event/markInvalid") R markEventInvalid(@RequestBody EventRevokeDTO eventRevokeDTO); /** * 社区网格后台重新发布已标记无效的事件 * @param commonEventRepublishDTO * @return */ @PostMapping("/event/republishInvalid") R republishInvalidEvent(@RequestBody CommonEventRepublishDTO commonEventRepublishDTO); } springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java
@@ -126,6 +126,7 @@ LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO(); commonEventDealDTO.setUserId(loginUserInfoVO.getUserId()); commonEventDealDTO.setUserName(loginUserInfoVO.getName()); commonEventDealDTO.setOperateType(0); return gridService.dealEvent(commonEventDealDTO); } springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventApi.java
@@ -6,9 +6,7 @@ import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActVO; import com.panzhihua.common.model.vos.community.ComMngPopulationVO; import com.panzhihua.common.utlis.ClazzUtils; import com.panzhihua.common.utlis.IdCardUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -19,7 +17,6 @@ import javax.annotation.Resource; import com.panzhihua.common.model.vos.grid.EventDetailsVO; import com.panzhihua.common.model.vos.grid.EventVO; /** * @@ -76,17 +73,17 @@ } /** * 重新发布事件 * @param commonEventRepublicDTO 重新发布事件传递对象 * @param commonEventRepublishDTO 重新发布事件传递对象 * @return 修改结果 */ @PutMapping("/republish") @ApiOperation(value = "重新发布事件", response = R.class) R republish(@Validated @RequestBody CommonEventRepublicDTO commonEventRepublicDTO){ ClazzUtils.setIfStringIsEmpty(commonEventRepublicDTO); R republish(@Validated @RequestBody CommonEventRepublishDTO commonEventRepublishDTO){ ClazzUtils.setIfStringIsEmpty(commonEventRepublishDTO); LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo(); commonEventRepublicDTO.setUserId(loginUserInfoVO.getUserId()); commonEventRepublicDTO.setUserName(loginUserInfoVO.getName()); return gridService.republishEvent(commonEventRepublicDTO); commonEventRepublishDTO.setUserId(loginUserInfoVO.getUserId()); commonEventRepublishDTO.setUserName(loginUserInfoVO.getName()); return gridService.republishEvent(commonEventRepublishDTO); } springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java
@@ -79,7 +79,7 @@ /** * 突发事件上报社区 * 事件上报社区 * @param commonEventReportDTO * @return */ @@ -90,7 +90,7 @@ /** * 突发事件撤销 * 事件撤销 * @param eventRevokeDTO * @return */ @@ -105,7 +105,14 @@ */ @PostMapping("/dealEvent") R dealEvent(@RequestBody CommonEventDealDTO commonEventDealDTO){ return eventService.dealEvent(commonEventDealDTO); switch (commonEventDealDTO.getOperateType()){ case 1: return eventService.communityDealEvent(commonEventDealDTO); case 0: return eventService.dealEvent(commonEventDealDTO); default: return R.fail("参数错误"); } } /** @@ -120,12 +127,12 @@ /** * 重新发布事件 * @param commonEventRepublicDTO * @param commonEventRepublishDTO * @return */ @PostMapping("/republish") R republishEvent(@RequestBody CommonEventRepublicDTO commonEventRepublicDTO){ return eventService.republishEvent(commonEventRepublicDTO); R republishEvent(@RequestBody CommonEventRepublishDTO commonEventRepublishDTO){ return eventService.republishEvent(commonEventRepublishDTO); } /** @@ -208,4 +215,34 @@ return eventService.actList(); } /** * 查询管理事件 * @param pageEventManageDTO * @return */ @PostMapping("/manage/list") R queryEventToManage(@RequestBody PageEventManageDTO pageEventManageDTO){ return eventService.eventToManage(pageEventManageDTO); } /** * 社区网格后台标记事件无效 * @param eventRevokeDTO * @return */ @PostMapping("/markInvalid") R markEventInvalid(@RequestBody EventRevokeDTO eventRevokeDTO){ return eventService.markEventInvalid(eventRevokeDTO); } /** * 社区网格后台重新发布已标记无效的事件 * @param commonEventRepublishDTO * @return */ @PostMapping("/republishInvalid") R republishInvalidEvent(@RequestBody CommonEventRepublishDTO commonEventRepublishDTO){ return eventService.republishInvalidEvent(commonEventRepublishDTO); } } springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMapper.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.dtos.grid.PageEventDTO; import com.panzhihua.common.model.dtos.grid.PageEventManageDTO; import com.panzhihua.common.model.dtos.grid.PagePublicityEventDTO; import com.panzhihua.common.model.vos.grid.ComMapGridEventVO; import com.panzhihua.service_grid.model.dos.EventDO; @@ -53,4 +54,12 @@ * @return 头像url */ String getGridMemberImageUrl(@Param("gridMemberId") Long gridMemberId); /** * 查询事件(管理)列表 * @param page * @param pageEventManageDTO * @return */ IPage<EventVO> findToManageByPage(Page page, @Param("pageEventManageDTO") PageEventManageDTO pageEventManageDTO); } springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventDO.java
@@ -130,6 +130,10 @@ */ private Long processUserId; /** * 处理流程记录ID 列: process_record_id */ private Long processRecordId; /** * 处理人名称 列: process_user_name */ private String processUserName; @@ -190,6 +194,10 @@ */ private Date submitDate; /** * 事件处理状态 列: event_deal_status */ private Integer eventDealStatus; /** * 创建人 列: create_by */ private Long createBy; springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java
@@ -62,7 +62,7 @@ R report(CommonEventReportDTO commonEventReportDTO); /** * 突发事件撤销 * 事件撤销 * @param eventRevokeDTO * @return */ @@ -83,10 +83,10 @@ /** * 重新发布事件 * @param commonEventRepublicDTO * @param commonEventRepublishDTO * @return */ R republishEvent(CommonEventRepublicDTO commonEventRepublicDTO); R republishEvent(CommonEventRepublishDTO commonEventRepublishDTO); /** * 草稿发布 @@ -143,4 +143,32 @@ * @return */ R<ComActVO> actList(); /** * 查询事件管理 * @param pageEventManageDTO * @return */ R eventToManage(PageEventManageDTO pageEventManageDTO); /** * 社区网格后台标记事件无效 * @param eventRevokeDTO * @return */ R markEventInvalid(EventRevokeDTO eventRevokeDTO); /** * 社区在网格后台重新发布已标记失效的事件 * @param commonEventRepublishDTO * @return */ R republishInvalidEvent(CommonEventRepublishDTO commonEventRepublishDTO); /** * 社区后台处理事件 * @param commonEventDealDTO * @return */ R communityDealEvent(CommonEventDealDTO commonEventDealDTO); } springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
@@ -129,7 +129,7 @@ int updated = this.getBaseMapper().updateById(eventDO); return updated==1?R.ok():R.fail(); } return R.fail("事件不是草稿/已撤销状态, 不允许删除"); return R.fail("事件不是草稿/已撤销/无效状态, 不允许删除"); } /** @@ -142,31 +142,10 @@ if(eventDO!=null) { EventDetailsVO eventDetailsVO = new EventDetailsVO(); BeanUtils.copyProperties(eventDO, eventDetailsVO); Integer event_status = eventDO.getEventStatus(); Integer event_process_status = eventDO.getEventProcessStatus(); Integer process_type = eventDO.getProcessType(); Integer community_process = eventDO.getCommunityProcess(); Integer eventDealStatus = -1; //1 待处理、2 待验证、3 已上报、4 已解决、5 草稿箱、6已撤销 if(event_status ==2 && event_process_status == 1 && process_type == 1) { eventDealStatus = 1;//"待处理" }else if( event_process_status == 3) { eventDealStatus = 2;//"待验证" }else if( event_status == 1 && community_process == 1 ) { eventDealStatus=3;//"已上报" }else if( event_process_status == 2 ) { eventDealStatus=4;//"已解决" }else if( event_status == 1 ) { eventDealStatus = 5;//"草稿箱" }else if( event_status == 4 ) { eventDealStatus=6;//"已撤销" } eventDetailsVO.setEventDealStatus(eventDealStatus); EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(eventDO.getGridId()); eventDetailsVO.setGridName(eventGridDataDO.getGridName()); if(eventGridDataDO!=null) { eventDetailsVO.setGridName(eventGridDataDO.getGridName()); } //查询事件关联附件 List<EventResourceDO> eventResourceDOList = @@ -255,7 +234,7 @@ return R.ok(eventDetailsVO); } return R.fail(); return R.fail("事件不存在"); } @Override @@ -263,13 +242,17 @@ public R addCommon(CommonEventAddDTO commonEventAddDTO) { EventDO eventDO = new EventDO(); BeanUtils.copyProperties(commonEventAddDTO, eventDO); eventDO.setGridMemberId(commonEventAddDTO.getUserId()); if(commonEventAddDTO instanceof CommonEventCommunityAddDTO) { CommonEventCommunityAddDTO commonEventCommunityAddDTO = (CommonEventCommunityAddDTO)commonEventAddDTO; eventDO.setGridMemberId(commonEventCommunityAddDTO.getGridMemberId()); }else{ eventDO.setGridMemberId(commonEventAddDTO.getUserId()); } eventDO.setEventCategory(1l);//办件事件 eventDO.setEventStatus(2);//事件状态 2发布 eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 eventDO.setEventProcessStatus(1); eventDO.setGridMemberId(commonEventAddDTO.getUserId()); eventDO.setGridMemberName(commonEventAddDTO.getUserName()); eventDO.setGridMemberTelephone(commonEventAddDTO.getPhone()); eventDO.setCreateBy(commonEventAddDTO.getUserId()); @@ -340,6 +323,7 @@ eventDO.setGridMemberId(commonEventEditDTO.getUserId()); eventDO.setGridMemberName(commonEventEditDTO.getUserName()); eventDO.setGridMemberTelephone(commonEventEditDTO.getPhone()); eventDO.setEventDealStatus(5); if (eventMapper.insert(eventDO) > 0) { //添加音频 if (StringUtils.isNotEmpty(commonEventEditDTO.getAudio())) { @@ -391,6 +375,9 @@ }else{ //编辑原来的 EventDO eventDO = eventMapper.selectById(commonEventEditDTO.getId()); if(eventDO.getEventStatus()!=null && eventDO.getEventStatus()!=1){ return R.fail("保存草稿失败,事件不是草稿状态"); } BeanUtils.copyProperties(commonEventEditDTO, eventDO); eventDO.setGridMemberId(commonEventEditDTO.getUserId()); eventDO.setEventCategory(1l);//办件事件 @@ -398,6 +385,7 @@ eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 eventDO.setUpdateBy(commonEventEditDTO.getUserId()); eventDO.setEventDealStatus(5); if (eventMapper.updateById(eventDO) > 0) { int deleted = eventResourceService.getBaseMapper() .delete(new LambdaQueryWrapper<EventResourceDO>() @@ -469,7 +457,7 @@ R r = communityService.detailCommunity(commonEventReportDTO.getToId()); if(!R.isOk(r)){ return R.fail("查询社区错误"); return R.fail("社区不存在"); } ComActVO comActVO= JSONObject.parseObject(JSONObject.toJSONString(r.getData()),ComActVO.class); if(comActVO==null){ @@ -485,7 +473,7 @@ if(updated!=1){ throw new ServiceException("更新突发事件状态更新失败"); } addTransferRecord(eventDO.getId(), commonEventReportDTO.getToId(), comActVO.getName(), 2, "上报社区成功"); addTransferRecord(eventDO.getId(), commonEventReportDTO.getToId(), comActVO.getName(), 2, commonEventReportDTO.getProcessResult()); return R.ok(); } @@ -522,6 +510,9 @@ @Transactional(rollbackFor = Exception.class) public R dealEvent(CommonEventDealDTO commonEventDealDTO) { EventDO eventDO = this.getBaseMapper().selectById(commonEventDealDTO.getId()); if (eventDO == null) { return R.fail("事件不存在"); } boolean canDealByUser = eventDO.getEventStatus()==2 && eventDO.getEventProcessStatus()==1; if(!canDealByUser){ if(eventDO.getEventStatus()!=2){ @@ -536,7 +527,7 @@ eventDO.setEventProcessStatus(2);//2已解决 eventDO.setUpdateBy(commonEventDealDTO.getUserId()); //更新出利润信息 //更新处理信息 eventDO.setProcessUserId(commonEventDealDTO.getUserId()); eventDO.setProcessUserName(commonEventDealDTO.getUserName()); eventDO.setProcessDate(new Date()); @@ -593,11 +584,21 @@ } } } Long transferRecordId = transferRecordDO.getId(); EventDO eventDOToUpdate = this.getBaseMapper().selectById(commonEventDealDTO.getId()); eventDOToUpdate.setProcessRecordId(transferRecordId); int transferRecordUpdated = this.getBaseMapper().updateById(eventDOToUpdate); if(transferRecordUpdated!=1){ throw new ServiceException("更新事件处理流程失败"); } return R.ok(); }else{ throw new ServiceException("处理事件记录出错"); } } @Override public R verifyEvent(CommonEventVerifyDTO commonEventVerifyDTO) { @@ -622,8 +623,8 @@ } @Override public R republishEvent(CommonEventRepublicDTO commonEventRepublicDTO) { EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublicDTO.getId()); public R republishEvent(CommonEventRepublishDTO commonEventRepublishDTO) { EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublishDTO.getId()); boolean canRepublishByUser = eventDO.getEventStatus()==4; if(!canRepublishByUser){ return R.fail("当前不是撤销状态"); @@ -632,12 +633,12 @@ eventDO.setEventStatus(2);//2 发布 eventDO.setEventProcessStatus(1); //待解决 eventDO.setProcessType(1); //网格员处理 eventDO.setUpdateBy(commonEventRepublicDTO.getUserId()); eventDO.setUpdateBy(commonEventRepublishDTO.getUserId()); int updated = this.getBaseMapper().updateById(eventDO); if(updated!=1){ return R.fail("更新事件状态失败"); } addTransferRecord(eventDO.getId(), commonEventRepublicDTO.getUserId(), commonEventRepublicDTO.getUserName(), 1, "重新发布已撤销事件"); addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1, "重新发布已撤销事件"); return R.ok(); } @@ -675,6 +676,7 @@ eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 eventDO.setCreateBy(specialEventEditDTO.getUserId()); eventDO.setEventDealStatus(5);//草稿状态 if (eventMapper.insert(eventDO) > 0) { //添加音频 if (StringUtils.isNotEmpty(specialEventEditDTO.getAudio())) { @@ -729,10 +731,11 @@ BeanUtils.copyProperties(specialEventEditDTO, eventDO); eventDO.setGridMemberId(specialEventEditDTO.getUserId()); eventDO.setEventCategory(1l);//办件事件 eventDO.setEventStatus(1);//事件状态 2发布 eventDO.setEventStatus(1);//事件状态 1草稿 eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 eventDO.setUpdateBy(specialEventEditDTO.getUserId()); eventDO.setEventDealStatus(5);//草稿状态 if (eventMapper.updateById(eventDO) > 0) { int deleted = eventResourceService.getBaseMapper() .delete(new LambdaQueryWrapper<EventResourceDO>() @@ -801,7 +804,7 @@ eventDO.setGridMemberId(specialEventAddDTO.getUserId()); eventDO.setEventCategory(1l);//办件事件 eventDO.setEventType(EventType.SPECIAL);//特殊人群信息上报-事件分类 eventDO.setEventStatus(1);//事件状态 1草稿 eventDO.setEventStatus(2);//事件状态 2发布 eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 eventDO.setCreateBy(specialEventAddDTO.getUserId()); @@ -947,6 +950,7 @@ eventDO.setGridMemberId(publicityEventEditDTO.getUserId()); eventDO.setGridMemberName(publicityEventEditDTO.getUserName()); eventDO.setGridMemberTelephone(publicityEventEditDTO.getPhone()); eventDO.setEventDealStatus(5);//草稿状态 if (eventMapper.insert(eventDO) > 0) { //添加音频 if (StringUtils.isNotEmpty(publicityEventEditDTO.getAudio())) { @@ -998,13 +1002,17 @@ }else{ //编辑原来的 EventDO eventDO = eventMapper.selectById(publicityEventEditDTO.getId()); if(eventDO.getEventStatus()!=null && eventDO.getEventStatus()!=1){ return R.fail("保存草稿失败,事件不是草稿状态"); } BeanUtils.copyProperties(publicityEventEditDTO, eventDO); eventDO.setGridMemberId(publicityEventEditDTO.getUserId()); eventDO.setEventCategory(2L);//宣传事件 eventDO.setEventStatus(1);//事件状态 2发布 eventDO.setEventStatus(1);//事件状态 1草稿 eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 eventDO.setUpdateBy(publicityEventEditDTO.getUserId()); eventDO.setEventDealStatus(5);//草稿状态 if (eventMapper.updateById(eventDO) > 0) { int deleted = eventResourceService.getBaseMapper() .delete(new LambdaQueryWrapper<EventResourceDO>() @@ -1114,6 +1122,193 @@ return communityService.listCommunityAll(); } @Override public R eventToManage(PageEventManageDTO pageEventManageDTO) { //查询管理事件 Page page = new Page(1,10); if(pageEventManageDTO.getPageNum()!=null) { page.setCurrent(pageEventManageDTO.getPageNum()); } if(pageEventManageDTO.getPageSize()!=null) { page.setSize(pageEventManageDTO.getPageSize()); } IPage<EventVO> ipage = eventMapper.findToManageByPage(page, pageEventManageDTO); if(ipage!=null){ List<EventVO> eventVOList = ipage.getRecords(); eventVOList.forEach(eventVO -> { List<EventResourceDO> eventResourceDOList = eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>() .eq(EventResourceDO::getClassification, 1) .eq(EventResourceDO::getRefId, eventVO.getId()) ); List<EventResourceVO> picList = new ArrayList<>(); List<EventResourceVO> audioList = new ArrayList<>(); List<EventResourceVO> videoList = new ArrayList<>(); eventResourceDOList.forEach(eventResourceDO -> { switch (eventResourceDO.getType()){ case 1: EventResourceVO picEventResourceVO = new EventResourceVO(); BeanUtils.copyProperties(eventResourceDO, picEventResourceVO); picList.add(picEventResourceVO); break; case 2: EventResourceVO audioResourceVO = new EventResourceVO(); BeanUtils.copyProperties(eventResourceDO, audioResourceVO); audioList.add(audioResourceVO); break; case 3: EventResourceVO videoResourceVO = new EventResourceVO(); BeanUtils.copyProperties(eventResourceDO, videoResourceVO); videoList.add(videoResourceVO); break; } }); eventVO.setAudios(audioList); eventVO.setPics(picList); eventVO.setVideos(videoList); //查询网格员头像 String imageUrl = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId()); if(StringUtils.isNotEmpty(imageUrl)){ eventVO.setGridMemberImageUrl(imageUrl); } }); return R.ok(ipage); } return R.fail(); } @Override public R markEventInvalid(EventRevokeDTO eventRevokeDTO) { EventDO eventDO = this.getBaseMapper().selectById(eventRevokeDTO.getId()); if(eventDO==null){ return R.fail("事件不存在"); } boolean canRevoke = eventDO.getEventDealStatus()==3; //发布状态 if(!canRevoke){ return R.fail("当前事件不是上报状态,不允许标为无效"); } eventDO.setInvalid(false); eventDO.setUpdateBy(eventRevokeDTO.getUserId()); eventDO.setEventStatus(4);//4、撤销 eventDO.setProcessType(1);//网格员处理 eventDO.setCommunityProcess(0);//非 社区处理 int updated = this.getBaseMapper().updateById(eventDO); if(updated == 1){ addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1,"撤销成功"); return R.ok(); } return R.fail(); } @Override public R republishInvalidEvent(CommonEventRepublishDTO commonEventRepublishDTO) { EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublishDTO.getId()); if(eventDO==null){ return R.fail("事件不存在"); } boolean canRepulish = eventDO.getEventDealStatus()==7; //已失效状态 if(!canRepulish){ return R.fail("当前事件不是已失效状态,不能重新发布"); } eventDO.setInvalid(true); int updated = this.getBaseMapper().updateById(eventDO); if(updated == 1){ addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 1,"重新发布事件成功"); return R.ok(); } return R.fail(); } @Override public R communityDealEvent(CommonEventDealDTO commonEventDealDTO) { EventDO eventDO = this.getBaseMapper().selectById(commonEventDealDTO.getId()); if (eventDO == null) { return R.fail("事件不存在"); } boolean canDealByCommunity = eventDO.getEventDealStatus() == 3; if(!canDealByCommunity){ return R.fail("事件当前不是上报状态"); } if(commonEventDealDTO.getNeedVerify()){ eventDO.setEventProcessStatus(3);//待验证状态 eventDO.setProcessType(1);//交给网格员处理-验证 }else { eventDO.setEventProcessStatus(2);//2已解决 } eventDO.setUpdateBy(commonEventDealDTO.getUserId()); //更新处理信息 eventDO.setProcessUserId(commonEventDealDTO.getUserId()); eventDO.setProcessUserName(commonEventDealDTO.getUserName()); eventDO.setProcessDate(new Date()); eventDO.setProcessDesc(commonEventDealDTO.getProcessResult()); int updated = this.getBaseMapper().updateById(eventDO); if(updated!=1){ return R.fail("更新事件状态失败"); } EventTransferRecordDO transferRecordDO = addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(),1, "社区处理完成"); if(transferRecordDO!=null && transferRecordDO.getId()!=null){ //添加音频 if(StringUtils.isNotEmpty(commonEventDealDTO.getAudio())){ EventResourceDO eventResourceDO = new EventResourceDO(); eventResourceDO.setClassification(3); eventResourceDO.setType(2); eventResourceDO.setUrl(commonEventDealDTO.getAudio()); eventResourceDO.setRefId(transferRecordDO.getId()); eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); eventResourceDO.setResourceTime(commonEventDealDTO.getAudioTime()); int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); if(audioAdd!=1){ throw new ServiceException("添加音频失败"); } } //添加视频 if(StringUtils.isNotEmpty(commonEventDealDTO.getVideo())){ EventResourceDO eventResourceDO = new EventResourceDO(); eventResourceDO.setClassification(3); eventResourceDO.setType(3); eventResourceDO.setUrl(commonEventDealDTO.getVideo()); eventResourceDO.setRefId(transferRecordDO.getId()); eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); eventResourceDO.setResourceTime(commonEventDealDTO.getVideoTime()); int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); if(videoAdd!=1){ throw new ServiceException("添加视频失败"); } } //添加图片 if(StringUtils.isNotEmpty(commonEventDealDTO.getPics())){ String[] pica = commonEventDealDTO.getPics().split(","); for (int i = 0; i < pica.length; i++) { EventResourceDO eventResourceDO = new EventResourceDO(); eventResourceDO.setClassification(3); eventResourceDO.setType(1); eventResourceDO.setUrl(pica[i]); eventResourceDO.setRefId(transferRecordDO.getId()); eventResourceDO.setCreateBy(commonEventDealDTO.getUserId()); int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO); if(picAdd!=1){ throw new ServiceException("添加图片失败"); } } } Long transferRecordId = transferRecordDO.getId(); EventDO eventDOToUpdate = this.getBaseMapper().selectById(commonEventDealDTO.getId()); eventDOToUpdate.setProcessRecordId(transferRecordId); int transferRecordUpdated = this.getBaseMapper().updateById(eventDOToUpdate); if(transferRecordUpdated!=1){ throw new ServiceException("更新事件处理流程失败"); } return R.ok(); }else{ throw new ServiceException("处理事件记录出错"); } } /** * 添加发布事件流转记录 * @param eventId 事件ID @@ -1136,6 +1331,7 @@ if(inserted!=1){ throw new ServiceException("事件流转记录添加失败"); } this.updateEventDealStatus(eventId); return eventTransferRecordDO; } @@ -1169,9 +1365,56 @@ eventTransferRecordDO.setProcessResult(msg); int inserted = eventTransferRecordService.getBaseMapper().insert(eventTransferRecordDO); if(inserted==1) { this.updateEventDealStatus(eventId); return eventTransferRecordDO; }else{ throw new ServiceException("事件流转记录添加失败"); } } /** * 根据子状态 查询用户事件处理状态 * @param eventId 事件ID */ private EventDO updateEventDealStatus(Long eventId){ EventDO eventDO = this.getBaseMapper().selectById(eventId); Integer eventDealStatus = getEventDealStatus(eventDO); eventDO.setEventDealStatus(eventDealStatus); int updated = this.getBaseMapper().updateById(eventDO); if(updated == 1){ return eventDO; }else{ throw new ServiceException("更新事件处理状态错误"); } } /** * 根据子状态 查询用户事件处理状态 * @param eventDO 事件 */ private Integer getEventDealStatus(EventDO eventDO){ Integer event_status = eventDO.getEventStatus(); Integer event_process_status = eventDO.getEventProcessStatus(); Integer process_type = eventDO.getProcessType(); Integer community_process = eventDO.getCommunityProcess(); Integer eventDealStatus = -1; //1 待处理、2 待验证、3 已上报、4 已解决、5 草稿箱、6已撤销、7已失效 if(eventDO.getInvalid()==false){ eventDealStatus = 7;//7已失效 }else if(event_status ==2 && event_process_status == 1 && process_type == 1) { eventDealStatus = 1;//"待处理" }else if( event_process_status == 3) { eventDealStatus = 2;//"待验证" }else if(event_status == 2 && community_process == 1 && process_type == 2) { eventDealStatus=3;//"已上报" }else if( event_process_status == 2 ) { eventDealStatus=4;//"已解决" }else if( event_status == 1 ) { eventDealStatus = 5;//"草稿箱" }else if( event_status == 4 ) { eventDealStatus=6;//"已撤销" } return eventDealStatus; } } springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
@@ -50,54 +50,27 @@ <result property="updateBy" column="update_by"/> <result property="updateAt" column="update_at"/> <result property="eventClazz" column="event_clazz"/> <result property="eventDealStatus" column="event_deal_status"/> </resultMap> <sql id="columns"> <![CDATA[ id,order_sn,event_category,grid_member_street,happen_address,grid_member_community,event_clazz,grid_id,grid_member_id,grid_member_name,grid_member_telephone,event_title,propaganda_type,propaganda_time,event_type,event_des,propaganda_object,propaganda_num,community_process,happen_time,happent_address,happent_lat_lng,event_status,event_process_status,process_type,process_user_id,process_user_name,process_date,process_desc,event_resource,danger_level,red_card,yellow_card,invalid,major,deaths_number,injuries_number,difficult,urgent,urgent_dell,submit_date,create_by,create_at,update_by,update_at id,order_sn,event_category,grid_member_street,happen_address,grid_member_community,event_clazz,grid_id,grid_member_id,grid_member_name,grid_member_telephone, event_title,propaganda_type,propaganda_time,event_type,event_des,propaganda_object,propaganda_num,community_process,happen_time,happent_address,happent_lat_lng, event_status,event_process_status,process_type,process_user_id,process_user_name,process_date,process_desc,event_resource,danger_level,red_card,yellow_card,invalid, major,deaths_number,injuries_number,difficult,urgent,urgent_dell,submit_date,create_by,create_at,update_by,update_at,event_deal_status ]]> </sql> <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO" parameterType="com.panzhihua.common.model.dtos.grid.PageEventDTO"> SELECT <include refid="columns" />, CASE WHEN event_status =2 AND event_process_status = 1 AND process_type = 1 THEN 1 WHEN event_process_status = 3 THEN 2 WHEN event_status = 1 AND community_process = 1 THEN 3 WHEN event_process_status = 2 THEN 4 WHEN event_status = 1 THEN 5 WHEN event_status = 4 THEN 6 ELSE -1 END eventDealStatus SELECT <include refid="columns" /> FROM event <where> event_status != 3 AND event_category = 1 <if test="pageEventDTO.eventDealStatus!=null"> <choose> <!-- 待处理、待验证、已上报、已解决、草稿箱、已撤销 --> <when test="pageEventDTO.eventDealStatus==1"> <!--待处理--> AND event_status =2 AND event_process_status = 1 AND process_type = 1 </when> <when test="pageEventDTO.eventDealStatus==2"> <!--待验证--> AND event_process_status = 3 </when> <when test="pageEventDTO.eventDealStatus==3"> <!--已上报--> AND event_status = 1 AND community_process = 1 </when> <when test="pageEventDTO.eventDealStatus==4"> <!--已解决--> AND event_process_status = 2 </when> <when test="pageEventDTO.eventDealStatus==5"> <!--草稿箱--> AND event_status = 1 </when> <when test="pageEventDTO.eventDealStatus==6"> <!--已撤销--> AND event_status = 4 </when> <otherwise> </otherwise> </choose> AND event_deal_status = #{pageEventDTO.eventDealStatus} </if> <if test="pageEventDTO.id!=null"> AND id = #{pageEventDTO.id} @@ -253,34 +226,12 @@ </select> <select id="findPublicityByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO" parameterType="com.panzhihua.common.model.dtos.grid.PagePublicityEventDTO"> SELECT <include refid="columns" />, CASE WHEN event_status =2 AND event_process_status = 1 AND process_type = 1 THEN 1 WHEN event_process_status = 3 THEN 2 WHEN event_status = 1 AND community_process = 1 THEN 3 WHEN event_process_status = 2 THEN 4 WHEN event_status = 1 THEN 5 WHEN event_status = 4 THEN 6 ELSE -1 END eventDealStatus SELECT <include refid="columns" /> FROM event <where> event_status != 3 AND event_category = 2 <if test="pagePublicityEventDTO.eventDealStatus!=null"> <choose> <!-- 待处理、待验证、已上报、已解决、草稿箱、已撤销 --> <when test="pagePublicityEventDTO.eventDealStatus==1"> <!--已发布--> AND event_status =2 </when> <when test="pagePublicityEventDTO.eventDealStatus==5"> <!--草稿箱--> AND event_status = 1 </when> <when test="pagePublicityEventDTO.eventDealStatus==6"> <!--已撤销--> AND event_status = 4 </when> <otherwise> </otherwise> </choose> AND event_deal_status = #{pagePublicityEventDTO.eventDealStatus} </if> <if test="pagePublicityEventDTO.id!=null"> AND id = #{pagePublicityEventDTO.id} @@ -464,5 +415,43 @@ <select id="getGridMemberImageUrl" resultType="String"> select image_url from sys_user where user_id = #{gridMemberId} </select> <select id="findToManageByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO" parameterType="com.panzhihua.common.model.dtos.grid.PageEventManageDTO"> SELECT <include refid="columns" /> FROM event <where> event_status != 3 AND event_category = 1 <if test="pageEventManageDTO.eventDealStatus!=null"> AND event_deal_status = #{pageEventManageDTO.eventDealStatus} </if> <if test="pageEventManageDTO.communityProcess!=null"> AND community_process = #{pageEventManageDTO.communityProcess} </if> <if test="pageEventManageDTO.eventType!=null"> AND event_type = #{pageEventManageDTO.eventType} </if> <if test="pageEventManageDTO.dangerLevel!=null"> AND danger_level = #{pageEventManageDTO.dangerLevel} </if> <if test="pageEventManageDTO.redCard!=null"> AND red_card = #{pageEventManageDTO.redCard} </if> <if test="pageEventManageDTO.yellowCard!=null"> AND yellow_card = #{pageEventManageDTO.yellowCard} </if> <if test="pageEventManageDTO.urgent!=null"> AND urgent = #{pageEventManageDTO.urgent} </if> <if test="pageEventManageDTO.major!=null"> AND major = #{pageEventManageDTO.major} </if> <if test="pageEventManageDTO.invalid!=null"> AND invalid = #{pageEventManageDTO.invalid} </if> </where> <if test="pageEventManageDTO.sortColumns!=null"> ORDER BY ${pageEventManageDTO.sortColumns} ${pageEventManageDTO.sortType} </if> </select> </mapper>