| | |
| | | return R.error("任务id不能为空"); |
| | | } |
| | | |
| | | log.info("收到AGV任务回调请求,taskId:{},fromBin:{},toBin:{},robotGroup:{},kind:{}", |
| | | taskId, param.getFromBin(), param.getToBin(), |
| | | Cools.isEmpty(param.getRobotGroup()) ? param.getRobotName() : param.getRobotGroup(), |
| | | log.info("收到AGV任务回调请求,taskId:{},fromBin:{},toBin:{},robotGroup:{},kind:{}", |
| | | taskId, param.getFromBin(), param.getToBin(), |
| | | Cools.isEmpty(param.getRobotGroup()) ? param.getRobotName() : param.getRobotGroup(), |
| | | param.getKind()); |
| | | |
| | | // 根据taskId查询任务 |
| | | // taskId格式:T + 工作号(如"T5299")或 T + 任务ID(向后兼容) |
| | | Task task = null; |
| | | try { |
| | | // 处理"T"前缀格式(如"T5299"或"T130") |
| | | String numericId = taskId; |
| | | if (taskId.startsWith("T") && taskId.length() > 1) { |
| | | numericId = taskId.substring(1); |
| | | log.debug("检测到T前缀格式的taskId,提取数字:{}", numericId); |
| | | } |
| | | |
| | | // 先尝试通过工作号(wrk_no)查询(优先,因为现在使用工作号作为taskId) |
| | | try { |
| | | Integer wrkNo = Integer.parseInt(numericId); |
| | | task = taskService.selectOne( |
| | | new EntityWrapper<Task>().eq("wrk_no", wrkNo) |
| | | ); |
| | | if (task != null) { |
| | | log.debug("通过工作号(wrk_no={})找到任务,taskId:{}", wrkNo, task.getId()); |
| | | } |
| | | } catch (NumberFormatException e) { |
| | | log.debug("无法解析为工作号,taskId:{}", taskId); |
| | | } |
| | | |
| | | // 如果通过工作号没找到,尝试通过任务ID查询(向后兼容) |
| | | if (task == null) { |
| | | try { |
| | | Long taskIdLong = Long.parseLong(numericId); |
| | | task = taskService.selectById(taskIdLong); |
| | | if (task != null) { |
| | | log.debug("通过任务ID(id={})找到任务,taskId:{}", taskIdLong, taskId); |
| | | } |
| | | } catch (NumberFormatException e) { |
| | | log.debug("无法解析为任务ID,taskId:{}", taskId); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | log.debug("解析taskId异常,taskId:{},异常:{}", taskId, e.getMessage()); |
| | | // 优先通过agvWrkNo字段查询(新格式:T+wrk_no+年月日时分秒) |
| | | task = taskService.selectOne( |
| | | new EntityWrapper<Task>().eq("agv_wrk_no", taskId).eq("is_deleted", 0) |
| | | ); |
| | | if (task != null) { |
| | | log.debug("通过agvWrkNo(agv_wrk_no={})找到任务,taskId:{}", taskId, task.getId()); |
| | | } |
| | | |
| | | // 如果还是没找到,尝试通过其他字段查询(如sheetNo等,向后兼容) |
| | | if (task == null) { |
| | | log.debug("通过工作号和任务ID都没找到,尝试通过其他字段查询,taskId:{}", taskId); |
| | | task = taskService.selectOne( |
| | | new EntityWrapper<Task>().eq("sheet_no", taskId) |
| | | ); |
| | | } |
| | | |
| | | |
| | | if (task == null) { |
| | | log.warn("未找到对应的任务,taskId:{}", taskId); |
| | | return R.error("任务不存在,taskId:" + taskId); |