From 69e1880e5486ebc62da4806642ca817afda9c84c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 05 十月 2023 14:09:45 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java b/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
index 138a943..b9ed6ba 100644
--- a/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/common/utils/ShuttleDispatchUtils.java
@@ -1,12 +1,17 @@
 package com.zy.common.utils;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.BasShuttle;
 import com.zy.asrs.entity.WrkCharge;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.mapper.WrkChargeMapper;
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.service.BasShuttleService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.NavigateNode;
@@ -24,6 +29,8 @@
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.LiftThread;
 import com.zy.core.thread.NyShuttleThread;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -131,6 +138,13 @@
 
             if (wrkMast1 != null) {
                 int lev = Utils.getLev(wrkMast1.getLocNo());//鐩爣妤煎眰
+
+                //妫�娴嬬洰鏍囨ゼ灞傝溅鏁伴噺鏄惁灏忎簬鍏佽鐨勬渶澶ф暟閲�
+                boolean checkDispatchMaxNum = checkDispatchMaxNum(lev);
+                if (!checkDispatchMaxNum) {
+                    return false;
+                }
+
                 int recentValue = 99999;//鏈�灏忓樊鍊�
                 for (NyShuttleThread shuttleThread : diffLev) {
                     //褰撳墠绌挎杞﹀簱浣嶅彿
@@ -266,6 +280,48 @@
     }
 
     /**
+     * 妫�娴嬬洰鏍囨ゼ灞傝溅鏁伴噺鏄惁灏忎簬鍏佽鐨勬渶澶ф暟閲�
+     * true: 灏忎簬鏈�澶ф暟閲�  false: 澶т簬鎴栫瓑浜庢渶澶ф暟閲�
+     */
+    public boolean checkDispatchMaxNum(Integer lev) {
+        BasShuttleService basShuttleService = SpringUtils.getBean(BasShuttleService.class);
+        ConfigService configService = SpringUtils.getBean(ConfigService.class);
+        EntityWrapper<Config> wrapper = new EntityWrapper<>();
+        wrapper.eq("code", "dispatchShuttleMaxNum");
+        Config config = configService.selectOne(wrapper);
+        if (config == null) {
+            return false;
+        }
+
+        int levCount = 0;//鐩爣妤煎眰杞﹁締鏁伴噺
+        for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
+            //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
+            NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
+            NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
+            if (shuttleProtocol == null || shuttleProtocol.getShuttleNo() == null) {
+                continue;
+            }
+
+            NyShuttleProtocol.NyShuttlePointClass point = null;
+            if (shuttleProtocol.getPoint() == null) {
+                BasShuttle basShuttle = basShuttleService.selectById(shuttle.getId());//灏忚溅濡傛灉娌℃湁鏁版嵁锛屼粠鏁版嵁搴撳彇鏁版嵁
+                if (basShuttle == null || basShuttle.getPoint() == null) {
+                    continue;
+                }
+                point = JSON.parseObject(basShuttle.getPoint(), NyShuttleProtocol.NyShuttlePointClass.class);
+            }else {
+                point = shuttleProtocol.getPoint();
+            }
+
+            if (point.getZ().equals(lev)) {
+                levCount++;//鐩爣妤煎眰鏈夎溅锛屾暟閲忓鍔�
+            }
+        }
+
+        return levCount < Integer.parseInt(config.getValue());
+    }
+
+    /**
      * 鑾峰彇绌挎杞︽渶杩戜笖绌洪棽鐨勬彁鍗囨満杈撻�佺珯鐐�
      */
     public LiftStaProtocol getRecentLiftSta(Integer shuttleNo) {

--
Gitblit v1.9.1