#
Junjie
12 小时以前 30ec656c41cbf3e552cfad409fe5b7e2c1f99ee6
src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
@@ -813,14 +813,6 @@
                && stationMoveCoordinator.shouldSuppressDispatch(taskNo, stationId, plan.command())) {
            return RerouteExecutionResult.skip("dispatch-suppressed");
        }
        if (context.sceneType() == RerouteSceneType.RUN_BLOCK_REROUTE
                && shouldSkipRunBlockRerouteForExistingSession(taskNo, stationId, plan.command())) {
            News.info("输送站点堵塞重规划命中已生效同路径路线,已跳过重复下发。站点号={},工作号={},目标站={}",
                    stationId,
                    taskNo,
                    plan.command().getTargetStaNo());
            return RerouteExecutionResult.skip("run-block-same-path");
        }
        if (context.requireOutOrderDispatchLock()
                && !tryAcquireOutOrderDispatchLock(taskNo, stationId)) {
            return RerouteExecutionResult.skip("out-order-lock");
@@ -1391,40 +1383,13 @@
        if (session == null) {
            return false;
        }
        boolean protectedStatus = session.isActive() || StationMoveSession.STATUS_BLOCKED.equals(session.getStatus());
        if (!protectedStatus || !session.containsStation(stationId)) {
        if (!session.isActive() || !session.containsStation(stationId)) {
            return false;
        }
        if (StationMoveDispatchMode.CIRCLE == session.getDispatchMode()) {
            return true;
        }
        return !Objects.equals(stationId, session.getCurrentRouteTargetStationId());
    }
    private boolean shouldSkipRunBlockRerouteForExistingSession(Integer wrkNo,
                                                                Integer stationId,
                                                                StationCommand candidateCommand) {
        if (stationMoveCoordinator == null
                || wrkNo == null || wrkNo <= 0
                || stationId == null
                || candidateCommand == null) {
            return false;
        }
        StationMoveSession session = stationMoveCoordinator.loadSession(wrkNo);
        if (session == null) {
            return false;
        }
        boolean protectedStatus = session.isActive() || StationMoveSession.STATUS_BLOCKED.equals(session.getStatus());
        if (!protectedStatus) {
            return false;
        }
        boolean sameDispatchStation = Objects.equals(stationId, session.getCurrentStationId())
                || Objects.equals(stationId, session.getDispatchStationId());
        if (!sameDispatchStation) {
            return false;
        }
        String candidateSignature = stationMoveCoordinator.buildPathSignature(candidateCommand);
        return !isBlank(candidateSignature) && Objects.equals(candidateSignature, session.getPathSignature());
    }
    private boolean isWatchingCircleArrival(Integer wrkNo, Integer stationId) {