From b176549aca3510a66610c03b2d9878cc4f811195 Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期二, 22 三月 2022 07:57:58 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   52 ++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java         |   13 ++++++
 src/main/resources/mapper/WrkMastMapper.xml                 |    7 +++
 src/main/resources/application.yml                          |   19 ++++++---
 4 files changed, 84 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 6f9c9c0..55a5ded 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -74,4 +74,17 @@
 
     WrkMast selectWorkingPakout();
 
+    /**
+     * 鍫嗗灈鏈烘槸鍚﹀瓨鍦ㄥ嚭搴撲换鍔�
+     * @param crnNo
+     * @return
+     */
+    WrkMast selectCrnWorking(@Param("crnNo")Integer crnNo);
+
+    /**
+     * 杈撻�佺嚎鏄惁瀛樺湪鍏ュ簱浠诲姟
+     * @param crnNo
+     * @return
+     */
+    WrkMast selectDevWorking(@Param("crnNo")Integer crnNo);
 }
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 ec51e5d..5d31a74 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -89,6 +89,8 @@
     private BasCrnErrorMapper basCrnErrorMapper;
     @Value("${wms.url}")
     private String wmsUrl;
+    @Value("${crnBackHp.enable}")
+    private boolean crnBackHp;
 
     /**
      * 缁勬墭
@@ -549,10 +551,60 @@
             }
             // 搴撲綅绉昏浆
             this.locToLoc(crn, crnProtocol);
+
+            if (crnBackHp) {
+                //鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
+                this.crnRebackHp(crn, crnProtocol);
+            }
         }
     }
 
     /**
+     * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
+     * @param slave
+     * @param crnProtocol
+     */
+    public void crnRebackHp(CrnSlave slave, CrnProtocol crnProtocol){
+            // 鍫嗗灈鏈烘帶鍒惰繃婊�
+            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0
+                || crnProtocol.getModeType() != CrnModeType.AUTO) {
+                return;
+            }
+
+            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+            if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+                return;
+            }
+
+            //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护
+            if (wrkMastMapper.selectCrnWorking(slave.getId()) != null) {
+                return;
+            }
+
+            //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�
+            if (wrkMastMapper.selectDevWorking(slave.getId()) == null) {
+                return;
+            }
+
+            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            CrnCommand crnCommand = new CrnCommand();
+            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+            crnCommand.setTaskNo((short) 1); // 宸ヤ綔鍙�
+            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  鍥炲師鐐�
+            crnCommand.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+            crnCommand.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+            crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+            crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+            if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
+                log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", slave.getId(), JSON.toJSON(crnCommand));
+            } else {
+            }
+    }
+
+    /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
      */
     public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol){
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0f6300e..281d5b3 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -41,6 +41,10 @@
   url: 10.10.10.238:8080/xgmwms
 #  url: localhost:8082/xgmwms
 
+#鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃緭閫佹湁鍏ュ簱浠诲姟锛屽彨鍥炲師鐐�
+crnBackHp:
+  enable: true
+
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:
   # 鍙屾繁
@@ -170,9 +174,10 @@
     inSta[0]:
       staNo: 176
       barcode: ${wcs-slave.barcode[0].id}
-#    inSta[1]:
-#      staNo: 180
-#      barcode: ${wcs-slave.barcode[1].id}
+    # 鍏ュ簱鍙�2
+    inSta[1]:
+      staNo: 180
+      barcode: ${wcs-slave.barcode[1].id}
     # 绌烘澘鍏ュ簱鍙�1
     emptyInSta[0]:
       staNo: 176
@@ -191,10 +196,10 @@
     id: 1
     ip: 10.10.10.52
     port: 51236
-#  barcode[1]:
-#    id: 2
-#    ip: 10.10.10.53
-#    port: 51236
+  barcode[1]:
+    id: 2
+    ip: 10.10.10.53
+    port: 51236
    # LED1
   led[0]:
     id: 1
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index d9d5431..96c7603 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -140,5 +140,12 @@
         order by io_time,wrk_no
     </select>
 
+    <select id="selectCrnWorking" resultMap="BaseResultMap">
+        select top 1 * from dbo.asr_wrk_mast where 1=1 and wrk_sts in (3,4,11,12) and crn_no=#{crnNo} order by io_time,wrk_no
+    </select>
+
+    <select id="selectDevWorking" resultMap="BaseResultMap">
+        select top 1 * from dbo.asr_wrk_mast where 1=1 and wrk_sts=2 and crn_no=#{crnNo} order by io_time,wrk_no
+    </select>
 
 </mapper>

--
Gitblit v1.9.1