自动化立体仓库 - WCS系统
#
Junjie
2025-04-11 ad205a9ee0b1ff18eabed3528407f13a52193dcf
src/main/java/com/zy/core/cache/MessageQueue.java
@@ -16,10 +16,16 @@
    //四向穿梭车mq交换机
    private static final Map<Integer, ConcurrentLinkedQueue<Task>> SHUTTLE_EXCHANGE = new ConcurrentHashMap<>();
    //输送mq交换机
    private static final Map<Integer, ConcurrentLinkedQueue<Task>> DEVP_EXCHANGE = new ConcurrentHashMap<>();
    //提升机mq交换机
    private static final Map<Integer, ConcurrentLinkedQueue<Task>> LIFT_EXCHANGE = new ConcurrentHashMap<>();
    //货叉提升机mq交换机
    private static final Map<Integer, ConcurrentLinkedQueue<Task>> FORK_LIFT_EXCHANGE = new ConcurrentHashMap<>();
    //货叉提升机Master mq交换机
    private static final Map<Integer, ConcurrentLinkedQueue<Task>> FORK_LIFT_MASTER_EXCHANGE = new ConcurrentHashMap<>();
    //显示屏mq交换机
    private static final Map<Integer, ConcurrentLinkedQueue<Task>> LED_EXCHANGE = new ConcurrentHashMap<>();
    /**
     * mq 交换机初始化
@@ -32,8 +38,17 @@
            case ForkLift:
                FORK_LIFT_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            case ForkLiftMaster:
                FORK_LIFT_MASTER_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            case Lift:
                LIFT_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            case Devp:
                DEVP_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            case Led:
                LED_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            default:
                break;
@@ -50,8 +65,14 @@
                return SHUTTLE_EXCHANGE.get(id).offer(task);
            case ForkLift:
                return FORK_LIFT_EXCHANGE.get(id).offer(task);
            case ForkLiftMaster:
                return FORK_LIFT_MASTER_EXCHANGE.get(id).offer(task);
            case Lift:
                return LIFT_EXCHANGE.get(id).offer(task);
            case Devp:
                return DEVP_EXCHANGE.get(id).offer(task);
            case Led:
                return LED_EXCHANGE.get(id).offer(task);
            default:
                return false;
        }
@@ -67,8 +88,22 @@
                return SHUTTLE_EXCHANGE.get(id).poll();
            case ForkLift:
                return FORK_LIFT_EXCHANGE.get(id).poll();
            case ForkLiftMaster:
                return FORK_LIFT_MASTER_EXCHANGE.get(id).poll();
            case Lift:
                return LIFT_EXCHANGE.get(id).poll();
            case Devp:
                ConcurrentLinkedQueue<Task> tasks = DEVP_EXCHANGE.get(id);
                if (tasks == null) {
                    return null;
                }
                return DEVP_EXCHANGE.get(id).poll();
            case Led:
                ConcurrentLinkedQueue<Task> task2 = LED_EXCHANGE.get(id);
                if (task2 == null) {
                    return null;
                }
                return LED_EXCHANGE.get(id).poll();
            default:
                return null;
        }
@@ -83,14 +118,20 @@
                return SHUTTLE_EXCHANGE.get(id).peek();
            case ForkLift:
                return FORK_LIFT_EXCHANGE.get(id).peek();
            case ForkLiftMaster:
                return FORK_LIFT_MASTER_EXCHANGE.get(id).peek();
            case Lift:
                return LIFT_EXCHANGE.get(id).peek();
            case Devp:
                return DEVP_EXCHANGE.get(id).peek();
            case Led:
                return LED_EXCHANGE.get(id).peek();
            default:
                return null;
        }
    }
    public static void clear(SlaveType type, Integer id){
    public static void clear(SlaveType type, Integer id) {
        switch (type) {
            case Shuttle:
                SHUTTLE_EXCHANGE.get(id).clear();
@@ -98,9 +139,18 @@
            case ForkLift:
                FORK_LIFT_EXCHANGE.get(id).clear();
                break;
            case ForkLiftMaster:
                FORK_LIFT_MASTER_EXCHANGE.get(id).clear();
                break;
            case Lift:
                LIFT_EXCHANGE.get(id).clear();
                break;
            case Devp:
                DEVP_EXCHANGE.get(id).clear();
                break;
            case Led:
                LED_EXCHANGE.get(id).clear();
                break;
            default:
                break;
        }