From 613b59f94870adb25b6dd1e8a1aba8cbb670288e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 18 十二月 2024 14:21:21 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java
index a22e804..e9307d8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java
@@ -73,7 +73,7 @@
 
             if (funcSta.getType().equals(FuncStaType.CHARGE.toString())) {
                 // if the type of this funSta is charge and the existing agv is in charge status, then that means this funSta is occupied
-                if (null != agv) {
+                if (null != agv && !agv.getId().equals(agvId)) {
                     AgvModel agvModel = agvModelService.getById(agv.getAgvModel());
                     AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
                     if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
@@ -96,7 +96,7 @@
 
                 // if there is a running task whose destination is this funSta, then that means this funSta is occupied
                 if (0 < taskService.count(new LambdaQueryWrapper<Task>()
-                        .eq(Task::getTaskType, TaskTypeType.TO_CHARGE.val())
+                        .in(Task::getTaskType, TaskTypeType.TO_STANDBY.val(), TaskTypeType.TO_CHARGE.val())
                         .in(Task::getTaskSts, TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val())
                         .eq(Task::getDestCode, code)
                 )) {
@@ -110,7 +110,11 @@
                 if (null == agv) {
                     // if there is a running task whose destination is this funSta, then that means this funSta is occupied
                     if (0 < taskService.count(new LambdaQueryWrapper<Task>()
-                            .eq(Task::getTaskType, TaskTypeType.TO_STANDBY.val())
+                            .in(Task::getTaskType
+                                    , TaskTypeType.TO_STANDBY.val()
+                                    , TaskTypeType.TO_CHARGE.val()
+                                    , TaskTypeType.MOVE.val()
+                            )
                             .in(Task::getTaskSts, TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val())
                             .eq(Task::getDestCode, code)
                     )) {
@@ -118,11 +122,14 @@
                     }
 
                 } else {
-                    // if there is an agv on the code of this funSta, should we let this agv leave?
-                    // we need to judge whether the agv went to this funSta based on a task which in GO_STANDBY type
+                    if (!agv.getId().equals(agvId)) {
+                        // if there is an agv on the code of this funSta, should we let this agv leave?
+                        // we need to judge whether the agv went to this funSta based on a task which in GO_STANDBY type
 
 //                    Task latestTaskByAgv = taskService.findLatestTask(existAgv.getId());
-                    return false;
+                        return false;
+                    }
+
                 }
             }
 

--
Gitblit v1.9.1