自动化立体仓库 - WCS系统
1
zhangc
2025-04-11 bafb86306b03d36a8c192253b3f3f1d14db02eac
src/main/java/com/zy/asrs/utils/NotifyUtils.java
@@ -27,16 +27,16 @@
    @Autowired
    private ConfigService configService;
    public synchronized boolean notify(String deviceType, Integer device, String taskNo, NotifyMsgType msgType) {
        SlaveType type = SlaveType.findInstance(deviceType);
        if (type == null) {
            return false;
        }
        return append(type, device, taskNo, msgType);
    public synchronized boolean notify(String notifyType, Integer device, String taskNo, String superTaskNo, NotifyMsgType msgType) {
        return append(notifyType, device, taskNo, superTaskNo, msgType, null);
    }
    public synchronized List<String> takeKeys(String deviceType, Integer device) {
        String key = getKey(deviceType, device);
    public synchronized boolean notify(String notifyType, Integer device, String taskNo, String superTaskNo, NotifyMsgType msgType, String data) {
        return append(notifyType, device, taskNo, superTaskNo, msgType, data);
    }
    public synchronized List<String> takeKeys(String notifyType, Integer device) {
        String key = getKey(notifyType, device);
        if(key == null){
            return null;
        }
@@ -53,46 +53,36 @@
        return list;
    }
    public String getKey(String deviceType, Integer device) {
        SlaveType type = SlaveType.findInstance(deviceType);
        if (type == null) {
            return null;
        }
    public String getKey(String notifyType, Integer device) {
        String key = null;
        switch (type) {
            case Shuttle:
                key = RedisKeyType.QUEUE_SHUTTLE.key + device;
                break;
            case ForkLift:
                key = RedisKeyType.QUEUE_FORK_LIFT.key + device;
                break;
            default:
                return null;
        if (notifyType.equals(String.valueOf(SlaveType.Shuttle))) {
            key = RedisKeyType.QUEUE_SHUTTLE.key + device;
        } else if (notifyType.equals(String.valueOf(SlaveType.ForkLift))) {
            key = RedisKeyType.QUEUE_FORK_LIFT.key + device;
        } else if (notifyType.equals("task")) {
            key = RedisKeyType.QUEUE_TASK.key + device;
        } else {
            return null;
        }
        return key;
    }
    private boolean append(SlaveType deviceType, Integer device, String taskNo, NotifyMsgType msgType) {
        String key = null;
        switch (deviceType) {
            case Shuttle:
                key = RedisKeyType.QUEUE_SHUTTLE.key + device;
                break;
            case ForkLift:
                key = RedisKeyType.QUEUE_FORK_LIFT.key + device;
                break;
            default:
                return false;
    private boolean append(String notifyType, Integer device, String taskNo, String superTaskNo, NotifyMsgType msgType, String data) {
        String key = getKey(notifyType, device);
        if (key == null) {
            return false;
        }
        NotifyDto dto = new NotifyDto();
        dto.setId(snowflakeIdWorker.nextId());
        dto.setDeviceType(String.valueOf(deviceType));
        dto.setNotifyType(notifyType);
        dto.setDevice(device);
        dto.setMsgType(msgType.flag);
        dto.setContent(msgType.desc);
        dto.setMsgDesc(msgType.desc);
        dto.setData(data);
        dto.setTaskNo(taskNo);
        dto.setSuperTaskNo(superTaskNo);
        //重试次数
        Config notifyFailTimesConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "notifyFailTimes"));