Junjie
2 天以前 f43f537bb30758b7f3935d6ef8743cca270c4acb
#退回优化
1个文件已修改
30 ■■■■ 已修改文件
src/main/java/com/zy/core/plugin/GslProcess.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/plugin/GslProcess.java
@@ -186,6 +186,10 @@
                                           StationThread stationThread,
                                           StationObjModel stationObjModel,
                                           StationProtocol stationProtocol) {
        if (stationProtocol == null) {
            return false;
        }
        if (!stationProtocol.isAutoing()) {
            return false;
        }
@@ -202,12 +206,30 @@
            return true;//站点无异常
        }
        Object lock = redisUtil.get(RedisKeyType.GENERATE_STATION_BACK_LIMIT.key + stationProtocol.getStationId());
        StationObjModel backStation = stationObjModel.getBackStation();
        if (backStation == null || backStation.getStationId() == null) {
            News.warn("条码站退回失败,退回站未配置。deviceNo={},stationId={}",
                    basDevp == null ? null : basDevp.getDevpNo(),
                    stationProtocol.getStationId());
            return false;
        }
        // 当前站点已经挂着退回目标时,不再重复生成新的退回工作号。
        if (stationProtocol.getTaskNo() != null
                && stationProtocol.getTaskNo() > 0
                && backStation.getStationId().equals(stationProtocol.getTargetStaNo())) {
            return false;
        }
        Integer lockTaskNo = stationProtocol.getTaskNo();
        String lockKey = (lockTaskNo != null && lockTaskNo > 0)
                ? RedisKeyType.GENERATE_STATION_BACK_LIMIT.key + lockTaskNo
                : RedisKeyType.GENERATE_STATION_BACK_LIMIT.key + "station_" + stationProtocol.getStationId();
        Object lock = redisUtil.get(lockKey);
        if (lock != null) {
            return false;
        }
        StationObjModel backStation = stationObjModel.getBackStation();
        StationCommand command = stationThread.getCommand(StationCommandType.MOVE,
                commonService.getWorkNo(WrkIoType.STATION_BACK.id),
                stationObjModel.getStationId(),
@@ -217,8 +239,8 @@
            return false;
        }
        stationCommandDispatcher.dispatch(basDevp.getDevpNo(), command, "gsl-process", "station-back");
        News.taskInfo(stationProtocol.getTaskNo(), "{}扫码异常,已退回至{}", backStation.getStationId());
        redisUtil.set(RedisKeyType.GENERATE_STATION_BACK_LIMIT.key + stationProtocol.getStationId(), "lock", 10);
        News.taskInfo(stationProtocol.getTaskNo(), "扫码异常,已退回至{}", backStation.getStationId());
        redisUtil.set(lockKey, "lock", 10);
        return false;
    }