From a1e94379b115721b2e604070dc48063b8016f72f Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 21 十月 2025 19:32:59 +0800
Subject: [PATCH] 侧面输送线出库码盘信息对接

---
 src/main/java/com/zy/core/model/protocol/StaProtocol.java        |   18 +++++++++
 src/main/java/com/zy/asrs/entity/TaskWrk.java                    |    8 ++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java      |    5 ++
 src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java      |   15 +++++++
 src/main/resources/mapper/TaskWrkLogMapper.xml                   |    4 +
 src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java |    3 +
 src/main/resources/mapper/TaskWrkMapper.xml                      |    3 +
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java      |    3 +
 src/main/java/com/zy/core/thread/SiemensDevpThread.java          |   47 +++++++++++++++++++++++
 src/main/java/com/zy/asrs/entity/TaskWrkLog.java                 |    9 ++++
 10 files changed, 114 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/TaskWrk.java b/src/main/java/com/zy/asrs/entity/TaskWrk.java
index ced303e..1822651 100644
--- a/src/main/java/com/zy/asrs/entity/TaskWrk.java
+++ b/src/main/java/com/zy/asrs/entity/TaskWrk.java
@@ -180,6 +180,14 @@
     @TableField("type")
     private String type;
 
+    @TableField("mp")
+    private short mp;
+
+    @TableField("lx")
+    private short lx;
+
+    @TableField("lev")
+    private short lev;
 
     public TaskWrk() {
     }
diff --git a/src/main/java/com/zy/asrs/entity/TaskWrkLog.java b/src/main/java/com/zy/asrs/entity/TaskWrkLog.java
index 29e06e5..08df704 100644
--- a/src/main/java/com/zy/asrs/entity/TaskWrkLog.java
+++ b/src/main/java/com/zy/asrs/entity/TaskWrkLog.java
@@ -171,6 +171,15 @@
     @TableField("type")
     private String type;
 
+    @TableField("mp")
+    private short mp;
+
+    @TableField("lx")
+    private short lx;
+
+    @TableField("lev")
+    private short lev;
+
     public TaskWrkLog() {
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java b/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
index 73bfea3..bf4fc42 100644
--- a/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
@@ -35,6 +35,21 @@
     //鍫嗗灈鏈�
     private Integer crn;
 
+    /**
+     * 1锛氱爜鐩樸��  2涓嶇爜鐩�
+     */
+    private short mp;
+
+    /**
+     * 绉嶇被1 姘歌繙涓嶅彔鐩橈紱2鍙�2灞傦紱3鍙犱笁灞傦紱4鍙犲洓灞�
+     */
+    private short lx;
+
+    /**
+     * 鐮佺洏灞傛暟
+     */
+    private short lev;
+
     public TaskCreateParam() {
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java b/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
index a91420c..c907cd3 100644
--- a/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
+++ b/src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
@@ -18,6 +18,9 @@
     //鏄惁婊℃澘
     private Integer fullPlt;
 
+    // 鐮佺洏楂樺害 1浣�2楂�
+    private short mpHigh;
+
     // 鐗╂枡鍙峰垪琛�
     private List<String> matIdList;
 }
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 c3948e6..786c08c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -182,6 +182,7 @@
                         storageEscalationParam.setBarcode(BoxNo);
                         storageEscalationParam.setMatIdList(staProtocol.getMatIdList());
                         storageEscalationParam.setFullPlt(staProtocol.isFullPlt() ? 1 : 0);
+                        storageEscalationParam.setMpHigh(staProtocol.getMpHigh());
                         log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
                         TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam);
                         if (taskWrk == null) {
@@ -254,6 +255,10 @@
                             boolean offer = false;
                             try {
                                 offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+                                staProtocol.setMp(taskWrk.getMp());
+                                staProtocol.setLx(taskWrk.getLx());
+                                staProtocol.setLev(taskWrk.getLev());
+                                MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
                             } catch (Exception e) {
                                 log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
                                 log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 8e0d452..aa8cb04 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -81,6 +81,9 @@
         taskWrk.setBarcode(param.getBarcode());//鏉$爜
         taskWrk.setCrnNo(locMast.getCrnNo());
         taskWrk.setType(param.getType());
+        taskWrk.setMp(param.getMp());
+        taskWrk.setLx(param.getLx());
+        taskWrk.setLev(param.getLev());
         if (param.getIoType() == 1) {
             taskWrk.setWrkSts(1);
             if (!Cools.isEmpty(param.getTargetPoint())) {
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 06e9ca6..54b0c3f 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -73,6 +73,24 @@
     // 鏉$爜锛屼晶闈㈠嚭搴撶粰杈撻�佺嚎
     private String barcode;
 
+    // 楂樺害锛屼晶闈㈢爜鐩樼殑楂樺害
+    private short mpHigh;
+
+    /**
+     * 1锛氱爜鐩樸��  2涓嶇爜鐩�
+     */
+    private short mp;
+
+    /**
+     * 绉嶇被1 姘歌繙涓嶅彔鐩橈紱2鍙�2灞傦紱3鍙犱笁灞傦紱4鍙犲洓灞�
+     */
+    private short lx;
+
+    /**
+     * 鐮佺洏灞傛暟
+     */
+    private short lev;
+
     // 澶栧舰妫�娴� ------------------------------------------------------------------------
 
     // 鍓嶈秴闄�
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index f7a97a0..baec76c 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -159,6 +159,11 @@
                         write((StaProtocol) task.getData());
                         read();
                         break;
+                    // 鍑哄叆搴撳啓鐮佺洏淇℃伅
+                    case 3:
+                        write3((StaProtocol) task.getData());
+                        read();
+                        break;
                     default:
                         break;
                 }
@@ -653,6 +658,48 @@
 
     }
 
+    private void write3(StaProtocol staProtocol){
+
+        int lx = 0,mp = 0,lev = 0;
+
+        switch (staProtocol.getSiteId()) {
+            case 205: lx = 16;mp = 18;lev=344;break;
+            case 207: lx = 24;mp = 26;lev=348;break;
+            case 210: lx = 36;mp = 38;lev=354;break;
+            case 212: lx = 44;mp = 46;lev=358;break;
+            default:
+                log.error("鍐欑爜鐩樹俊鎭珯鐐规湁璇細{}" , staProtocol.getSiteId());
+                return;
+        }
+
+        String addressPre = "DB79.";
+
+        //浠诲姟涓嬪彂娆℃暟
+        int writeCount = 0;
+        //浠诲姟涓嬪彂鎴愬姛鏍囪瘑
+        boolean writeFlag = false;
+        while (writeCount < 5) {
+            OperateResult writeResult1 = siemensS7Net.Write(addressPre + lx, staProtocol.getLx());    // 宸ヨ绫诲瀷
+            OperateResult writeResult2 = siemensS7Net.Write(addressPre + mp, staProtocol.getMp());    // 鏄惁鐮佺洏
+            OperateResult writeResult3 = siemensS7Net.Write(addressPre + lev, staProtocol.getLev());    // 鐮佺洏灞傛暟
+            if (writeResult1.IsSuccess && writeResult2.IsSuccess && writeResult3.IsSuccess) {
+                    writeFlag = true;
+                    log.info("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+                    break;
+            } else {
+                writeCount++;
+                log.error("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+            }
+        }
+
+        //鍐欏懡浠ゅ皾璇曚簡5娆¤繕鏄け璐ヤ簡
+        if (!writeFlag) {
+            //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒�
+            MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
+            log.error("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ラ噸鏂版帹閫侀槦鍒椼�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+        }
+    }
+
 //    /**
 //     * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
 //     */
diff --git a/src/main/resources/mapper/TaskWrkLogMapper.xml b/src/main/resources/mapper/TaskWrkLogMapper.xml
index e07c447..373e6bb 100644
--- a/src/main/resources/mapper/TaskWrkLogMapper.xml
+++ b/src/main/resources/mapper/TaskWrkLogMapper.xml
@@ -25,7 +25,9 @@
         <result column="crn_no" property="crnNo" />
         <result column="command_step" property="commandStep" />
         <result column="transfer_mark" property="transferMark" />
-
+        <result column="mp" property="mp"/>
+        <result column="lx" property="lx"/>
+        <result column="lev" property="lev"/>
     </resultMap>
 
 </mapper>
diff --git a/src/main/resources/mapper/TaskWrkMapper.xml b/src/main/resources/mapper/TaskWrkMapper.xml
index 1efa21d..b7d3f81 100644
--- a/src/main/resources/mapper/TaskWrkMapper.xml
+++ b/src/main/resources/mapper/TaskWrkMapper.xml
@@ -25,6 +25,9 @@
         <result column="command_step" property="commandStep" />
         <result column="transfer_mark" property="transferMark" />
         <result column="mark_start" property="markStart"/>
+        <result column="mp" property="mp"/>
+        <result column="lx" property="lx"/>
+        <result column="lev" property="lev"/>
 
     </resultMap>
     

--
Gitblit v1.9.1