From a0127f98adf17fd714597325443e3ec132f6c820 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 11 八月 2020 09:06:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   31 +++++++++++++++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java         |    4 ++
 src/main/java/com/zy/core/model/command/CrnCommand.java     |   55 +++++++++++++++++++++++++++
 3 files changed, 89 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 8762dda..5f98223 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -24,6 +24,10 @@
     @Select("select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=2 and barcode=#{barcode} and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC")
     WrkMast selectPakInStep1(@Param("sourceStaNo")Integer sourceStaNo, @Param("barcode")String barcode);
 
+    // 鍏ュ簱绗簩姝ワ紝褰撴墭鐩樼墿鏂欏湪鍫嗗灈鏈哄叆搴撶珯鏃舵椂鏌ヨ
+    @Select("select top 1 * from dbo.asr_wrk_mast where wrk_sts=2 and crn_no={crnNo} and wrk_no={workNo} 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")
+    WrkMast selectPakInStep2(@Param("crnNo")Integer crnNo, @Param("workNo")Integer workNo);
+
     // 鎷f枡鍐嶅叆搴撴椂锛岀珯鐐规湁鐗╀笖闇�姹傛椂鏌ヨ
     @Select("select top 1 * from asr_wrk_mast where wrk_no=#{workNo} and wrk_sts=14 and (io_type=103 or io_type=107 or io_type=104)")
     WrkMast selectPickStep(@Param("workNo")Integer workNo);
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 bb03d87..bd2af25 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
@@ -19,6 +20,7 @@
 import com.zy.core.model.CrnSlave;
 import com.zy.core.model.DevpSlave;
 import com.zy.core.model.Task;
+import com.zy.core.model.command.CrnCommand;
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.properties.SlaveProperties;
@@ -348,9 +350,36 @@
             if (!flag) {
                 return;
             }
-            WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+            // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
+            WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo());
+            if(null == wrkMast) {
+                log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+                return;
+            }
+            // 鑾峰彇搴撲綅淇℃伅
+            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+            if (locMast == null) {
+                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+                return;
+            }
+            if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
+                log.error("搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+                return;
+            }
 
+            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+//            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, slave.getId());
+//            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
 
+            CrnCommand crnCommand = new CrnCommand();
+            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鎺�
+            crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鍒�
+            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 灞�
+            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task<>(2, crnCommand))) {
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                throw new CoolException("鏇存柊鍫嗗灈鏈轰俊鎭け璐�");
+            }
         }
     }
 
diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java
new file mode 100644
index 0000000..b031fb3
--- /dev/null
+++ b/src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -0,0 +1,55 @@
+package com.zy.core.model.command;
+
+import lombok.Data;
+
+/**
+ * 鍫嗗灈鏈哄懡浠ゆ姤鏂�
+ * Created by vincent on 2020/8/11
+ */
+@Data
+public class CrnCommand {
+
+    // 鍫嗗灈鏈哄彿
+    private Integer crnNo;
+
+    // 浠诲姟涓嬪彂纭浣�
+    private Short stb;
+
+    // 浠诲姟瀹屾垚纭浣�
+    private Short ackFinish;
+
+    // 浠诲姟鍙�
+    private Short taskNo;
+
+    /**
+     * 浠诲姟妯″紡锛�
+     * 0 = 鏃�
+     * 1 = 鍏ュ簱
+     * 2 = 鍑哄簱
+     * 3 = 搴撲綅绉昏浆
+     * 4 = 绔欎綅绉昏浆
+     * 5 = 鍥炲師鐐�
+     * 6 = 鍘诲弽鍘熺偣
+     * 7 = 鍧愭爣绉昏
+     */
+    private Short taskMode;
+
+    // 婧愪綅缃帓鍙�
+    private Short sourcePosX;
+
+    // 婧愪綅缃垪鍙�
+    private Short sourcePosY;
+
+    // 婧愪綅缃眰鍙�
+    private Short sourcePosZ;
+
+    // 鐩爣浣嶇疆鎺掑彿
+    private Short destinationPosX;
+
+    // 鐩爣浣嶇疆鍒楀彿
+    private Short destinationPosY;
+
+    // 鐩爣浣嶇疆灞傚彿
+    private Short destinationPosZ;
+
+}

--
Gitblit v1.9.1