From baa94e47eae9e1b666aecc985910f3e37afe2729 Mon Sep 17 00:00:00 2001 From: liangzhou <594755172@qq.com> Date: Thu, 21 Nov 2024 20:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0=EF=BC=9A?= =?UTF-8?q?=201.=20=E4=BF=AE=E6=94=B9=E5=85=A5=E5=BA=93=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=BA=93=E4=BD=8D=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/wms/controller/JobComponent.java | 38 ++++++++++++++++--- .../LocationServiceImplements.java | 10 +++-- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/wms/controller/JobComponent.java b/src/main/java/com/wms/controller/JobComponent.java index 0f5be48..0d2429e 100644 --- a/src/main/java/com/wms/controller/JobComponent.java +++ b/src/main/java/com/wms/controller/JobComponent.java @@ -47,6 +47,10 @@ public class JobComponent { */ private final IWorkService workService; + private boolean isSendingCommonTask = false; + private boolean isSendingPickOutTask = false; + private boolean isSendingPickTask = false; + /** * 向Wcs下发任务 * 每2秒执行一次 @@ -55,16 +59,24 @@ public class JobComponent { @Async("myThreadPool") @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) public void sendCommonTasks() { - String sendTask = configMap.get(ConfigMapKeyEnum.SEND_TASK.getConfigKey()); - if (StringUtils.isEmpty(sendTask) || !sendTask.equals("1")) { + if (isSendingCommonTask) { + // 正在执行下发任务操作 return; + } else { + isSendingCommonTask = true; } try { + String sendTask = configMap.get(ConfigMapKeyEnum.SEND_TASK.getConfigKey()); + if (StringUtils.isEmpty(sendTask) || !sendTask.equals("1")) { + return; + } // 发送正常任务 wmsJobService.sendCommonTasks(); } catch (Exception e) { // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } finally { + isSendingCommonTask = false; } } @@ -76,16 +88,23 @@ public class JobComponent { @Async("myThreadPool") @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) public void sendPickOutTasks() { - String sendTask = configMap.get(ConfigMapKeyEnum.SEND_PICK_OUT_TASK.getConfigKey()); - if (StringUtils.isEmpty(sendTask) || !sendTask.equals("1")) { + if (isSendingPickOutTask) { return; + } else { + isSendingPickOutTask = true; } try { + String sendTask = configMap.get(ConfigMapKeyEnum.SEND_PICK_OUT_TASK.getConfigKey()); + if (StringUtils.isEmpty(sendTask) || !sendTask.equals("1")) { + return; + } // 发送站台拣选出库任务 wmsJobService.sendPickOutTasks(); } catch (Exception e) { // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } finally { + isSendingPickOutTask = false; } } @@ -97,16 +116,23 @@ public class JobComponent { @Async("myThreadPool") @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) public void sendPickTasks() { - String sendTask = configMap.get(ConfigMapKeyEnum.SEND_TASK.getConfigKey()); - if (StringUtils.isEmpty(sendTask) || !sendTask.equals("1")) { + if (isSendingPickTask) { return; + } else { + isSendingPickTask = true; } try { + String sendTask = configMap.get(ConfigMapKeyEnum.SEND_TASK.getConfigKey()); + if (StringUtils.isEmpty(sendTask) || !sendTask.equals("1")) { + return; + } // 发送拣选任务 wmsJobService.sendPickTasks(); } catch (Exception e) { // 回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } finally { + isSendingPickTask = false; } } diff --git a/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java b/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java index 70cc749..d6385de 100644 --- a/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java +++ b/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wms.constants.enums.StockStatus; import com.wms.constants.enums.TaskType; +import com.wms.constants.enums.WmsTaskStatus; import com.wms.entity.table.Location; import com.wms.entity.table.Stand; import com.wms.entity.table.Stock; @@ -76,9 +77,10 @@ public class LocationServiceImplements extends ServiceImpl stackerList = standMapper.selectList(new LambdaQueryWrapper() .eq(Stand::getIsLock, 0).eq(Stand::getStandStatus, 0) .eq(Stand::getStandType, 3)); - // 查出所有的正在执行的拣选出库的任务 + // 查出所有的入库任务 List stackRunningTasks = taskMapper.selectList(new LambdaQueryWrapper() - .eq(Task::getTaskType, TaskType.IN.getCode())); + .eq(Task::getTaskType, TaskType.IN.getCode()) + .ge(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())); Map runningTaskNumToEquipmentMap = new HashMap<>(); for (Stand stacker : stackerList) { // 找这台堆垛机正在执行的拣选出库任务数量 @@ -86,8 +88,8 @@ public class LocationServiceImplements extends ServiceImpl