From e356cb699f91ff4359ef0e835fd311436489b9d8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 26 十月 2022 12:51:22 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/BasSteService.java          |    2 --
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java   |   36 ++++++++++++++++++++++++++----------
 src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java |   22 +++-------------------
 3 files changed, 29 insertions(+), 31 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/BasSteService.java b/src/main/java/com/zy/asrs/service/BasSteService.java
index e26fd21..0b1f825 100644
--- a/src/main/java/com/zy/asrs/service/BasSteService.java
+++ b/src/main/java/com/zy/asrs/service/BasSteService.java
@@ -5,8 +5,6 @@
 
 public interface BasSteService extends IService<BasSte> {
 
-    BasSte findByCrnNo(Integer crnNo);
-
     Boolean updatePos(Integer steNo, Integer row, Integer bay, Integer lev);
 
     Boolean updatePakMk(Integer steNo, String pakMk);
diff --git a/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
index 5b3e947..7571e41 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
@@ -1,31 +1,15 @@
 package com.zy.asrs.service.impl;
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.zy.asrs.mapper.BasSteMapper;
-import com.zy.asrs.entity.BasSte;
-import com.zy.asrs.service.BasSteService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.BasSte;
+import com.zy.asrs.mapper.BasSteMapper;
+import com.zy.asrs.service.BasSteService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-
-import java.util.List;
 
 @Slf4j
 @Service("basSteService")
 public class BasSteServiceImpl extends ServiceImpl<BasSteMapper, BasSte> implements BasSteService {
-
-    @Override
-    public BasSte findByCrnNo(Integer crnNo) {
-        List<BasSte> basStes = this.selectList(new EntityWrapper<BasSte>().eq("crn_no", crnNo));
-        if (Cools.isEmpty(basStes)) {
-            return null;
-        }
-        if (basStes.size() > 1) {
-            log.warn("鐩墠鏈墈}鍙扮┛姊溅褰掑睘浜巤}鍙峰爢鍨涙満!!!", basStes.size(), crnNo);
-        }
-        return basStes.get(0);
-    }
 
     @Override
     public Boolean updatePos(Integer steNo, Integer row, Integer bay, Integer lev) {
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 0763134..c4be203 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.annotations.ManagerAuth;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
@@ -898,7 +899,7 @@
                                 }
                             }
                         }
-                        // 娌℃湁灏忚溅
+                    // 娌℃湁灏忚溅
                     } else {
                         if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == null) {
                             // 瀵绘壘褰撳墠鍫嗗灈鏈哄搴旂殑灏忚溅
@@ -1290,17 +1291,32 @@
      * 鏌ユ壘褰撳墠搴撲綅鏈�閫傚悎鐨勭┛姊溅鏉ヤ綔涓�
      */
     public SteThread queryIdleCar(WrkMast wrkMast) {
-        Integer crnNo = wrkMast.getCrnNo();
-        BasSte basSte = basSteService.findByCrnNo(crnNo);
-        // 鑾峰彇绌挎杞︿俊鎭�
-        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, basSte.getSteNo());
-        SteProtocol steProtocol = steThread.getSteProtocol();
-        if (steProtocol != null) {
-            if (steProtocol.isIdle()) {
-                return steThread;
+        List<BasSte> basStes = basSteService.selectList(new EntityWrapper<>());
+        int val = 0;
+        SteThread result = null;
+        for (BasSte basSte : basStes) {
+            // 鑾峰彇绌挎杞︿俊鎭�
+            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, basSte.getSteNo());
+            SteProtocol steProtocol = steThread.getSteProtocol();
+            if (steProtocol == null) { continue; }
+            if (!steProtocol.isIdle()) { continue; }
+            String locNo = wrkMast.getWrkSts() < 10 ? wrkMast.getLocNo() : wrkMast.getSourceLocNo();
+            LocMast locMast = locMastService.selectById(locNo);
+            int lev = locMast.getLev1();
+            int bay = locMast.getBay1();
+            int levAbs = Math.abs(lev - steProtocol.getLev());
+            int bayAbs = Math.abs(bay - steProtocol.getBay());
+            if (val == 0) {
+                val = levAbs + bayAbs;
+                result = steThread;
+            } else {
+                if ((levAbs + bayAbs) < val) {
+                    val = levAbs + bayAbs;
+                    result = steThread;
+                }
             }
         }
-        return null;
+        return result;
     }
 
     /**

--
Gitblit v1.9.1