From 7a806791fba46b27f4a8af6809c270f92be5f11c Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 22 一月 2024 12:53:37 +0800
Subject: [PATCH] #堆垛机下发命令增加库位类型

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java      |   12 +++++++++---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |    7 +++++++
 src/main/java/com/zy/asrs/controller/CrnController.java     |   21 ++++++++++++++++++++-
 src/main/java/com/zy/core/model/command/CrnCommand.java     |    2 ++
 4 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 4d02d12..95052a6 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -248,6 +248,8 @@
         command.setDestinationPosX(param.getRow());     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY(param.getBay());     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ(param.getLev());     // 鐩爣搴撲綅灞�
+        boolean locSts = isLocSts(param.getRow().toString(), param.getBay().toString(), param.getLev().toString());
+        command.setTraySize(locSts);
         return crnControl(command)?R.ok():R.error();
     }
 
@@ -265,6 +267,8 @@
         command.setDestinationPosX(param.getRow());     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY(param.getBay());     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ(param.getLev());     // 鐩爣搴撲綅灞�
+        boolean locSts = isLocSts(param.getSourceRow().toString(), param.getSourceBay().toString(), param.getSourceLev().toString());
+        command.setTraySize(locSts);
         return crnControl(command)?R.ok():R.error();
     }
 
@@ -286,7 +290,10 @@
                 .eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ()));
         LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX())
                 .eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ()));
-        VersionUtils.locMoveCheckLocType(sourceLoc, loc);
+        if (sourceLoc.getLocType1() != loc.getLocType1()){
+            return R.error("搴撲綅绫诲瀷涓嶄竴鑷�");
+        }
+//        VersionUtils.locMoveCheckLocType(sourceLoc, loc);
         return crnControl(command)?R.ok():R.error();
     }
 
@@ -501,5 +508,17 @@
         }
     }
 
+    private boolean isLocSts(String row,String bay,String lev){
+        String loc = String.format("%2d",row)+String.format("%3d",bay)+String.format("%2d",lev);
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", loc));
+        if (Cools.isEmpty(locMast)){
+            return false;
+        }
+        if (locMast.getLocType1() == 2){
+            return true;
+        }
+        return false;
+    }
+
 
 }
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 ef44745..3c0de29 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -771,6 +771,7 @@
             crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
             crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+            crnCommand.setTraySize(locMast.getLocType1() == 2);
             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                 News.error(""+mark+" - 1"+" - 16"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
@@ -932,6 +933,7 @@
                     crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
                     crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
                     crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
+                    crnCommand.setTraySize(sourceSta.getLocType1() == 2);     //搴撲綅绫诲瀷
                     if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                         News.error(""+mark+" - 2"+" - 13"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
                     } else {
@@ -1094,6 +1096,10 @@
             News.error(""+mark+" - 3"+" - 2"+" - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
             return;
         }
+        if(sta.getLocType1() != sourceSta.getLocType1()){
+            News.error("绉诲簱鐩爣搴撲綅绫诲瀷涓庢簮搴撲綅绫诲瀷涓嶇");
+            return;
+        }
         // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
         BasCrnp basCrnp = basCrnpService.selectById(slave.getId());
         if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
@@ -1126,6 +1132,7 @@
         crnCommand.setDestinationPosX(sta.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
         crnCommand.setDestinationPosY(sta.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
         crnCommand.setDestinationPosZ(sta.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+        crnCommand.setTraySize(sourceSta.getLocType1() == 2);     //搴撲綅绫诲瀷
         if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
             News.error(""+mark+" - 3"+" - 4"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
         } else {
diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java
index c777ecb..6b09a73 100644
--- a/src/main/java/com/zy/core/model/command/CrnCommand.java
+++ b/src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -74,6 +74,8 @@
     // 浠诲姟纭 0锛氭湭纭 1锛氬凡纭
     private Short command = 0;
 
+    private boolean traySize = false;
+
     public void setTaskMode(Short taskMode){
         this.taskMode = taskMode;
         this.taskModeType = CrnTaskModeType.get(taskModeType);
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index ac48c37..45edc73 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -278,11 +278,15 @@
         array[7] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿
         array[8] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿
         array[9] = command.getCommand();
-//        array[10] = command.getLocType1();   //鏂板璐х墿绫诲瀷涓嬪彂
+//        array[10] = 0;   //澶囩敤1
+
+        boolean[] array2 = new boolean[1];
+        array2[0] = command.isTraySize();
         OperateResult result = siemensNet.Write("DB100.0", array);
+        OperateResult result2 = siemensNet.Write("DB100.20", array2);
         News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
 
-        if(!result.IsSuccess){
+        if(!result.IsSuccess || !result2.IsSuccess){
             News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
             MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
             Thread.sleep(100);
@@ -293,7 +297,7 @@
         //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
         Thread.sleep(200);
         try{
-            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
+            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
             if (resultRead.IsSuccess) {
                 CrnCommand one = new CrnCommand();
                 one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
@@ -304,10 +308,12 @@
                 one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
                 one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
                 one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+                one.setTraySize(siemensNet.getByteTransform().TransBool(resultRead.Content, 20));
                 if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
                         || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
                         || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
                         || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
+                        || !command.isTraySize() == one.isTraySize()
                 ){
                     try{
                         News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));

--
Gitblit v1.9.1