Junjie
2026-04-14 f7d2eda120867b3c5a2d9001d5f5c9d0396c65bd
src/main/java/com/zy/core/utils/station/StationRegularDispatchProcessor.java
@@ -351,8 +351,8 @@
            wrkMast.setModiTime(now);
            if (wrkMastService.updateById(wrkMast)) {
                wrkAnalysisService.markInboundStationStart(wrkMast, now);
                boolean offered = offerDevpCommandWithDedup(basDevp.getDevpNo(), command, "stationInExecute");
                if (offered && stationMoveCoordinator != null) {
                // 先记录 session 再入队命令,避免消费线程在 session 写入 Redis 前取到命令导致路由校验失败。
                if (stationMoveCoordinator != null) {
                    stationMoveCoordinator.recordDispatch(
                            wrkMast.getWrkNo(),
                            stationProtocol.getStationId(),
@@ -361,7 +361,12 @@
                            false
                    );
                }
                boolean offered = offerDevpCommandWithDedup(basDevp.getDevpNo(), command, "stationInExecute");
                if (offered) {
                News.info("输送站点入库命令下发成功,站点号={},工作号={},命令数据={}", stationId, wrkMast.getWrkNo(), JSON.toJSONString(command));
                } else {
                    News.warn("输送站点入库命令入队被拒绝(可能重复),站点号={},工作号={}", stationId, wrkMast.getWrkNo());
                }
                redisUtil.set(RedisKeyType.STATION_IN_EXECUTE_LIMIT.key + stationId, "lock", 5);
                loadGuardState.reserveLoopTask(loopHitResult.getLoopNo());
                stationDispatchLoadSupport.saveLoopLoadReserve(wrkMast.getWrkNo(), loopHitResult);