自动化立体仓库 - WMS系统
chen.llin
6 小时以前 46168fbb7c925b0ec04def176095e967720e684a
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -61,7 +61,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R agvCallback(AgvCallbackDto param) {
        log.debug("agvCallback param:{}", param);
        log.debug("agv回调 param:{}", param);
        // 优先使用taskId,如果没有则使用id(向后兼容)
        String taskId = Cools.isEmpty(param.getTaskId()) ? param.getId() : param.getTaskId();
        if (Cools.isEmpty(taskId)) {
@@ -76,8 +76,14 @@
        // 根据taskId查询任务
        Task task = null;
        try {
            // 处理"T"前缀格式(如"T130"),这是AGV任务创建时的格式
            String numericId = taskId;
            if (taskId.startsWith("T") && taskId.length() > 1) {
                numericId = taskId.substring(1);
                log.debug("检测到T前缀格式的taskId,提取数字ID:{}", numericId);
            }
            // 尝试将taskId解析为Long类型的id
            Long taskIdLong = Long.parseLong(taskId);
            Long taskIdLong = Long.parseLong(numericId);
            task = taskService.selectById(taskIdLong);
        } catch (NumberFormatException e) {
            // 如果不是数字,尝试通过其他字段查询(如sheetNo等)
@@ -131,8 +137,16 @@
            String kind = param.getKind();
            if ("货物转运".equals(kind)) {
                log.info("处理货物转运任务,taskId:{}", taskId);
            } else if ("实托入库".equals(kind)) {
                log.info("处理实托入库任务,taskId:{}", taskId);
            } else if ("实托入库".equals(kind) || "空托入库".equals(kind)) {
                log.info("处理入库任务,taskId:{}", taskId);
                // 入库任务:如果收到确认取货回调(loaded=true),完结AGV呼叫单
                if (Boolean.TRUE.equals(param.getLoaded())) {
                    // 如果任务状态是8(已呼叫AGV),更新为9(任务完成)
                    if (task.getWrkSts() != null && task.getWrkSts() == 8L) {
                        task.setWrkSts(9L);
                        log.info("入库任务收到确认取货回调,完结AGV呼叫单,taskId:{}", taskId);
                    }
                }
            } else if ("实托出库".equals(kind)) {
                log.info("处理实托出库任务,taskId:{}", taskId);
            }