From 099d9a5da5b562e63e2e56efbe9f799e2bcdd614 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 22 十一月 2024 09:35:24 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java |   52 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 11 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 336317f..b3ec895 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
@@ -45,6 +45,8 @@
     private CodeService codeService;
     @Autowired
     private SegmentService segmentService;
+    @Autowired
+    private TaskService taskService;
 
     @Override
     public PageResult<AgvResult> pageRel(PageParam<Agv, BaseParam> pageParam) {
@@ -73,16 +75,24 @@
     public Boolean judgeEnable(Long agvId, Boolean withBattery) {
         Agv agv = this.getById(agvId);
         AgvModel agvModel = agvModelService.getById(agv.getAgvModel());
-        if (segmentService.count(new LambdaQueryWrapper<Segment>()
+        if (0 < segmentService.count(new LambdaQueryWrapper<Segment>()
                         .eq(Segment::getAgvId, agvId)
                         .and( i -> {
 //                    i.eq(Segment::getState, SegmentStateType.WAITING.toString()).or()
                             i.eq(Segment::getState, SegmentStateType.RUNNING.toString());
                         })
-        ) > 0) {
-            log.warn("[{}]鍙稟gv姝e湪蹇欑 -segment......", agv.getUuid());
+        )) {
+            log.warn("[{}]鍙稟gv姝e湪蹇欑 - segment......", agv.getUuid());
             return false;
         }
+//        if (0 < taskService.count(new LambdaQueryWrapper<Task>()
+//                .eq(Task::getAgvId, agvId)
+//                .eq(Task::getTaskType, TaskTypeType.TO_CHARGE.val())
+//                .in(Task::getTaskSts, TaskStsType.ASSIGN.val(), TaskStsType.PROGRESS.val())
+//        )){
+//            log.warn("[{}]鍙稟gv姝e湪鍘诲厖鐢� - task......", agv.getUuid());
+//            return false;
+//        }
         if (!this.judgeOnline(agv.getId())) {
             log.warn("[{}]鍙稟gv涓嶆槸鍦ㄧ嚎鐘舵��......", agv.getUuid());
             return false;
@@ -109,14 +119,14 @@
                 log.warn("[{}]鍙稟gv褰撳墠涓嶅湪瀹氫綅......", agv.getUuid());
                 return false;
             }
+            if (null == agvDetail.getRecentCode()) {
+                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()) {
+            if (agvDetailService.isPowerLoss(agv, agvDetail, agvModel)) {
                 log.warn("[{}]鍙稟gv鐢甸噺涓嶈冻......", agv.getUuid());
                 return false;
             }
@@ -152,12 +162,32 @@
 
     @Override
     public Integer getBackpack(Agv agv) {
-        if (null != agv.getStage()) {
-            return agv.getStage();
-        }
+//        if (null != agv.getStage()) {
+//            return agv.getStage();
+//        }
         AgvModel agvModel = agvModelService.getById(agv.getAgvModel());
         assert null != agvModel;
         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 (null == agvDetail.getRecentCode()) {
+                continue;
+            }
+            if (agvDetail.getRecentCode().equals(codeId)) {
+                return agv;
+            }
+        }
+        return null;
+    }
+
 }

--
Gitblit v1.9.1