From 770a7701c1473993c0e8148377c4f44dfec31e20 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 28 十一月 2023 16:34:19 +0800
Subject: [PATCH] #接口+高度位变更为检测小车+扫码

---
 src/main/java/com/zy/core/model/protocol/StaProtocol.java   |    5 +
 src/main/java/com/zy/asrs/controller/SiteController.java    |    1 
 src/main/java/com/zy/asrs/entity/param/TaskOverParam.java   |   10 ++
 src/main/java/com/zy/asrs/utils/Utils.java                  |    6 
 src/main/java/com/zy/asrs/controller/OpenController.java    |   18 ++++
 src/main/resources/application-prod.yml                     |   58 +++++++++-----
 src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java        |    1 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  102 ++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/OpenService.java          |    3 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |    4 
 src/main/java/com/zy/core/ServerBootstrap.java              |   22 ++--
 11 files changed, 189 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index ed3afdb..3451eaf 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -8,6 +8,7 @@
 import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.TaskOverParam;
 import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
 import com.zy.asrs.entity.param.taskCreateParam;
 import com.zy.asrs.service.*;
@@ -50,6 +51,23 @@
     public static final ArrayList<String> APP_KEY_LIST = new ArrayList<String>() {{
         add("ea1f0459efc02a79f046f982767939ae");
     }};
+    @PostMapping("/toAgvTaskOver")
+    public R getAgvTaskOver(@RequestHeader String appkey,
+                           @RequestBody TaskOverParam param,
+                           HttpServletRequest request){
+        auth(appkey, param, request);
+        if (Cools.isEmpty(param)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        if (Cools.isEmpty(param.getWharfCode())){
+            return R.error("鐮佸ご[wharfCode]涓嶈兘涓虹┖");
+        }
+        if (Cools.isEmpty(param.getStatus())){
+            return R.error("瀹屾垚鏍囪[status]涓嶈兘涓虹┖");
+        }
+        openService.getAgvTaskOver(param);
+        return R.ok();
+    }
 
     //鍒涘缓浠诲姟
     @PostMapping("/taskCreate")
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 90caa8f..d3fd0ff 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -186,6 +186,7 @@
                     vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N");     // 绌烘澘淇″彿
                     vo.setStaNo(staProtocol.getStaNo());                // 鐩爣绔�
                     vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�");     //楂樹綆搴撲綅
+                    vo.setCar(staProtocol.isCar() ? "鏈�": "鏃�");
                     return R.ok().add(vo);
                 }
             }
diff --git a/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java b/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
index 42b7bc9..6007fce 100644
--- a/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
@@ -37,4 +37,5 @@
 
     //楂樹綆搴撲綅
     private String locType1 = "-";
+    private String car = "-";
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java b/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
new file mode 100644
index 0000000..17bb554
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
@@ -0,0 +1,10 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class TaskOverParam {
+    private String wharfCode;
+    private Boolean status;
+
+}
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 345157b..0af74f2 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service;
 
 import com.core.common.R;
+import com.zy.asrs.entity.param.TaskOverParam;
 import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
 import com.zy.asrs.entity.param.taskCreateParam;
 
@@ -12,4 +13,6 @@
     void taskCreate(taskCreateParam param);
 
     R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException;
+
+    void getAgvTaskOver(TaskOverParam param);
 }
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 1819c4a..2741292 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -8,11 +8,20 @@
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.entity.TaskWrk;
 import com.zy.asrs.entity.ToWmsDTO;
+import com.zy.asrs.entity.param.TaskOverParam;
 import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
 import com.zy.asrs.entity.param.taskCreateParam;
 import com.zy.asrs.service.OpenService;
 import com.zy.asrs.service.TaskWrkService;
 import com.zy.common.utils.HttpHandler;
+import com.zy.core.DevpThread;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.DevpSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.properties.SlaveProperties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -25,9 +34,14 @@
 
     @Autowired
     private TaskWrkService taskWrkService;
+    @Autowired
+    private SlaveProperties slaveProperties;
 
     @Value("${wms.url}")
     private String wmsUrl;
+    public ArrayList<String> wharfCode1 = new ArrayList<String>(){{
+        add("J-1101"); add("J-1103"); add("J-1105"); add("J-1107"); add("J-1109"); add("J-1111");
+    }};
 
     @Override
     public void taskCreate(taskCreateParam param) {
@@ -74,9 +88,8 @@
         ToWmsDTO toWmsDTO = new ToWmsDTO();
         Map<String, Object> map = new HashMap<>();
         map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
-        List<Integer> list = new ArrayList<>();
-        list.add(1);
-        list.add(4);
+        List<Integer> list = getInEnableRoadway();
+
         //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
         toWmsDTO.setWarehouseId("1688469798893297665");
         toWmsDTO.setContainerCode(param.getContainerCode());
@@ -105,4 +118,87 @@
         }
 
     }
+
+    @Override
+    public void getAgvTaskOver(TaskOverParam param) {
+        Map<String,Integer> map = new HashMap<>();
+        map.put("J-1101",102);map.put("J-1102",101);
+        map.put("J-1103",106);map.put("J-1104",105);
+        map.put("J-1105",110);map.put("J-1106",109);
+        map.put("J-1107",114);map.put("J-1108",113);
+        map.put("J-1109",118);map.put("J-1110",117);
+        map.put("J-1111",122);map.put("J-1112",121);
+
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 鑾峰彇鍏ュ簱绔欎俊鎭�
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+            StaProtocol staProtocol = devpThread.getStation().get(map.get(param.getWharfCode()));
+            if (staProtocol == null) {
+                continue;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            Short workNo = staProtocol.getWorkNo();
+            for (DevpSlave.Sta inSta : devp.getInSta()) {
+                if (inSta.getBackSta().equals(map.get(param.getWharfCode()))){
+                    if (wharfCode1.contains(param.getWharfCode())){
+                        if (!staProtocol.isLoading() && !staProtocol.isCar()){
+                            //AGV鍑哄簱瀹屾垚浠ュ悗
+                        }
+
+                    }else {
+                        if (staProtocol.isLoading() && !staProtocol.isCar() && workNo == 0){
+                            //AGV鍏ュ簱瀹屾垚浠ュ悗
+                            staProtocol.setWorkNo((short) 9998);
+                            staProtocol.setStaNo(inSta.getStaNo().shortValue());
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                            if (result) {
+
+                            } else {
+                                throw new RuntimeException("agv杩斿洖瀹屾垚鍚庯紝鍛戒护涓嬪彂澶辫触");
+                            }
+                        }
+                    }
+                }
+            }
+
+
+
+        }
+
+    }
+
+    public List<Integer> getInEnableRoadway(){
+        int[] roadway = null;
+        List<Integer> list = new ArrayList<>();
+        Map<Integer,Integer> map = new HashMap<>();
+        map.put(103,1);
+        map.put(107,2);
+        map.put(111,3);
+        map.put(115,4);
+        map.put(119,5);
+        map.put(123,6);
+        map.put(300,7);
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍏ュ簱鍙�
+            for (DevpSlave.Sta inSta : devp.getInSta()) {
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(inSta.getBackSta());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                Short workNo = staProtocol.getWorkNo();
+                if (workNo == 0 && !staProtocol.isLoading()){
+                    list.add(map.get(inSta.getStaNo()));
+                }
+            }
+        }
+        //roadway = list.stream().mapToInt(Integer::intValue).toArray();
+        return list;
+    }
 }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 367f9ca..4342fb5 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -23,14 +23,14 @@
         int[] wcsRow = getWcsRow(split[0]);
         int[] ints = null;
         if (split[3].equals("01")){
-            ints = Arrays.copyOfRange(wcsRow, 0, wcsRow.length / 2);
+            ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length+2-1) / 2);
             if (split[4].equals("01")){
                 ints = Arrays.copyOfRange(ints, wcsRow.length / 2,wcsRow.length-1);
             }else {
                 ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2);
             }
         }else {
-            ints = Arrays.copyOfRange(wcsRow, wcsRow.length / 2,wcsRow.length-1 );
+            ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2,wcsRow.length-1 );
             if (split[4].equals("01")){
 
                 ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2);
@@ -284,7 +284,7 @@
 //        slaveProperties.setGroupCount(4);
 //        Integer deepRow = getDeepRow(slaveProperties, 6);
 //        System.out.println(deepRow);
-        String wcsLocNo = getWcsLocNo("03-52-01-01-02");
+        String wcsLocNo = getWcsLocNo("06-52-01-01-01");
         System.out.println(wcsLocNo);
     }
 }
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 4876375..a97d9a0 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -55,10 +55,10 @@
         for (Slave devp : slaveProperties.getDevp()) {
             MessageQueue.init(SlaveType.Devp, devp);
         }
-//        // 鍒濆鍖栨潯鐮佹壂鎻忎华mq
-//        for (Slave barcode : slaveProperties.getBarcode()) {
-//            MessageQueue.init(SlaveType.Barcode, barcode);
-//        }
+        // 鍒濆鍖栨潯鐮佹壂鎻忎华mq
+        for (Slave barcode : slaveProperties.getBarcode()) {
+            MessageQueue.init(SlaveType.Barcode, barcode);
+        }
 //        // 鍒濆鍖朙ed鐏痬q
 //        for (Slave led : slaveProperties.getLed()) {
 //            MessageQueue.init(SlaveType.Led, led);
@@ -88,13 +88,13 @@
             new Thread((Runnable) devpThread).start();
             SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread);
         }
-//        // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼
-//        log.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
-//        for (Slave barcode : slaveProperties.getBarcode()) {
-//            BarcodeThread barcodeThread = new BarcodeThread(barcode);
-////            new Thread(barcodeThread).start();
-//            SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
-//        }
+        // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼
+        log.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
+        for (Slave barcode : slaveProperties.getBarcode()) {
+            BarcodeThread barcodeThread = new BarcodeThread(barcode);
+//            new Thread(barcodeThread).start();
+            SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
+        }
 //        // 鍒濆鍖朙ED绾跨▼
 //        log.info("鍒濆鍖朙ED绾跨▼...................................................");
 //        for (LedSlave led : slaveProperties.getLed()) {
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 f6bde14..8dbd9ce 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -42,11 +42,14 @@
     private boolean fullPlt;
 
     // 楂�
-    private boolean high;
+    private boolean high = false;
 
     // 浣�
     private boolean low;
 
+    //agv
+    private boolean car;
+
     // 閿佸畾鏍囪
     private boolean pakMk = true;
 
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 30e8f67..7b417cf 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -223,7 +223,7 @@
                 staProtocol.setOutEnable(status[3]);// 鍙嚭
                 staProtocol.setEmptyMk(status[4]);  // 绌烘澘淇″彿
                 staProtocol.setFullPlt(status[5]);  // 婊℃墭鐩�
-                staProtocol.setHigh(status[6]);     // 楂樺簱浣�
+                staProtocol.setCar(status[6]);     // 鏄惁鏈夎溅
                 staProtocol.setLow(status[7]);      // 浣庡簱浣�
 
                 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
@@ -239,7 +239,7 @@
             OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)60);
             if (result2.IsSuccess) {
                 for (int i = 0; i < 6; i++) {
-                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
+                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,8, "UTF-8");
                     BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
                     if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                         barcodeThread.setBarcode(barcode);
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index c1953f2..7759046 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -233,23 +233,23 @@
       scale: ${wcs-slave.scale[0].id}
       staNo: 111
       backSta: 110
-      barcode: ${wcs-slave.barcode[0].id}
+      barcode: ${wcs-slave.barcode[2].id}
     inSta[3]: #鍏ュ簱鍙�1
       scale: ${wcs-slave.scale[0].id}
       staNo: 115
       backSta: 114
-      barcode: ${wcs-slave.barcode[0].id}
+      barcode: ${wcs-slave.barcode[3].id}
     inSta[4]: #鍏ュ簱鍙�2
       scale: ${wcs-slave.scale[1].id}
       staNo: 119
       backSta: 118
-      barcode: ${wcs-slave.barcode[1].id}
+      barcode: ${wcs-slave.barcode[4].id}
       #slot: 0
     inSta[5]: #鍏ュ簱鍙�1
       scale: ${wcs-slave.scale[0].id}
       staNo: 123
       backSta: 122
-      barcode: ${wcs-slave.barcode[0].id}
+      barcode: ${wcs-slave.barcode[5].id}
     outSta[0]: #鍑哄簱鍙�1
       staNo: 100
     outSta[1]: #鍑哄簱鍙�2
@@ -284,21 +284,21 @@
       #slot: 0
     outSta[0]: #鍑哄簱鍙�1
       staNo: 307
-  devp[3]: #杈撻�佺嚎
-    id: 4
-    ip: 10.10.10.30
-    rack: 0
-    slot: 0
-    port: 102
-    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�1
-      staNo: 406
-    inSta[0]: #鍏ュ簱鍙�1
-      scale: ${wcs-slave.scale[1].id}
-      staNo: 406
-      barcode: ${wcs-slave.barcode[1].id}
-      #slot: 0
-    outSta[0]: #鍑哄簱鍙�1
-      staNo: 407
+#  devp[3]: #杈撻�佺嚎
+#    id: 4
+#    ip: 10.10.10.30
+#    rack: 0
+#    slot: 0
+#    port: 102
+#    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�1
+#      staNo: 406
+#    inSta[0]: #鍏ュ簱鍙�1
+#      scale: ${wcs-slave.scale[1].id}
+#      staNo: 406
+#      barcode: ${wcs-slave.barcode[1].id}
+#      #slot: 0
+#    outSta[0]: #鍑哄簱鍙�1
+#      staNo: 407
   scale[0]: #纾呯Г
     port: 5005
     ip: 10.10.10.201
@@ -309,9 +309,25 @@
     id: 2
   barcode[0]: #鏉$爜鎵弿浠�
     port: 51236
-    ip: 10.10.10.52
+    ip: 172.17.91.39
     id: 1
   barcode[1]:
     port: 51236
-    ip: 10.10.10.52
+    ip: 172.17.91.40
     id: 2
+  barcode[2]:
+    port: 51236
+    ip: 172.17.91.41
+    id: 3
+  barcode[3]:
+    port: 51236
+    ip: 172.17.91.42
+    id: 4
+  barcode[4]:
+    port: 51236
+    ip: 172.17.91.43
+    id: 5
+  barcode[5]:
+    port: 51236
+    ip: 172.17.91.44
+    id: 6

--
Gitblit v1.9.1