From f4afec78b16219f00bd9aee594e1676e3adb14e0 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 30 十月 2024 13:53:43 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java |   22 +++++++++-------------
 1 files changed, 9 insertions(+), 13 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 ae89023..0c7b1ed 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
@@ -57,19 +57,7 @@
     public List<FuncSta> findInIdleStatus(FuncStaType type, Long agvId) {
         LambdaQueryWrapper<FuncSta> wrapper = new LambdaQueryWrapper<FuncSta>()
                 .eq(FuncSta::getType, type).eq(FuncSta::getStatus, StatusType.ENABLE.val);
-        if (null != agvId) {
-            wrapper.eq(FuncSta::getAgvId, agvId);
-        }
         List<FuncSta> funcStaList = this.list(wrapper);
-        funcStaList = funcStaList.stream().filter(funcSta -> {
-            if (null != funcSta.getAgvId()) {
-                if (!funcSta.getAgvId().equals(agvId)) {
-                    return false;
-                }
-            }
-
-            return true;
-        }).collect(Collectors.toList());
 
         if (Cools.isEmpty(funcStaList)) {
             return new ArrayList<>();
@@ -90,11 +78,19 @@
                 // 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 != existAgv) {
                     AgvDetail agvDetail = agvDetailService.selectByAgvId(existAgv.getId());
-                    AgvModel agvModel = agvModelService.getById(existAgv.getAgvModel());
                     if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
+                        AgvModel agvModel = agvModelService.getById(existAgv.getAgvModel());
                         if (agvDetail.getVol() < agvModel.getQuaBattery()) {
                             return false;
                         }
+                    } else {
+                        Task latestTask = taskService.findLatestTask(existAgv.getId(), null);
+                        if (null != latestTask
+                                && latestTask.getTaskType().equals(TaskTypeType.TO_CHARGE.val())
+                                && latestTask.getDestCode().equals(funcSta.getCode())
+                        ) {
+                            return false;
+                        }
                     }
                 }
 

--
Gitblit v1.9.1