From 0d04bc5d8080b82338302fba0a59fccff2eaedfc Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期日, 06 七月 2025 11:28:29 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java | 30 +++++++++++++++++++++++++++++- 1 files changed, 29 insertions(+), 1 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java index c8c57b0..3aa33ba 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java @@ -1,8 +1,11 @@ package com.zy.asrs.wcs.core.action; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.asrs.wcs.core.entity.Task; import com.zy.asrs.wcs.core.model.command.*; import com.zy.asrs.wcs.core.model.enums.LiftCommandModeType; +import com.zy.asrs.wcs.core.service.TaskService; import com.zy.asrs.wcs.core.utils.RedisUtil; import com.zy.asrs.wcs.rcs.News; import com.zy.asrs.wcs.rcs.cache.SlaveConnection; @@ -22,6 +25,8 @@ @Autowired private RedisUtil redisUtil; + @Autowired + private TaskService taskService; public synchronized boolean assignWork(Device device, LiftAssignCommand assignCommand) { LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, device.getId().intValue()); @@ -50,6 +55,11 @@ public synchronized boolean executeWork(Device device, Integer taskNo) { Object obj = redisUtil.get(DeviceRedisConstant.LIFT_WORK_FLAG + taskNo); if (obj == null) { + return false; + } + + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, taskNo)); + if (task == null) { return false; } @@ -98,6 +108,25 @@ if (liftProtocol.getLev() == command.getTargetLev()) { command.setComplete(true); } + + if (task.getTaskSts() < 100) {//鍏ュ簱鍒ゆ柇鎵樼洏鏄惁杩涘叆鎻愬崌鏈� + if (!liftProtocol.getHasTray()) { + return false; + } + } else if (task.getTaskSts() >= 100 && task.getTaskSts() < 200) {//鍑哄簱鍒ゆ柇鎵樼洏鏄惁绂诲紑鎻愬崌鏈� + if (liftProtocol.getHasTray()) { + return false; + } + } + } else if (command.getMode() == LiftCommandModeType.RESET.id) { + //澶嶄綅 + command.setComplete(true); + } else if (command.getMode() == LiftCommandModeType.LOCK.id) { + //澶嶄綅 + command.setComplete(true); + } else if (command.getMode() == LiftCommandModeType.UNLOCK.id) { + //澶嶄綅 + command.setComplete(true); } // 鏇存柊redis鏁版嵁 @@ -114,7 +143,6 @@ //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting liftThread.setProtocolStatus(LiftProtocolStatusType.WAITING); - liftThread.commandFinished(taskNo);//璋冪敤瀹屾垚鍚庣画鎸囦护(閮ㄥ垎鎻愬崌鏈烘湁鍚庣画鎸囦护锛屽疄闄呮儏鍐电湅鏄惁鏈夌湡姝e疄鐜版柟娉�) redisUtil.del(DeviceRedisConstant.LIFT_WORK_FLAG + taskNo); return false;//绂佹鍐嶄笅鍙戝懡浠� } -- Gitblit v1.9.1