From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 04 十一月 2024 10:22:45 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
index 59e06fd..844be39 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zy.acs.common.constant.RedisConstant;
 import com.zy.acs.common.enums.AgvStatusType;
-import com.zy.acs.common.utils.JudgeSupport;
 import com.zy.acs.common.utils.RedisSupport;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.manager.common.domain.BaseParam;
@@ -14,6 +13,7 @@
 import com.zy.acs.manager.manager.controller.result.AgvResult;
 import com.zy.acs.manager.manager.entity.*;
 import com.zy.acs.manager.manager.enums.SegmentStateType;
+import com.zy.acs.manager.manager.enums.StatusType;
 import com.zy.acs.manager.manager.mapper.AgvMapper;
 import com.zy.acs.manager.manager.service.*;
 import com.zy.acs.manager.system.service.ConfigService;
@@ -67,19 +67,19 @@
 
     @Override
     public Boolean judgeEnable(Long agvId) {
-        return this.judgeEnable(agvId, null);
+        return this.judgeEnable(agvId, false);
     }
 
     @Override
-    public Boolean judgeEnable(Long agvId, JudgeSupport<AgvDetail> support) {
+    public Boolean judgeEnable(Long agvId, Boolean withBattery) {
         Agv agv = this.getById(agvId);
         AgvModel agvModel = agvModelService.getById(agv.getAgvModel());
         if (segmentService.count(new LambdaQueryWrapper<Segment>()
-                .eq(Segment::getAgvId, agvId)
-                .and( i -> {
+                        .eq(Segment::getAgvId, agvId)
+                        .and( i -> {
 //                    i.eq(Segment::getState, SegmentStateType.WAITING.toString()).or()
-                    i.eq(Segment::getState, SegmentStateType.RUNNING.toString());
-                })
+                            i.eq(Segment::getState, SegmentStateType.RUNNING.toString());
+                        })
         ) > 0) {
             log.warn("[{}]鍙稟gv姝e湪蹇欑 -segment......", agv.getUuid());
             return false;
@@ -105,17 +105,24 @@
                 return false;
             }
         }
-        if (support != null) {
-            if (!support.execute(agvDetail)) {
-                return false;
-            }
-        }
         if (!agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
             if (agvDetail.getPos() != 1) {
                 log.warn("[{}]鍙稟gv褰撳墠涓嶅湪瀹氫綅......", agv.getUuid());
                 return false;
             }
         }
+        // with battery
+        if (withBattery) {
+            if (agvDetail.getVol() < agv.getChargeLine()) {
+                log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid());
+                return false;
+            }
+            if (agvDetail.getVol() < agvModel.getLowBattery()) {
+                log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid());
+                return false;
+            }
+        }
+
         return true;
     }
 
@@ -154,4 +161,19 @@
         return agvModel.getBackpack();
     }
 
+    @Override
+    public Agv findByPosition(Long codeId) {
+        List<Agv> agvList = this.list(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
+        for (Agv agv : agvList) {
+            AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
+            if (null == agvDetail) {
+                continue;
+            }
+            if (agvDetail.getRecentCode().equals(codeId)) {
+                return agv;
+            }
+        }
+        return null;
+    }
+
 }

--
Gitblit v1.9.1