From 405a34a73ddad9367c1a40b03a5f8cec914ad683 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 03 七月 2023 13:30:22 +0800
Subject: [PATCH] 命令下发保存二进制报文

---
 src/main/java/com/zy/core/thread/LiftThread.java    |   44 +++++++++++++---------
 src/main/java/com/zy/core/thread/ShuttleThread.java |   45 ++++++++++++----------
 src/main/java/com/zy/asrs/entity/BasLiftOpt.java    |    9 ++++
 src/main/java/com/zy/asrs/entity/BasShuttleOpt.java |    9 ++++
 4 files changed, 66 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasLiftOpt.java b/src/main/java/com/zy/asrs/entity/BasLiftOpt.java
index 932332f..1bd9be4 100644
--- a/src/main/java/com/zy/asrs/entity/BasLiftOpt.java
+++ b/src/main/java/com/zy/asrs/entity/BasLiftOpt.java
@@ -76,9 +76,15 @@
     @ApiModelProperty(value= "鍛戒护")
     private String command;
 
+    /**
+     * 鍛戒护
+     */
+    @ApiModelProperty(value= "鍛戒护鎶ユ枃(涓嬪彂)")
+    private String commandSend;
+
     public BasLiftOpt() {}
 
-    public BasLiftOpt(Integer wrkNo,Integer liftNo,Date sendTime,Date updateTime,Long updateBy,String memo,String command) {
+    public BasLiftOpt(Integer wrkNo, Integer liftNo, Date sendTime, Date updateTime, Long updateBy, String memo, String command, String commandSend) {
         this.wrkNo = wrkNo;
         this.liftNo = liftNo;
         this.sendTime = sendTime;
@@ -86,6 +92,7 @@
         this.updateBy = updateBy;
         this.memo = memo;
         this.command = command;
+        this.commandSend = commandSend;
     }
 
 //    BasLiftOpt basLiftOpt = new BasLiftOpt(
diff --git a/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java b/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java
index 8739111..798b0ca 100644
--- a/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java
+++ b/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java
@@ -96,9 +96,15 @@
     @ApiModelProperty(value= "鍛戒护")
     private String command;
 
+    /**
+     * 鍛戒护
+     */
+    @ApiModelProperty(value= "鍛戒护鎶ユ枃(涓嬪彂)")
+    private String commandSend;
+
     public BasShuttleOpt() {}
 
-    public BasShuttleOpt(Integer wrkNo,Integer shuttleNo,Date sendTime,String mode,String sourceLocNo,String distLocNo,Date updateTime,Long updateBy,String memo,String command) {
+    public BasShuttleOpt(Integer wrkNo,Integer shuttleNo,Date sendTime,String mode,String sourceLocNo,String distLocNo,Date updateTime,Long updateBy,String memo,String command,String commandSend) {
         this.wrkNo = wrkNo;
         this.shuttleNo = shuttleNo;
         this.sendTime = sendTime;
@@ -109,6 +115,7 @@
         this.updateBy = updateBy;
         this.memo = memo;
         this.command = command;
+        this.commandSend = commandSend;
     }
 
 //    BasShuttleOpt basShuttleOpt = new BasShuttleOpt(
diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
index a399c9e..87a8598 100644
--- a/src/main/java/com/zy/core/thread/LiftThread.java
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -244,6 +244,28 @@
         }
 
         command.setLiftNo(slave.getId().shortValue());
+        short[] array = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃
+
+        try {
+            Thread.sleep(1000);//鍛戒护涓嬪彂鍓嶄紤鐪�1s
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+
+        OperateResult result = modbusTcpNet.Write("41088", array);
+        if (result != null && result.IsSuccess) {
+            News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+            OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+            return true;
+        } else {
+            OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            return false;
+        }
+    }
+
+    //鑾峰彇鍛戒护鎶ユ枃
+    private short[] getCommandArr(LiftCommand command) {
         // 寮�濮嬩换鍔�
         short[] array = new short[30];
         //寮�濮嬭繍琛�
@@ -284,23 +306,7 @@
             tmp[1] = array[1];
             array = tmp;
         }
-
-        try {
-            Thread.sleep(1000);//鍛戒护涓嬪彂鍓嶄紤鐪�1s
-        } catch (InterruptedException e) {
-            throw new RuntimeException(e);
-        }
-
-        OperateResult result = modbusTcpNet.Write("41088", array);;
-        if (result != null && result.IsSuccess) {
-            News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
-            OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
-            return true;
-        } else {
-            OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
-            News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-            return false;
-        }
+        return array;
     }
 
     //鍒嗛厤浠诲姟
@@ -448,6 +454,7 @@
             //淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘�
             BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class);
             if (liftOptService != null) {
+                short[] commandArr = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃
                 BasLiftOpt opt = new BasLiftOpt(
                         redisCommand.getWrkNo().intValue(),
                         redisCommand.getLiftNo().intValue(),
@@ -455,7 +462,8 @@
                         null,
                         null,
                         null,
-                        JSON.toJSONString(command)
+                        JSON.toJSONString(command),
+                        JSON.toJSONString(commandArr)
                 );
                 liftOptService.insert(opt);
             }
diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index 3f5bacd..7b303b0 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -279,7 +279,6 @@
             News.error("鍥涘悜绌挎杞﹀啓鍏ュ懡浠や负绌�");
             return false;
         }
-
         BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class);
         if (shuttleService == null) {
             News.error("绯荤粺閿欒");
@@ -291,8 +290,27 @@
             News.error("鍥涘悜绌挎杞︿笉瀛樺湪");
             return false;
         }
-
         command.setShuttleNo(slave.getId().shortValue());
+        short[] array = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃
+        OperateResult result = modbusTcpNet.Write("0", array);;
+        if (result != null && result.IsSuccess) {
+            try {
+                Thread.sleep(3000);//鍛戒护涓嬪彂鍚庝紤鐪�1s
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+            News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+            OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+            return true;
+        } else {
+            OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ洓鍚戠┛姊溅plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            News.error("鍐欏叆鍥涘悜绌挎杞lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            return false;
+        }
+    }
+
+    //鑾峰彇鍛戒护鎶ユ枃
+    private short[] getCommandArr(ShuttleCommand command) {
         // 寮�濮嬩换鍔�
         short[] array = new short[17];
         //鎺у埗鎸囦护瀛�
@@ -326,7 +344,6 @@
             array[7] = middleToDistDistances[1];
         }
 
-        array[8] = basShuttle.getRunSpeed().shortValue();//鍥涘悜绌挎杞﹁繍琛岄�熷害锛屼粠绯荤粺鏁版嵁搴撹鍑�
         if (command.getRunDirection() != null) {
             //灏忚溅杩愯鏂瑰悜
             array[8] = command.getRunDirection();
@@ -363,25 +380,9 @@
             //灏忚溅闆疯揪澶囩敤
             array[15] = command.getRadarTmp();
         }
-
         //鎸囦护缁撴潫浣�
         array[16] = command.getCommandEnd();
-
-        OperateResult result = modbusTcpNet.Write("0", array);;
-        if (result != null && result.IsSuccess) {
-            try {
-                Thread.sleep(3000);//鍛戒护涓嬪彂鍚庝紤鐪�1s
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
-            }
-            News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
-            OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
-            return true;
-        } else {
-            OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ洓鍚戠┛姊溅plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
-            News.error("鍐欏叆鍥涘悜绌挎杞lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-            return false;
-        }
+        return array;
     }
 
     /**
@@ -834,6 +835,7 @@
             //淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘�
             BasShuttleOptService shuttleOptService = SpringUtils.getBean(BasShuttleOptService.class);
             if (shuttleOptService != null) {
+                short[] commandArr = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃
                 BasShuttleOpt opt = new BasShuttleOpt(
                         assignCommand.getTaskNo().intValue(),
                         assignCommand.getShuttleNo().intValue(),
@@ -844,7 +846,8 @@
                         null,
                         null,
                         null,
-                        JSON.toJSONString(command)
+                        JSON.toJSONString(command),
+                        JSON.toJSONString(commandArr)
                 );
                 shuttleOptService.insert(opt);
             }

--
Gitblit v1.9.1