From 06dcb0ea144ae13689545ada3496d01cf686d181 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 15 十一月 2023 15:51:16 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/WrkMastService.java          |    2 +
 src/main/java/com/zy/asrs/utils/Utils.java                     |   25 ++++++++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   20 ++++++++++
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java |   25 ++++++++++++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java            |    4 ++
 src/main/resources/mapper/WrkMastMapper.xml                    |    8 ++++
 6 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 90bba5e..6af4d04 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -118,4 +118,8 @@
      * 鏌ヨ鏄惁鏄洏鐐瑰嚭搴擄紝妫�鏂欏嚭搴�
      */
     WrkMast selectpj(@Param("staNo")Integer staNo,@Param("barcode")String barcode);
+
+    List<WrkMast> selectLaneWrkMastIn();//鏌ヨ鍏ュ簱浠诲姟
+
+    List<WrkMast> selectLaneWrkMastOut();//鏌ヨ鍑哄簱浠诲姟
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index bd2be23..5263e48 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -17,4 +17,6 @@
     int getOutToStn182(Integer devpNo);
 
     WrkMast selectpj(Integer staNo,String barcode);
+
+    List<WrkMast> selectLaneWrkMast(Integer lane, Boolean pakIn);//鏌ヨ鎸囧畾宸烽亾浠诲姟
 }
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 e9739c2..7c81420 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -67,6 +67,8 @@
     @Autowired
     private WrkMastMapper wrkMastMapper;
     @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
     private WrkDetlService wrkDetlService;
     @Autowired
     private WaitPakinMapper waitPakinMapper;
@@ -736,6 +738,15 @@
                 continue;
             }
 
+            //鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
+            if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
+                //鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
+                List<WrkMast> wrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), true);
+                if (!wrkMasts.isEmpty()) {
+                    continue;//褰撳墠鍫嗗灈鏈烘墍鍦ㄥ贩閬撳瓨鍦ㄤ换鍔�
+                }
+            }
+
             // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
             if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
                 String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
@@ -930,6 +941,15 @@
 //                        return;
                     }
 
+                    //鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
+                    if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
+                        //鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
+                        List<WrkMast> laneWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false);
+                        if (!laneWrkMasts.isEmpty()) {
+                            continue;//褰撳墠鍫嗗灈鏈烘墍鍦ㄥ贩閬撳瓨鍦ㄤ换鍔�
+                        }
+                    }
+
                     // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
                     CrnCommand crnCommand = new CrnCommand();
                     crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index d5b6da9..6c2cc0d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -5,8 +5,11 @@
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.Utils;
 import org.springframework.stereotype.Service;
 
+import javax.rmi.CORBA.Util;
+import java.util.ArrayList;
 import java.util.List;
 
 @Service("wrkMastService")
@@ -37,4 +40,26 @@
         return this.baseMapper.selectpj(staNo,barcode);
     }
 
+    @Override
+    public List<WrkMast> selectLaneWrkMast(Integer lane, Boolean pakIn) {
+        List<WrkMast> list = new ArrayList<>();
+
+        List<WrkMast> wrkMasts = null;
+        if (pakIn) {
+            wrkMasts = this.baseMapper.selectLaneWrkMastIn();
+        }else {
+            wrkMasts = this.baseMapper.selectLaneWrkMastOut();
+        }
+
+        if (wrkMasts == null) {
+            return list;
+        }
+
+        for (WrkMast wrkMast : wrkMasts) {
+            if (Utils.getLaneByLocNo(wrkMast.getLocNo()) == lane) {
+                list.add(wrkMast);
+            }
+        }
+        return list;
+    }
 }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 36a0324..d1ee128 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -161,6 +161,31 @@
 
     }
 
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙栨墍鍦ㄥ贩閬�
+     */
+    public static int getLaneByLocNo(String locNo) {
+        int row = Utils.getRow(locNo);
+        switch (row) {
+            case 1:
+            case 2:
+            case 3:
+            case 4:
+                return 1;
+            case 5:
+            case 6:
+            case 7:
+            case 8:
+                return 2;
+            case 9:
+            case 10:
+            case 11:
+            case 12:
+                return 3;
+        }
+        return 0;
+    }
+
     public static void main(String[] args) {
         SlaveProperties slaveProperties = new SlaveProperties();
         slaveProperties.setDoubleDeep(true);
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 47a7004..14e16a5 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -195,4 +195,12 @@
     <select id="selectpj" resultMap="BaseResultMap">
         select * from dbo.asr_wrk_mast where  wrk_sts =14 and barcode=#{barcode}
     </select>
+
+    <select id="selectLaneWrkMastIn" resultMap="BaseResultMap">
+        select * from dbo.asr_wrk_mast where wrk_sts=2 and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57) order by io_pri desc,io_time,wrk_no ASC
+    </select>
+
+    <select id="selectLaneWrkMastOut" resultMap="BaseResultMap">
+        select * from dbo.asr_wrk_mast where wrk_sts in (11,12,13,14) and io_type>100 order by io_pri desc,io_time,wrk_no asc
+    </select>
 </mapper>

--
Gitblit v1.9.1