From 2cdb769a5fc08e1efbf724cf92d3b108d634aa26 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 21 七月 2023 16:54:39 +0800
Subject: [PATCH] 计算中间点到目标点行走距离

---
 src/main/java/com/zy/core/thread/LiftThread.java |   29 ++++++++++++++++++++++++++---
 1 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index 2e48701..d2dfb3a 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -11,8 +11,11 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasLift;
 import com.zy.asrs.entity.BasLiftOpt;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.BasLiftOptService;
 import com.zy.asrs.service.BasLiftService;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.utils.CommonUtils;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.DevpThread;
@@ -256,7 +259,7 @@
         short[] array = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃
 
         try {
-            Thread.sleep(1000);//鍛戒护涓嬪彂鍓嶄紤鐪�1s
+            Thread.sleep(500);//鍛戒护涓嬪彂鍓嶄紤鐪�
         } catch (InterruptedException e) {
             throw new RuntimeException(e);
         }
@@ -267,7 +270,7 @@
             OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
 
             try {
-                Thread.sleep(1000);//鍛戒护涓嬪彂鍚庝紤鐪�
+                Thread.sleep(500);//鍛戒护涓嬪彂鍚庝紤鐪�
             } catch (InterruptedException e) {
                 throw new RuntimeException(e);
             }
@@ -286,7 +289,7 @@
                 News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {},娆℃暟锛歿}", slave.getId(), JSON.toJSON(command), i);
                 OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2},娆℃暟锛歿}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command), i));
                 try {
-                    Thread.sleep(3000);//鍛戒护涓嬪彂鍚庝紤鐪�
+                    Thread.sleep(300);//鍛戒护涓嬪彂鍚庝紤鐪�
                 } catch (InterruptedException e) {
                     throw new RuntimeException(e);
                 }
@@ -404,6 +407,7 @@
             return false;
         }
 
+        WrkMastMapper wrkMastMapper = SpringUtils.getBean(WrkMastMapper.class);
         Object o = redisUtil.get("lift_wrk_no_" + wrkNo);
         if (o == null) {
             return false;
@@ -459,6 +463,7 @@
             //绔欑偣鍜岃緭閫佺嚎ID涓嶄负null锛岄渶瑕佷笅鍙戠珯鐐规寚浠よ皟搴︽寚瀹氱珯鐐硅繘琛岄摼鏉¤浆鍔�
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, command.getDevpId());
             StaProtocol staProtocol = devpThread.getStation().get(command.getOperaStaNo().intValue());
+            staProtocol = staProtocol.clone();
             if (!staProtocol.isLiftArrival()) {//閾炬潯杞姩鏉′欢锛岄渶瑕佹湁鎻愬崌鏈哄埌浣嶄俊鍙�
                 liftProtocol.setPakMk(true);
                 return false;
@@ -475,6 +480,24 @@
             boolean result1 = MessageQueue.offer(SlaveType.Devp, devpId, new Task(3, staProtocol));//涓嬪彂鍛戒护浣胯緭閫佺嚎閾炬潯杩愯浆
         }
 
+        WrkMast wrkMast = wrkMastMapper.selectByWorkNo(wrkNo.intValue());
+        if (wrkMast != null) {
+            if (wrkMast.getWrkSts() == 28) {//28.鎻愬崌鏈烘惉杩愪腑
+                if (command.getRun().intValue() == 1 && command.getDistPosition().intValue() == LiftLevType.TWO.lev) {
+                    //鎻愬崌鏈虹Щ鍔ㄤ笖浣嶇疆鏄埌杈撻�佺嚎妤煎眰锛岄渶瑕佸垽鏂珯鐐硅揣鐗╂槸鍚︽棤鐗╋紝鎻愬崌鏈烘槸鍚︽湁鐗�
+                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, command.getDevpId());
+                    //宸ヤ綔妗f簮搴撲綅妤煎眰
+                    int wrkMastLocNoLey = Utils.getLev(wrkMast.getSourceLocNo());
+                    StaProtocol staProtocol = devpThread.getStation().get(Utils.levToOutInStaNo(wrkMastLocNoLey >= 2 ? wrkMastLocNoLey + 1 : wrkMastLocNoLey));//璧峰绔欑偣
+                    //鍒ゆ柇杈撻�佺珯鐐规槸鍚︽湁鐗╋紝鍙湁鏃犵墿鎯呭喌鎵嶈兘缁х画璋冨害鎻愬崌鏈�
+                    if (staProtocol.isLoading()) {
+                        //鏈夌墿绂佹璋冨害
+                        return false;
+                    }
+                }
+            }
+        }
+
         //涓嬪彂鍛戒护
         if (!write(command)) {
             News.error("鎻愬崌鏈哄懡浠や笅鍙戝け璐ワ紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command));

--
Gitblit v1.9.1