From 45a87642e46c746802af13bf47bcd70e3b69277a Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 14 十二月 2023 16:49:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |   68 ++++++++
 src/main/java/com/zy/asrs/controller/LocMastController.java    |   10 +
 src/main/webapp/static/wcs/css/crn.css                         |    4 
 src/main/webapp/views/realtimeWatch/crn2.html                  |  158 +++++++++---------
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   19 +
 src/main/java/com/zy/asrs/entity/WmsLocStatus.java             |   13 +
 src/main/java/com/zy/asrs/controller/CrnController.java        |   64 ++++++++
 src/main/webapp/views/locMast/locMast_detail.html              |   44 +++-
 src/main/java/com/zy/core/thread/SiemensCrnThread.java         |    1 
 src/main/webapp/static/wms/js/locMast/locMast.js               |    3 
 src/main/java/com/zy/asrs/utils/Utils.java                     |   66 +++++--
 src/main/webapp/views/deviceOperate/crnOperate.html            |    2 
 src/main/java/com/zy/asrs/entity/LocMast.java                  |   17 ++
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java        |    3 
 15 files changed, 348 insertions(+), 126 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 314a8fa..eb9a0dd 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -376,6 +376,10 @@
     @ManagerAuth(memo = "鍏ュ簱")
     @PostMapping("/crn/operator/put")
     public R crnPut(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -394,6 +398,10 @@
     @ManagerAuth(memo = "鍑哄簱")
     @PostMapping("/crn/operator/take")
     public R crnTake(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -411,6 +419,10 @@
     @ManagerAuth(memo = "搴撲綅杞Щ")
     @PostMapping("/crn/operator/stockMove")
     public R crnStockMove(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -434,6 +446,10 @@
     @ManagerAuth(memo = "绔欏埌绔�")
     @PostMapping("/crn/operator/siteMove")
     public R crnSiteMove(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -451,6 +467,10 @@
     @ManagerAuth(memo = "鍥炲師鐐�")
     @PostMapping("/crn/operator/bacOrigin")
     public R crnBacOrigin(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -468,6 +488,10 @@
     @ManagerAuth(memo = "鍙嶅師鐐�")
     @PostMapping("/crn/operator/reverseOrigin")
     public R reverseOrigin(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -503,6 +527,10 @@
     @ManagerAuth(memo = "浠诲姟瀹屾垚")
     @PostMapping("/crn/operator/taskComplete")
     public R crnTaskComplete(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -532,6 +560,10 @@
     @ManagerAuth(memo = "娓呴櫎鍛戒护")
     @PostMapping("/crn/operator/clearCommand")
     public R crnClearCommand(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         if (param.getCrnNo() == null) {
             throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
         }
@@ -552,6 +584,10 @@
     @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
     @PostMapping("/crn/operator/handleReset")
     public R handleReset(CrnOperatorParam param) throws Exception {
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         if (param.getCrnNo() == null) {
             throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
         }
@@ -590,6 +626,10 @@
     @ManagerAuth(memo = "鍒囨崲鑱旀満妯″紡")
     @PostMapping("/crn/operator/auto")
     public R crnAuto(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         short[] array = new short[9];
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -601,6 +641,10 @@
     @ManagerAuth(memo = "鍒囨崲鍗婃墜鍔ㄦā寮�")
     @PostMapping("/crn/operator/semiAutomatic")
     public R crnsemiAutomatic(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         short[] array = new short[9];
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -612,6 +656,10 @@
     @ManagerAuth(memo = "鍒囨崲鎵嬪姩妯″紡")
     @PostMapping("/crn/operator/hand")
     public R onlineWrk1(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         short[] array = new short[9];
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -623,6 +671,10 @@
     @ManagerAuth(memo = "鐢宠瀹屾垚浠诲姟")
     @PostMapping("/crn/operator/onlineWrk1")
     public R onlineWrk2(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         short[] array = new short[9];
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -634,6 +686,10 @@
     @ManagerAuth(memo = "鐢宠鍙栨秷浠诲姟")
     @PostMapping("/crn/operator/onlineWrk2")
     public R onlineWrk3(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         short[] array = new short[9];
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -645,6 +701,10 @@
     @ManagerAuth(memo = "娓呴櫎鑱旀満浠诲姟")
     @PostMapping("/crn/operator/onlineWrk3")
     public R onlineWrk4(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         short[] array = new short[9];
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -656,6 +716,10 @@
     @ManagerAuth(memo = "鎭㈠鑱旀満浠诲姟")
     @PostMapping("/crn/operator/onlineWrk4")
     public R crnHand(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+        }
         short[] array = new short[9];
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 02f7233..079bfc4 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -145,9 +145,19 @@
         if (Cools.isEmpty(locMast) || null==locMast.getLocNo()){
             return R.error();
         }
+        if (!Cools.isEmpty(locMast.getContainerCode())){
+            locMast.setBarcode(locMast.getContainerCode());
+        }
+
+        if (locMast.getEmptyContainer$().equals("N") ){
+            if (locMast.getContainerCode().isEmpty() || locMast.getContainerTypeCode().isEmpty()){
+                return R.error("瀹瑰櫒缂栫爜鎴栧鍣ㄧ被鍨嬫湁璇�");
+            }
+        }
         locMast.setModiUser(getUserId());
         locMast.setModiTime(new Date());
         locMastService.updateById(locMast);
+        locMastService.toWmsLocStatus(locMast);
         return R.ok();
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index f1606c7..03aca14 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -178,6 +178,23 @@
     @ApiModelProperty(value= "")
     private String status;
 
+    @TableField(exist = false)
+    private String containerCode;
+    @TableField(exist = false)
+    private String containerTypeCode;
+    @TableField(exist = false)
+    private String emptyContainer;
+
+    public String getEmptyContainer$(){
+        if (Cools.isEmpty(this.emptyContainer)){
+            return "";
+        }
+        if (this.emptyContainer.equals("1")){
+            return "Y";
+        }else {
+            return "N";
+        }
+    }
     public String getIoTime$(){
         if (Cools.isEmpty(this.ioTime)){
             return "";
diff --git a/src/main/java/com/zy/asrs/entity/WmsLocStatus.java b/src/main/java/com/zy/asrs/entity/WmsLocStatus.java
new file mode 100644
index 0000000..f65c866
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/WmsLocStatus.java
@@ -0,0 +1,13 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+
+@Data
+public class WmsLocStatus {
+    private String warehouseId;
+    private String locationCode;
+    private String status;
+    private String containerCode;
+    private String containerTypeCode;
+    private String emptyContainer;
+}
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index e13489e..5e75f6b 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service;
 
 import com.baomidou.mybatisplus.service.IService;
+import com.core.common.R;
 import com.zy.asrs.entity.LocMast;
 
 import java.util.List;
@@ -49,4 +50,5 @@
 
     List<LocMast> selectLocByLev(Integer lev);
 
+    R toWmsLocStatus(LocMast locMast);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 1336d66..6265873 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -1,16 +1,34 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.core.common.Cools;
+import com.core.common.R;
 import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WmsLocStatus;
+import com.zy.asrs.entity.param.TaskOverToWms;
+import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
 import com.zy.asrs.mapper.LocMastMapper;
+import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
-
+import java.util.Map;
+@Slf4j
 @Service("locMastService")
 public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService {
+    @Value("${wms.url}")
+    private String wmsUrl;
+    @Autowired
+    private ApiLogService apiLogService;
 
     @Override
     public List<Integer> queryDistinctRow(Integer crnNo) {
@@ -61,4 +79,52 @@
     public List<LocMast> selectLocByLev(Integer lev) {
         return this.baseMapper.selectLocByLev(lev);
     }
+
+    @Override
+    public R toWmsLocStatus(LocMast locMast) {
+        String response = null;
+        Map<String, Object> map = new HashMap<>();
+        map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
+        WmsLocStatus param = new WmsLocStatus();
+        param.setWarehouseId("1688469798893297665");
+        param.setLocationCode(Utils.getWmsLocNo(locMast.getLocNo()));
+        param.setEmptyContainer(locMast.getEmptyContainer$());
+        if (locMast.getLocSts().equals("Z")){
+            param.setStatus("JY");
+        }else {
+            param.setStatus("QY");
+        }
+        if (Cools.isEmpty(locMast.getBarcode()) || locMast.getLocSts().equals("O")){
+            param.setContainerCode("");
+            param.setContainerTypeCode("");
+        }else {
+            param.setContainerCode(locMast.getBarcode());
+            param.setContainerTypeCode(locMast.getContainerTypeCode());
+        }
+
+        try {
+            response = new HttpHandler.Builder()
+                    .setHeaders(map)
+                    .setUri(wmsUrl)
+                    .setPath("wcsManager/wcsInterface/locationUpdate")
+                    .setJson(JSON.toJSONString(param))
+                    .build()
+                    .doPost();
+        }catch (Exception e){
+            log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
+        }
+        JSONObject jsonObject = JSON.parseObject(response);
+
+
+        apiLogService.save("Wms鍙樻洿璐т綅鐘舵��"
+                ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply"
+                ,null
+                ,"127.0.0.1"
+                ,JSON.toJSONString(param)
+                ,response
+                ,true
+        );
+
+        return null;
+    }
 }
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 d641197..d46d702 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -109,11 +109,9 @@
                     staProtocol = staProtocol.clone();
                 }
                 Short workNo = staProtocol.getWorkNo();
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing() && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk() && (workNo >= 0)
-                        && staProtocol.isPakMk()) {
+                Short stano = staProtocol.getStaNo();
+
+
 
                     // 灏哄妫�娴嬪紓甯�
                     boolean back = false;
@@ -148,6 +146,12 @@
                     }
                     // 閫�鍥�
                     if (back) {
+                        if (stano == inSta.getBackSta().shortValue()){
+                            continue;
+                        }
+                        if (workNo == 0 && stano == 0){
+                            continue;
+                        }
 //                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
                         staProtocol.setWorkNo(workNo);
                         staProtocol.setStaNo(inSta.getBackSta().shortValue());
@@ -161,6 +165,11 @@
                         }
                         continue;
                     }
+                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                if (staProtocol.isAutoing() && staProtocol.isLoading()
+                        && staProtocol.isInEnable()
+                        && !staProtocol.isEmptyMk() && (workNo >= 0)
+                        && staProtocol.isPakMk()) {
                     // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                     BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
                     if (barcodeThread == null) {
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 2cf925f..43b62ce 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -18,29 +18,49 @@
 
     private static final DecimalFormat fmt = new DecimalFormat("##0.00");
 
-    public static String getWmsRow(String loc){
-        String row = loc.substring(0, 2);
-        String bay = loc.substring(3, 5);
-        String lev = loc.substring(5, 7);
-        String locNo = null;
+    public static String getWmsLocNo(String locNo) {
+        String loc = null;
+        int row = Integer.parseInt(locNo.substring(0, 2));
+        int bay = Integer.parseInt(locNo.substring(2, 5))-1;
+        int lev = Integer.parseInt(locNo.substring(5, 7));
+        Integer sssc = getRowZ(row);
+        Integer fz = getFZ(row, sssc);
+        Integer fz1 = getFZ1(row, sssc);
 
-        ArrayList<String> list = new ArrayList<>();
-        list.add("01");list.add("02");list.add("03");list.add("04");
-        int i = list.indexOf(row);
-        if (i != -1){
-            if (i == 0){
-                locNo = "01"+"-"+bay+"-"+lev+"-"+"01-02";
-            }else if (i == 1) {
-                locNo = "01"+"-"+bay+"-"+lev+"-"+"01-01";
-            }else if (i == 2) {
-                locNo = "01"+"-"+bay+"-"+lev+"-"+"02-01";
-            }else if (i == 3) {
-                locNo = "01"+"-"+bay+"-"+lev+"-"+"02-02";
-            }
-
-        }
-        return locNo;
+        //System.out.println(sssc + "-" + bay + "-" + lev + "-" + fz + "-" + fz1);
+        loc = String.format("%02d",sssc) + "-" + String.format("%02d",bay) + "-" + String.format("%02d",lev) + "-" + String.format("%02d",fz) + "-" + String.format("%02d",fz1);
+        return loc;
     }
+
+    public static Integer getRowZ(int row) {
+        return row < 5 ? 1 : (row + 1) / 4 + 1;
+    }
+
+    public static Integer getFZ(int row, int crnNo) {
+        List<Integer> ii = new ArrayList<Integer>();
+        if (crnNo == 1) {
+            ii.add(3);
+            ii.add(0);
+        } else {
+            ii.add(2);
+            if (crnNo > 2) ii.add(1);
+        }
+        return ii.contains(row % 4) ? 2 : 1;
+    }
+
+    public static Integer getFZ1(int row, int crnNo) {
+        if (crnNo == 2) return 1;
+        List<Integer> ii = new ArrayList<Integer>();
+        ii.add(2);
+        ii.add(3);
+        int s = 2;
+        if (ii.contains(row % 4)) {
+            s = 1;
+        }
+        return crnNo == 1 ? s : 3 - s;
+    }
+
+
 
 
     //杞崲wms浼犺緭鐨勫簱浣嶅彿
@@ -354,7 +374,7 @@
 //        slaveProperties.setGroupCount(4);
 //        Integer deepRow = getDeepRow(slaveProperties, 6);
 //        System.out.println(deepRow);
-        CrnSlave.CrnStn crnStnByStaNo = getCrnStnByStaNo(235, true);
-        System.out.println(crnStnByStaNo);
+
+        System.out.println(getWmsLocNo("1900201"));
     }
 }
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index ccf1d69..17a80b2 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -235,7 +235,6 @@
                         taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //璁惧缂栫爜
                         taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣�
                     }
-
                     taskOverToWms.setTaskStatus("location_done"); //浠诲姟鐘舵��
                     String response = null;
                     try {
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 64a79d1..668c8e3 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -124,9 +124,12 @@
                     // 鍐欐暟鎹� ID+鐩爣绔�
                     case 2:
                         write((StaProtocol)task.getData());
+                        read();
                         break;
                     case 3:
                         write2((StaProtocol)task.getData());
+                        read();
+                        break;
                     default:
                         break;
                 }
diff --git a/src/main/webapp/static/wcs/css/crn.css b/src/main/webapp/static/wcs/css/crn.css
index 8020f68..1bb7c73 100644
--- a/src/main/webapp/static/wcs/css/crn.css
+++ b/src/main/webapp/static/wcs/css/crn.css
@@ -14,7 +14,7 @@
     background-color: #fff;
     border-radius: 5px;
     box-shadow: 0 0 3px rgba(0,0,0,.3);
-    height: 200px;
+    height: 300px;
 }
 
 /* 宸� */
@@ -232,7 +232,7 @@
 /* -------------------- 绗洓妯″潡 -------------------- */
 .crn-output-board {
     margin-top: 10px;
-    height: 200px;
+    height: 350px;
     background-color: #fff;
     border-radius: 5px;
     box-shadow: 0 0 3px rgba(0,0,0,.3);
diff --git a/src/main/webapp/static/wms/js/locMast/locMast.js b/src/main/webapp/static/wms/js/locMast/locMast.js
index d4d34ce..7f33483 100644
--- a/src/main/webapp/static/wms/js/locMast/locMast.js
+++ b/src/main/webapp/static/wms/js/locMast/locMast.js
@@ -459,6 +459,9 @@
             barcode: $('#barcode').val(),
             PdcType: $('#PdcType').val(),
             ctnNo: $('#ctnNo').val(),
+            containerCode:$('#containerCode').val(),
+            containerTypeCode:$('#containerTypeCode').val(),
+            emptyContainer:$('#emptyContainer').val(),
 
         };
         $.ajax({
diff --git a/src/main/webapp/views/deviceOperate/crnOperate.html b/src/main/webapp/views/deviceOperate/crnOperate.html
index 5e1daa1..6defda2 100644
--- a/src/main/webapp/views/deviceOperate/crnOperate.html
+++ b/src/main/webapp/views/deviceOperate/crnOperate.html
@@ -79,7 +79,7 @@
 							<el-button @click="requestOperate('siteMove')" type="primary">绔欏埌绔�</el-button>
 							<el-button @click="requestOperate('taskComplete')" type="primary">浠诲姟瀹屾垚</el-button>
 							<el-button @click="requestOperate('clearCommand')" type="primary">娓呴櫎鍛戒护</el-button>
-							<el-button @click="requestOperate('handleReset')" type="primary">澶嶄綅</el-button>
+<!--							<el-button @click="requestOperate('handleReset')" type="primary">澶嶄綅</el-button>-->
 							<br/>
 							<br/>
 							<el-button @click="requestOperate('auto')" type="warning">鑱旀満</el-button>
diff --git a/src/main/webapp/views/locMast/locMast_detail.html b/src/main/webapp/views/locMast/locMast_detail.html
index be2b0d4..30fe21a 100644
--- a/src/main/webapp/views/locMast/locMast_detail.html
+++ b/src/main/webapp/views/locMast/locMast_detail.html
@@ -84,29 +84,45 @@
             </div>
         </div>
         <div class="layui-inline"  style="width:80%;">
-            <label class="layui-form-label">鎺掞細</label>
+            <label class="layui-form-label">瀹瑰櫒缂栫爜锛�</label>
             <div class="layui-input-inline">
-                <input id="row1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
+                <input id="containerCode" class="layui-input" type="text" autocomplete="off">
             </div>
         </div>
         <div class="layui-inline"  style="width:80%;">
-            <label class="layui-form-label">鎺掞細</label>
-            <div class="layui-input-inline">
-                <input id="row1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
-            </div>
+            <label class="layui-form-label">瀹瑰櫒绫诲瀷锛�</label>
+        <div class="layui-input-inline">
+            <input id="containerTypeCode" class="layui-input" type="text" autocomplete="off" >
+        </div>
         </div>
         <div class="layui-inline"  style="width:80%;">
-            <label class="layui-form-label">鍒楋細</label>
+            <label class="layui-form-label">绌烘墭鐩橈細</label>
             <div class="layui-input-inline">
-                <input id="bay1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
+                    <select id="emptyContainer" name="emptyContainer" lay-verify="required">
+                        <option value="1" selected = "selected">鏄�</option>
+                        <option value="0">鍚�</option>
+                    </select>
             </div>
         </div>
-        <div class="layui-inline"  style="width:80%;">
-            <label class="layui-form-label">灞傦細</label>
-            <div class="layui-input-inline">
-                <input id="lev1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
-            </div>
-        </div>
+
+<!--        <div class="layui-inline"  style="width:80%;">-->
+<!--            <label class="layui-form-label">鎺掞細</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <input id="row1" class="layui-input" type="text" autocomplete="off" disabled="disabled">-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-inline"  style="width:80%;">-->
+<!--            <label class="layui-form-label">鍒楋細</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <input id="bay1" class="layui-input" type="text" autocomplete="off" disabled="disabled">-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-inline"  style="width:80%;">-->
+<!--            <label class="layui-form-label">灞傦細</label>-->
+<!--            <div class="layui-input-inline">-->
+<!--                <input id="lev1" class="layui-input" type="text" autocomplete="off" disabled="disabled">-->
+<!--            </div>-->
+<!--        </div>-->
         <div class="layui-inline"  style="width:80%;display: none">
             <label class="layui-form-label">婊°��銆�鏉匡細</label>
             <div class="layui-input-inline" style="text-align: left">
diff --git a/src/main/webapp/views/realtimeWatch/crn2.html b/src/main/webapp/views/realtimeWatch/crn2.html
index 95b21cf..ad83a14 100644
--- a/src/main/webapp/views/realtimeWatch/crn2.html
+++ b/src/main/webapp/views/realtimeWatch/crn2.html
@@ -142,92 +142,92 @@
     <div class="crn-operation">
 
       <!-- 閬僵灞� -->
-      <div class="crn-operation-shade">
-        <span class="crn-operation-shade-span">
-            WCS 绯荤粺杩愯涓紝璇峰仠姝㈠悗鎿嶄綔
-        </span>
-      </div>
+<!--      <div class="crn-operation-shade">-->
+<!--        <span class="crn-operation-shade-span">-->
+<!--            WCS 绯荤粺杩愯涓紝璇峰仠姝㈠悗鎿嶄綔-->
+<!--        </span>-->
+<!--      </div>-->
 
       <!-- 璁惧浠诲姟閫夋嫨 -->
       <div class="task-select">
         <!-- 鍫嗗灈鏈洪�夋嫨 -->
-        <div id="crn-select" class="operator-item" style="width: 55%">
-          <span class="select-title">鍫嗗灈鏈哄彿</span>
-          <div class="select-container" style="padding: 20px 0;">
-            <label><input type="radio" name="crnSelect" value="1" checked>&nbsp;1鍙峰爢鍨涙満</label>
-            <label><input type="radio" name="crnSelect" value="2">&nbsp;2鍙峰爢鍨涙満</label>
-            <label><input type="radio" name="crnSelect" value="3">&nbsp;3鍙峰爢鍨涙満</label>
-            <label><input type="radio" name="crnSelect" value="4">&nbsp;4鍙峰爢鍨涙満</label>
-            <label><input type="radio" name="crnSelect" value="5">&nbsp;5鍙峰爢鍨涙満</label>
-            <label><input type="radio" name="crnSelect" value="6">&nbsp;6鍙峰爢鍨涙満</label>
-          </div>
-        </div>
+<!--        <div id="crn-select" class="operator-item" style="width: 55%">-->
+<!--          <span class="select-title">鍫嗗灈鏈哄彿</span>-->
+<!--          <div class="select-container" style="padding: 20px 0;">-->
+<!--            <label><input type="radio" name="crnSelect" value="1" checked>&nbsp;1鍙峰爢鍨涙満</label>-->
+<!--            <label><input type="radio" name="crnSelect" value="2">&nbsp;2鍙峰爢鍨涙満</label>-->
+<!--            <label><input type="radio" name="crnSelect" value="3">&nbsp;3鍙峰爢鍨涙満</label>-->
+<!--            <label><input type="radio" name="crnSelect" value="4">&nbsp;4鍙峰爢鍨涙満</label>-->
+<!--            <label><input type="radio" name="crnSelect" value="5">&nbsp;5鍙峰爢鍨涙満</label>-->
+<!--            <label><input type="radio" name="crnSelect" value="6">&nbsp;6鍙峰爢鍨涙満</label>-->
+<!--          </div>-->
+<!--        </div>-->
         <!-- 婧愮珯/婧愬簱浣� 閫夋嫨 -->
-        <div id="source-select" class="operator-item">
-          <span class="select-title">婧愮珯/婧愬簱浣�</span>
-          <div class="select-container">
-            <div class="select-container-item">
-              <span>绔�</span>
-              <label><input id="sourceStaNo" type="number" name="points" min="0" /></label>
-            </div>
-            <div class="select-container-item">
-              <span>鎺�</span>
-              <label><input id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
-            </div>
-            <div class="select-container-item">
-              <span>鍒�</span>
-              <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
-            </div>
-            <div class="select-container-item">
-              <span>灞�</span>
-              <label><input id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
-            </div>
-          </div>
-        </div>
-        <!-- 鐩爣绔�/鐩爣搴撲綅 閫夋嫨 -->
-        <div id="target-select" class="operator-item">
-          <span class="select-title">鐩爣绔�/鐩爣搴撲綅</span>
-          <div class="select-container">
-            <div class="select-container-item">
-              <span>绔�</span>
-              <label><input id="staNo" type="number" name="points" min="0" /></label>
-            </div>
-            <div class="select-container-item">
-              <span>鎺�</span>
-              <label><input id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
-            </div>
-            <div class="select-container-item">
-              <span>鍒�</span>
-              <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
-            </div>
-            <div class="select-container-item">
-              <span>灞�</span>
-              <label><input id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
-            </div>
-          </div>
-        </div>
+<!--        <div id="source-select" class="operator-item">-->
+<!--          <span class="select-title">婧愮珯/婧愬簱浣�</span>-->
+<!--          <div class="select-container">-->
+<!--            <div class="select-container-item">-->
+<!--              <span>绔�</span>-->
+<!--              <label><input id="sourceStaNo" type="number" name="points" min="0" /></label>-->
+<!--            </div>-->
+<!--            <div class="select-container-item">-->
+<!--              <span>鎺�</span>-->
+<!--              <label><input id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>-->
+<!--            </div>-->
+<!--            <div class="select-container-item">-->
+<!--              <span>鍒�</span>-->
+<!--              <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>-->
+<!--            </div>-->
+<!--            <div class="select-container-item">-->
+<!--              <span>灞�</span>-->
+<!--              <label><input id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        &lt;!&ndash; 鐩爣绔�/鐩爣搴撲綅 閫夋嫨 &ndash;&gt;-->
+<!--        <div id="target-select" class="operator-item">-->
+<!--          <span class="select-title">鐩爣绔�/鐩爣搴撲綅</span>-->
+<!--          <div class="select-container">-->
+<!--            <div class="select-container-item">-->
+<!--              <span>绔�</span>-->
+<!--              <label><input id="staNo" type="number" name="points" min="0" /></label>-->
+<!--            </div>-->
+<!--            <div class="select-container-item">-->
+<!--              <span>鎺�</span>-->
+<!--              <label><input id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>-->
+<!--            </div>-->
+<!--            <div class="select-container-item">-->
+<!--              <span>鍒�</span>-->
+<!--              <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>-->
+<!--            </div>-->
+<!--            <div class="select-container-item">-->
+<!--              <span>灞�</span>-->
+<!--              <label><input id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--        </div>-->
       </div>
 
-      <!-- 璁惧浠诲姟鎿嶄綔 -->
-      <div class="task-operator">
-        <fieldset>
-          <legend>鎵嬪姩鎿嶄綔</legend>
-          <div class="button-group">
-            <button class="item" onclick="put()">鍏ュ簱</button>
-            <button class="item" onclick="take()">鍑哄簱</button>
-            <button class="item" onclick="stockMove()">搴撲綅杞Щ</button>
-            <button class="item" onclick="siteMove()">绔欏埌绔�</button>
-            <!--                <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>-->
-            <!--                <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>-->
-            <button class="item" onclick="coorMove()">鍧愭爣绉昏</button>
-            <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button>
-            <!--                <button class="item" onclick="pause()">鏆傚仠</button>-->
-            <!--                <button class="item" onclick="boot()">鍚姩</button>-->
-            <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button>
-            <button class="item" onclick="handleReset()">澶嶄綅</button>
-          </div>
-        </fieldset>
-      </div>
+<!--      &lt;!&ndash; 璁惧浠诲姟鎿嶄綔 &ndash;&gt;-->
+<!--      <div class="task-operator">-->
+<!--        <fieldset>-->
+<!--          <legend>鎵嬪姩鎿嶄綔</legend>-->
+<!--          <div class="button-group">-->
+<!--            <button class="item" onclick="put()">鍏ュ簱</button>-->
+<!--            <button class="item" onclick="take()">鍑哄簱</button>-->
+<!--            <button class="item" onclick="stockMove()">搴撲綅杞Щ</button>-->
+<!--            <button class="item" onclick="siteMove()">绔欏埌绔�</button>-->
+<!--            &lt;!&ndash;                <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>&ndash;&gt;-->
+<!--            &lt;!&ndash;                <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>&ndash;&gt;-->
+<!--            <button class="item" onclick="coorMove()">鍧愭爣绉昏</button>-->
+<!--            <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button>-->
+<!--            &lt;!&ndash;                <button class="item" onclick="pause()">鏆傚仠</button>&ndash;&gt;-->
+<!--            &lt;!&ndash;                <button class="item" onclick="boot()">鍚姩</button>&ndash;&gt;-->
+<!--            <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button>-->
+<!--            <button class="item" onclick="handleReset()">澶嶄綅</button>-->
+<!--          </div>-->
+<!--        </fieldset>-->
+<!--      </div>-->
 
     </div>
     <!-- 鍫嗗灈鏈烘棩蹇楄緭鍑� -->

--
Gitblit v1.9.1