From 15dfde1636a2aff5e12ee1d1c53007f6e4c12391 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 27 十一月 2023 15:19:55 +0800
Subject: [PATCH] #openCont+读码+logo

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |   81 ++++++++++++++++++--
 src/main/java/com/zy/asrs/controller/OpenController.java    |   33 +-------
 src/main/webapp/static/wcs/images/ghlogo.jpg                |    0 
 src/main/java/com/zy/asrs/entity/ToWmsDTO.java              |    1 
 src/main/webapp/static/wcs/images/ghlogo_mini.png           |    0 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   58 ++++++++++++++
 src/main/webapp/views/login.html                            |    4 
 src/main/java/com/zy/asrs/service/OpenService.java          |    4 +
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   11 +-
 src/main/resources/application.yml                          |    4 
 src/main/java/com/zy/asrs/entity/param/taskCreateParam.java |    4 
 11 files changed, 151 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 764aa2a..ed3afdb 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -117,6 +117,8 @@
     public R targetWharfApply(@RequestHeader String appkey,
                               @RequestBody WMSAndAGVInterfaceParam param,
                               HttpServletRequest request) throws IOException {
+        auth(appkey,param,request);
+
         if (Cools.isEmpty(param)){
             return R.error("鍙傛暟涓虹┖锛�");
         } else if (Cools.isEmpty(param.getTaskNo())){
@@ -128,35 +130,8 @@
         } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size()==0){
             return R.error("绌洪棽鐨勫叆搴撶爜澶达紙AGV锛変负绌猴紒");
         }
-        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);
-        //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
-        toWmsDTO.setWarehouseId("1688469798893297665");
-        toWmsDTO.setContainerCode(param.getContainerCode());
-        toWmsDTO.setApplyType("TUNNEL");
-        toWmsDTO.setCanInboundTunnels(list);
-        String response = new HttpHandler.Builder()
-                .setHeaders(map)
-                .setUri(wmsUrl)
-                .setPath("wcsManager/wcsInterface/inboundTaskApply")
-                .setJson(JSON.toJSONString(toWmsDTO))
-                .build()
-                .doPost();
-
-        JSONObject jsonObject = JSON.parseObject(response);
-        if (jsonObject.getInteger("code").equals(200)) {
-            //瑙f瀽
-            return R.ok(jsonObject.get("data"));
-        }else {
-            return R.error((String) jsonObject.get("msg"));
-        }
-
-
-
+        R r = openService.AgvToWCSToWms(param);
+        return r;
     }
 
     //AGV璇锋眰鍔ㄤ綔鎺ュ彛
diff --git a/src/main/java/com/zy/asrs/entity/ToWmsDTO.java b/src/main/java/com/zy/asrs/entity/ToWmsDTO.java
index f0497e7..7d2618d 100644
--- a/src/main/java/com/zy/asrs/entity/ToWmsDTO.java
+++ b/src/main/java/com/zy/asrs/entity/ToWmsDTO.java
@@ -9,5 +9,6 @@
     private String warehouseId;
     private String containerCode;
     private String applyType;
+    private String wharfSource;
     private List<Integer> canInboundTunnels;
 }
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 417f464..a0467ce 100644
--- a/src/main/java/com/zy/asrs/entity/param/taskCreateParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/taskCreateParam.java
@@ -28,6 +28,8 @@
 
     //澶囨敞
     private String memo;
+    //鍫嗗灈鏈�
+    private Integer crn;
 
     public taskCreateParam(){};
 
@@ -39,7 +41,7 @@
         this.startPoint = param.getSourceLocationCode();
         this.targetPoint = param.getTargetLocationCode();
         this.emptyContainer = param.getEmptyContainer();
-
+        this.crn = param.getTaskTunnel();
     };
 
 
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 005ab8b..345157b 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,11 +1,15 @@
 package com.zy.asrs.service;
 
+import com.core.common.R;
 import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
 import com.zy.asrs.entity.param.taskCreateParam;
+
+import java.io.IOException;
 
 public interface OpenService {
 
     //鍒涘缓浠诲姟
     void taskCreate(taskCreateParam param);
 
+    R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException;
 }
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 9ee699d..1819c4a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,22 +1,33 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.core.common.Cools;
+import com.core.common.R;
 import com.core.exception.CoolException;
 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.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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
+import java.io.IOException;
+import java.util.*;
 
 @Service
 public class OpenServiceImpl implements OpenService {
 
     @Autowired
     private TaskWrkService taskWrkService;
+
+    @Value("${wms.url}")
+    private String wmsUrl;
 
     @Override
     public void taskCreate(taskCreateParam param) {
@@ -36,7 +47,13 @@
         taskWrk.setIoType(param.getIoType());//浠诲姟绫诲瀷
         taskWrk.setIoPri(param.getTaskPriority());//浼樺厛绾�
         taskWrk.setBarcode(param.getBarcode());//鏉$爜
-        taskWrk.setWrkSts(11);
+        taskWrk.setCrnNo(param.getCrn());
+        if(param.getIoType() == 1){
+            taskWrk.setWrkSts(1);
+        } else if (param.getIoType() == 2) {
+            taskWrk.setWrkSts(11);
+        }
+
         if (!Cools.isEmpty(param.getStartPoint())) {
             taskWrk.setStartPoint(param.getStartPoint());//璧风偣
         }
@@ -51,4 +68,41 @@
             throw new CoolException("鐢熸垚浠诲姟澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
     }
+
+    @Override
+    public R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException {
+        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);
+        //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
+        toWmsDTO.setWarehouseId("1688469798893297665");
+        toWmsDTO.setContainerCode(param.getContainerCode());
+        toWmsDTO.setApplyType("TUNNEL");
+        toWmsDTO.setWharfSource(null);
+        toWmsDTO.setCanInboundTunnels(list);
+        String response = new HttpHandler.Builder()
+                .setHeaders(map)
+                .setUri(wmsUrl)
+                .setPath("wcsManager/wcsInterface/inboundTaskApply")
+                .setJson(JSON.toJSONString(toWmsDTO))
+                .build()
+                .doPost();
+
+        JSONObject jsonObject = JSON.parseObject(response);
+        if (jsonObject.getInteger("code").equals(200)) {
+            //瑙f瀽
+            List<WMSAndAGVInterfaceParam> params = new ArrayList<>();
+            params.add(param);
+            WMSAndAGVInterfaceParam data = JSONObject.parseObject(jsonObject.get("data").toString(), WMSAndAGVInterfaceParam.class);
+
+            taskCreate(new taskCreateParam(data));
+            return R.ok(jsonObject.get("data"));
+        }else {
+            return R.error((String) jsonObject.get("msg"));
+        }
+
+    }
 }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index ba3cc80..367f9ca 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -6,6 +6,7 @@
 
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -14,6 +15,67 @@
 public class Utils {
 
     private static final DecimalFormat fmt = new DecimalFormat("##0.00");
+
+
+    //杞崲wms浼犺緭鐨勫簱浣嶅彿
+    public static String getWcsLocNo(String locNo){
+        String[] split = locNo.split("-");
+        int[] wcsRow = getWcsRow(split[0]);
+        int[] ints = null;
+        if (split[3].equals("01")){
+            ints = Arrays.copyOfRange(wcsRow, 0, wcsRow.length / 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 );
+            if (split[4].equals("01")){
+
+                ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2);
+            }else {
+                ints = Arrays.copyOfRange(ints, wcsRow.length / 2,wcsRow.length-1);
+            }
+        }
+        int i = ints[0];
+        String wcsLocNo = "";
+        if (i>9){
+            wcsLocNo = i+"0"+split[1]+split[2];
+        }else {
+            wcsLocNo = "0"+i+"0"+split[1]+split[2];
+        }
+
+
+
+        return wcsLocNo;
+    }
+    public static int[] getWcsRow(String row){
+        int[] array = null;
+        switch (row){
+            case "01":
+                 array= new int[]{1, 2, 3, 4};
+                break;
+            case "02":
+                 array= new int[]{5,6};
+                break;
+            case "03":
+                 array= new int[]{7,8,9,10};
+                break;
+            case "04":
+                 array= new int[]{11,12,13,14};
+                break;
+            case "05":
+                 array= new int[]{15,16,17,18};
+                break;
+            case "06":
+                 array= new int[]{19,20,21};
+                break;
+            default:
+
+        }
+        return array;
+    }
 
     public static float scale(Float f){
         if (f == null || f == 0f || Float.isNaN(f)) {
@@ -214,14 +276,15 @@
     }
 
     public static void main(String[] args) {
-        SlaveProperties slaveProperties = new SlaveProperties();
-        slaveProperties.setDoubleDeep(true);
-        List<Integer> list = new ArrayList<>();
-        list.add(1);list.add(4);list.add(5);list.add(8);list.add(9);list.add(12);
-        slaveProperties.setDoubleLocs(list);
-        slaveProperties.setGroupCount(4);
-        Integer deepRow = getDeepRow(slaveProperties, 6);
-        System.out.println(deepRow);
-
+//        SlaveProperties slaveProperties = new SlaveProperties();
+//        slaveProperties.setDoubleDeep(true);
+//        List<Integer> list = new ArrayList<>();
+//        list.add(1);list.add(4);list.add(5);list.add(8);list.add(9);list.add(12);
+//        slaveProperties.setDoubleLocs(list);
+//        slaveProperties.setGroupCount(4);
+//        Integer deepRow = getDeepRow(slaveProperties, 6);
+//        System.out.println(deepRow);
+        String wcsLocNo = getWcsLocNo("03-52-01-01-02");
+        System.out.println(wcsLocNo);
     }
 }
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index d258bd5..30e8f67 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -73,7 +73,7 @@
     /**
      * 鏉$爜鏁伴噺
      */
-    private int barcodeSize = 3;
+    private int barcodeSize = 7;
 
     /**
      * 鍏ュ嚭搴撴ā寮�
@@ -232,20 +232,21 @@
             }
         }
 
+
+        if (slave.getId() == 1){
             //鏉$爜
             Thread.sleep(200);
-            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.100",(short)31);
+            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)60);
             if (result2.IsSuccess) {
-                for (int i = 0; i < barcodeSize; i++) {
+                for (int i = 0; i < 6; i++) {
                     String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
                     BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
                     if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                         barcodeThread.setBarcode(barcode);
                     }
                 }
-
             }
-        if (slave.getId() == 1){
+
             // 澶栧舰妫�娴� - 102
             Thread.sleep(100);
             OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.150", (short)1);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 02a6873..0bc5a52 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -39,7 +39,9 @@
   # 鏄惁寮�鍚笂鎶�
   start: true
   # WMS绯荤粺ip
-  url: 10.32.53.195:8080
+  #url: 10.32.53.195:8080
+  # WMS绯荤粺ip
+  url: 172.18.9.56:8080
   # 鍏ュ簱浠诲姟鐢宠鎺ュ彛
   inboundTaskApplyPath: api/InterFace/get_InterFace_TestStorage
   # 浠诲姟鐘舵�佸弽棣堟帴鍙�
diff --git a/src/main/webapp/static/wcs/images/ghlogo.jpg b/src/main/webapp/static/wcs/images/ghlogo.jpg
new file mode 100644
index 0000000..a2d9481
--- /dev/null
+++ b/src/main/webapp/static/wcs/images/ghlogo.jpg
Binary files differ
diff --git a/src/main/webapp/static/wcs/images/ghlogo_mini.png b/src/main/webapp/static/wcs/images/ghlogo_mini.png
new file mode 100644
index 0000000..95d3801
--- /dev/null
+++ b/src/main/webapp/static/wcs/images/ghlogo_mini.png
Binary files differ
diff --git a/src/main/webapp/views/login.html b/src/main/webapp/views/login.html
index 075a534..b657740 100644
--- a/src/main/webapp/views/login.html
+++ b/src/main/webapp/views/login.html
@@ -2,7 +2,7 @@
 <html>
 	<head>
 		<meta charset="utf-8">
-		<title>涓壃 鈹� login of zoneyung wcs</title>
+		<title>鍐犻缚 鈹� login of zoneyung wcs</title>
 		<style>
 			* {
 				padding: 0;
@@ -187,7 +187,7 @@
 					<div class="form-main">
 						<p style="text-align: center;"><img class="loginLogoUrl" src="../static/wcs/images/logo.png" alt="" style="width: 80%">
 						</p>
-						<p style="margin-top: -15px;"><span class="login100-form-title p-t-20 p-b-45"
+						<p style="margin-top: -10px;"><span class="login100-form-title p-t-20 p-b-45"
 								style="color: #868686;font-size: 24px">WCS</span></p>
 						<div class="inputContainer">
 							<svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16"

--
Gitblit v1.9.1