| | |
| | | import com.xiaopeng.maintenance.utils.UUIDUtil; |
| | | import com.xiaopeng.maintenance.vo.TaskCleanDetailVO; |
| | | import com.xiaopeng.maintenance.vo.TaskDetectionDetailVO; |
| | | import com.xiaopeng.maintenance.vo.TaskReassignmentVo; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; |
| | |
| | | private AliOssService aliOssService; |
| | | @Autowired |
| | | private AliOssDownloadUtil aliOssDownloadUtil; |
| | | |
| | | @Resource |
| | | private WebSocketMessageClient xpWebSocketMessageClient; |
| | | |
| | | @Override |
| | | public PageInfo<WorkBenchVO> workbench(WorkBenchQuery query) throws UnsupportedEncodingException { |
| | |
| | | } |
| | | } |
| | | |
| | | @Resource |
| | | WebSocketMessageClient xpWebSocketMessageClient; |
| | | |
| | | /** |
| | | * 推送阿里云通知 |
| | | * |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 任务改派操作 |
| | | * @param vo |
| | | */ |
| | | @Override |
| | | public void taskReassignment(TaskReassignmentVo vo) { |
| | | XpTask xpTask = this.getById(vo.getTaskId()); |
| | | if(null == xpTask){ |
| | | throw new ServiceException("无效的任务", I18nKeyConstant.TASK_NOT_EXIST); |
| | | } |
| | | if(2 == xpTask.getReassignmentStatus()){ |
| | | throw new ServiceException("任务已改派,不能重复操作", I18nKeyConstant.TASK_HAS_BEEN_REASSIGNED); |
| | | } |
| | | xpTask.setReassignmentStatus(2); |
| | | xpTask.setHandleUserId(vo.getNewOperationsUserId() + ""); |
| | | xpTask.setStatus(1); |
| | | this.updateById(xpTask); |
| | | //推送websocket |
| | | XpTaskVO xpTaskVO = new XpTaskVO(); |
| | | BeanUtil.copyProperties(xpTask, xpTaskVO); |
| | | xpWebSocketMessageClient.pushTask(xpTaskVO); |
| | | boolean isAccidentTask = Integer.valueOf(2).equals(xpTask.getTaskCategory()); |
| | | Long vehicleId = xpTask.getVehicleId(); |
| | | Integer processingTimeLimit = null; |
| | | String plateNumber = ""; |
| | | if (isAccidentTask) { |
| | | // 查询规则 任务结束时间从任务分配时开始计算 |
| | | XpTaskRule taskRule = xpTaskRuleMapper.selectOne(null); |
| | | if (taskRule != null) { |
| | | processingTimeLimit = taskRule.getProcessingTimeLimit(); |
| | | } |
| | | if (vehicleId != null) { |
| | | XpVehicle vehicle = xpVehicleClient.queryById(vehicleId).getData(); |
| | | if (vehicle != null && StringUtils.isNotBlank(vehicle.getPlateNumber())) { |
| | | plateNumber = vehicle.getPlateNumber(); |
| | | } |
| | | } |
| | | } |
| | | if (isAccidentTask && processingTimeLimit != null) { |
| | | sendAssignedAccidentNotificationAsync(xpTask, Long.valueOf(xpTask.getHandleUserId()), plateNumber, processingTimeLimit); |
| | | } |
| | | } |
| | | } |