drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdClueEventController.java
@@ -183,7 +183,7 @@ */ @PostMapping("/handle") @ApiOperationSupport(order = 8) @ApiOperation(value = "处理", notes = "传入事件ID与事件状态") @ApiOperation(value = "退回处理-(弃用)", notes = "传入事件ID与事件状态") public R handle(@Valid @RequestBody GdClueEventRejectParam rejectParam) { return R.status(gdClueEventService.handleClueEvent(rejectParam)); } @@ -248,7 +248,7 @@ */ @PostMapping("/updateStatus") @ApiOperationSupport(order = 13) @ApiOperation(value = "更新事件状态", notes = "传入事件ID和目标状态,必须符合状态流转矩阵") @ApiOperation(value = "更新事件状态(完成,处置中和已处置状态切换,退回)", notes = "传入事件ID和目标状态,必须符合状态流转矩阵") public R updateStatus(@Valid @RequestBody GdClueEventStatusUpdateParam updateParam) { return R.status(gdClueEventService.updateEventStatus(updateParam)); } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml
@@ -63,6 +63,16 @@ <result column="shoot_time" property="shootTime"/> <result column="dispose_user_name" property="disposeUserName"/> <result column="dispose_dept_name" property="disposeDeptName"/> <result column="result_id" property="resultId"/> <result column="work_order_id" property="workOrderId"/> <result column="dispose_user" property="disposeUser"/> <result column="dispose_dept" property="disposeDept"/> <result column="longitude" property="longitude"/> <result column="latitude" property="latitude"/> <result column="event_status" property="eventStatus"/> <result column="area_code" property="areaCode"/> <result column="event_num" property="eventNum"/> <result column="attach_url" property="attachUrl"/> </resultMap> <resultMap id="gdClueEventCountVoResultMap" type="org.sxkj.gd.workorder.vo.GdClueEventCountVO"> @@ -109,7 +119,17 @@ ce.create_time as create_time, tr.shoot_time as shoot_time, COALESCE(bu.real_name, bu.name) as dispose_user_name, bd.dept_name as dispose_dept_name bd.dept_name as dispose_dept_name, ce.result_id, ce.work_order_id, ce.dispose_user, ce.dispose_dept, ce.longitude, ce.latitude, ce.event_status, ce.area_code, ce.event_num, ce.attach_url from ja_gd_clue_event ce left join ja_gd_task_result tr on tr.id::VARCHAR = ce.result_id::VARCHAR and tr.is_deleted = 0 left join blade_user bu on bu.id::VARCHAR = ce.dispose_user::VARCHAR and bu.is_deleted = 0 drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java
@@ -218,7 +218,8 @@ if (taskResult == null || (taskResult.getIsDeleted() != null && taskResult.getIsDeleted() != 0)) { throw new RuntimeException("成果不存在"); } if (taskResult.getDistributeStatus() != null && taskResult.getDistributeStatus() == 1) { // 判断是否已分发, 不为空,并且不能是退回状态,则不能分发 if (taskResult.getDistributeStatus() != null && !EventStatusEnum.RETURNED.getCode().equals(taskResult.getDistributeStatus())) { throw new RuntimeException("成果已分发,无法再次分发"); } // 查看事件直接是否分发过 @@ -251,6 +252,14 @@ if (!saveOrUpdate(clueEvent)) { throw new RuntimeException("事件分发失败"); } // 插入状态流转记录(从无到待确认) gdClueEventStatusFlowService.insertStatusFlow( clueEvent.getId(), null, EventStatusEnum.PENDING_CONFIRM.getCode(), "事件分发", new Date() ); taskResult.setDistributeStatus(1); taskResult.setUpdateUser(AuthUtil.getUserId()); taskResult.setUpdateTime(new Date()); @@ -338,10 +347,12 @@ * 3. 校验状态流转合法性 * 4. 更新事件状态 * 5. 插入状态流转记录 * 6. 退回时同步更新成果状态 * </p> * * @param updateParam 状态更新参数 * @return 是否操作成功 * @throws RuntimeException 当参数为空、事件不存在、状态流转非法或更新失败时抛出 */ @Override @Transactional(rollbackFor = Exception.class) @@ -391,6 +402,21 @@ updateParam.getOperateTime() != null ? updateParam.getOperateTime() : new Date() ); // 6. 退回时同步更新成果状态 if (targetStatus.equals(EventStatusEnum.RETURNED.getCode())) { // 查询成果信息 GdTaskResultEntity taskResult = gdTaskResultService.getById(eventEntity.getResultId()); if (taskResult != null && (taskResult.getIsDeleted() == null || taskResult.getIsDeleted() == 0)) { // 更新成果分发状态为已退回(状态2) taskResult.setDistributeStatus(EventStatusEnum.RETURNED.getCode()); taskResult.setUpdateUser(AuthUtil.getUserId()); taskResult.setUpdateTime(new Date()); if (!gdTaskResultService.updateTaskResultById(taskResult)) { throw new RuntimeException("成果状态更新失败"); } } } return true; } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventListVO.java
@@ -16,6 +16,7 @@ */ package org.sxkj.gd.workorder.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,6 +24,7 @@ import java.util.Date; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import org.springframework.format.annotation.DateTimeFormat; /** * 事件表(线索事件) 列表视图实体类 @@ -72,4 +74,55 @@ */ @ApiModelProperty(value = "处置部门名称") private String disposeDeptName; /** * 关联成果表ID */ @ApiModelProperty(value = "关联成果表ID") private Long resultId; /** * 关联工单任务表ID */ @ApiModelProperty(value = "关联工单任务表ID") private Long workOrderId; /** * 工单处置人 */ @ApiModelProperty(value = "工单处置人") private Long disposeUser; /** * 处置部门 */ @ApiModelProperty(value = "处置部门") private Long disposeDept; /** * 经度 */ @ApiModelProperty(value = "经度") private Double longitude; /** * 纬度 */ @ApiModelProperty(value = "纬度") private Double latitude; /** * 状态:0待确认、1处置中、2已退回、3已处置、4已完成 */ @ApiModelProperty(value = "状态:0待确认、1处置中、2已退回、3已处置、4已完成") private Integer eventStatus; /** * 区域编码 */ @ApiModelProperty(value = "区域编码") private String areaCode; /** * 事件编号 */ @ApiModelProperty(value = "事件编号") private String eventNum; /** * 附件URL */ @ApiModelProperty(value = "附件URL") private String attachUrl; }