From 38db3a419d0b794b8a2bab98d2fc15d4bb4c8b31 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 24 五月 2023 08:31:06 +0800
Subject: [PATCH] 堆垛机调试

---
 src/main/java/com/zy/asrs/utils/CommandUtils.java       |   22 +
 src/main/webapp/views/realtimeWatch/crn.html            |   91 ---------
 src/main/webapp/static/wms/js/crnOperate/crnOperate.js  |  114 +++++++++++
 src/main/webapp/views/crnOperate/crnOperate.html        |  259 +++++++++++++++++++++++++
 src/main/java/com/zy/asrs/controller/CrnController.java |  104 ++++++++--
 5 files changed, 469 insertions(+), 121 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 183353b..1dbe9c2 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
 import com.core.annotations.ManagerAuth;
 import com.core.common.Cools;
 import com.core.common.R;
@@ -12,10 +13,7 @@
 import com.zy.asrs.domain.vo.CommandLogVo;
 import com.zy.asrs.domain.vo.CrnMsgTableVo;
 import com.zy.asrs.domain.vo.CrnStateTableVo;
-import com.zy.asrs.entity.BasCrnError;
-import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasCrnErrorMapper;
 import com.zy.asrs.service.BasCrnpService;
 import com.zy.asrs.service.LocMastService;
@@ -37,10 +35,7 @@
 import com.zy.core.properties.SystemProperties;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -53,7 +48,6 @@
  */
 @Slf4j
 @RestController
-@RequestMapping("/crn")
 public class CrnController {
 
     @Autowired
@@ -71,7 +65,7 @@
 
 
     @ManagerAuth(memo = "杩涜涓殑鍛戒护")
-    @PostMapping("/command/ongoing")
+    @PostMapping("/crn/command/ongoing")
     public R ongoingCommand(){
         List<CommandLogVo> list = new ArrayList<>();
         for (CrnSlave crn : slaveProperties.getCrn()) {
@@ -97,7 +91,7 @@
         return R.ok().add(list);
     }
 
-    @PostMapping("/table/crn/state")
+    @PostMapping("/crn/table/crn/state")
     @ManagerAuth(memo = "鍫嗗灈鏈轰俊鎭〃")
     public R crnStateTable(){
         List<CrnStateTableVo> list = new ArrayList<>();
@@ -135,7 +129,41 @@
         return R.ok().add(list);
     }
 
-    @PostMapping("/table/crn/msg")
+    @PostMapping("/crn/table/crn/{id}/state")
+    @ManagerAuth(memo = "鍫嗗灈鏈轰俊鎭〃")
+    public R crnStateTable(@PathVariable("id") Integer id){
+        BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", id).orderBy("crn_no"));
+        // 琛ㄦ牸琛�
+        CrnStateTableVo vo = new CrnStateTableVo();
+        vo.setCrnNo(basCrnp.getCrnNo());   //  鍫嗗灈鏈哄彿
+        // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
+        if (crnThread == null) {
+            return R.error();
+        }
+        CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+        if (crnProtocol == null) {
+            return R.error();
+        }
+        vo.setWorkNo(crnProtocol.getTaskNo());  //  浠诲姟鍙�
+        vo.setStatusType(crnProtocol.modeType.desc);   //  妯″紡鐘舵��
+        vo.setStatus(crnProtocol.getStatusType().desc);     //  鐘舵��
+        vo.setLoading((crnProtocol.getLoaded() != null && crnProtocol.getLoaded() == 1) ? "鏈夌墿" : "鏃犵墿");  //  鏈夌墿
+        vo.setBay(crnProtocol.getBay());    //  鍒�
+        vo.setLev(crnProtocol.getLevel());  //  灞�
+
+        vo.setForkOffset(crnProtocol.getForkPosType().desc);    // 璐у弶浣嶇疆
+        vo.setLiftPos(crnProtocol.getLiftPosType().desc);
+        vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
+        vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1()));
+        if (crnProtocol.getAlarm1() > 0) {
+            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
+            vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName());
+        }
+        return R.ok().add(vo);
+    }
+
+    @PostMapping("/crn/table/crn/msg")
     @ManagerAuth(memo = "鍫嗗灈鏈烘暟鎹〃")
     public R crnMsgTable(){
         List<CrnMsgTableVo> list = new ArrayList<>();
@@ -179,7 +207,7 @@
         return R.ok().add(list);
     }
 
-    @PostMapping("/output/site")
+    @PostMapping("/crn/output/site")
     @ManagerAuth(memo = "鍫嗗灈鏈烘姤鏂囨棩蹇楄緭鍑�")
     public R crnOutput(){
         StringBuilder str = new StringBuilder();
@@ -193,7 +221,7 @@
     }
 
 
-    @GetMapping("/demo/status")
+    @GetMapping("/crn/demo/status")
     public R demoStatus(){
         List<Map<String, Object>> res = new ArrayList<>();
         for (CrnSlave crnSlave : slaveProperties.getCrn()) {
@@ -206,7 +234,7 @@
     }
 
 
-    @PostMapping("/demo/switch")
+    @PostMapping("/crn/demo/switch")
     @ManagerAuth(memo = "鍫嗗灈鏈烘紨绀�")
     public R crnDemo(CrnDemoParam param) throws InterruptedException {
         if (Cools.isEmpty(param.getCrnId())){
@@ -235,7 +263,7 @@
     /****************************************************************/
 
     @ManagerAuth(memo = "鍏ュ簱")
-    @PostMapping("/operator/put")
+    @PostMapping("/crn/operator/put")
     public R crnPut(CrnOperatorParam param){
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -252,7 +280,7 @@
     }
 
     @ManagerAuth(memo = "鍑哄簱")
-    @PostMapping("/operator/take")
+    @PostMapping("/crn/operator/take")
     public R crnTake(CrnOperatorParam param){
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -269,7 +297,7 @@
     }
 
     @ManagerAuth(memo = "搴撲綅杞Щ")
-    @PostMapping("/operator/stockMove")
+    @PostMapping("/crn/operator/stockMove")
     public R crnStockMove(CrnOperatorParam param){
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -291,7 +319,7 @@
     }
 
     @ManagerAuth(memo = "绔欏埌绔�")
-    @PostMapping("/operator/siteMove")
+    @PostMapping("/crn/operator/siteMove")
     public R crnSiteMove(CrnOperatorParam param){
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -308,7 +336,7 @@
     }
 
     @ManagerAuth(memo = "鍥炲師鐐�")
-    @PostMapping("/operator/bacOrigin")
+    @PostMapping("/crn/operator/bacOrigin")
     public R crnBacOrigin(CrnOperatorParam param){
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -325,7 +353,7 @@
     }
 
     @ManagerAuth(memo = "鍙嶅師鐐�")
-    @PostMapping("/operator/reverseOrigin")
+    @PostMapping("/crn/operator/reverseOrigin")
     public R reverseOrigin(CrnOperatorParam param){
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -360,7 +388,7 @@
 //    }
 
     @ManagerAuth(memo = "浠诲姟瀹屾垚")
-    @PostMapping("/operator/taskComplete")
+    @PostMapping("/crn/operator/taskComplete")
     public R crnTaskComplete(CrnOperatorParam param){
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -389,7 +417,7 @@
 //    }
 
     @ManagerAuth(memo = "娓呴櫎鍛戒护")
-    @PostMapping("/operator/clearCommand")
+    @PostMapping("/crn/operator/clearCommand")
     public R crnClearCommand(CrnOperatorParam param){
         if (param.getCrnNo() == null) {
             throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
@@ -409,7 +437,7 @@
     }
 
     @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
-    @PostMapping("/operator/handleReset")
+    @PostMapping("/crn/operator/handleReset")
     public R handleReset(CrnOperatorParam param) throws Exception {
         if (param.getCrnNo() == null) {
             throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
@@ -501,5 +529,33 @@
         }
     }
 
+    // /crn/list/auth
+    @RequestMapping(value = "/crnListQuery/auth")
+    @ManagerAuth
+    public R listQuery(String condition){
+        ArrayList<HashMap<String, Object>> list = new ArrayList<>();
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            if (crnThread == null) {
+                continue;
+            }
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+
+            HashMap<String, Object> map = new HashMap<>();
+            map.put("id", crn.getId());
+            map.put("value", "鍫嗗灈鏈�" + crn.getId() + "鍙�");
+            if (condition != "" && !condition.equals(crn.getId().toString())) {
+                continue;
+            }
+
+            list.add(map);
+        }
+        return R.ok().add(list);
+    }
+
 
 }
diff --git a/src/main/java/com/zy/asrs/utils/CommandUtils.java b/src/main/java/com/zy/asrs/utils/CommandUtils.java
index b483ad2..fae90db 100644
--- a/src/main/java/com/zy/asrs/utils/CommandUtils.java
+++ b/src/main/java/com/zy/asrs/utils/CommandUtils.java
@@ -30,15 +30,19 @@
         CommandInfo commandInfo = null;
         WrkMast wrkMast = null;
         int taskNo = 0;
+        int wmsWrkNo = 0;
         switch (type) {
             case Crn:
                 CrnCommand command = (CrnCommand) task.getData();
                 taskNo = command.getTaskNo();
-                wrkMast = wrkMastService.selectById(taskNo);
+                if (taskNo != 0) {
+                    wrkMast = wrkMastService.selectById(taskNo);
+                    wmsWrkNo = wrkMast.getWmsWrkNo();
+                }
 
                 commandInfo = new CommandInfo();
                 commandInfo.setWrkNo(taskNo);
-                commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+                commandInfo.setWmsWrkNo(wmsWrkNo);
                 commandInfo.setCommandStatus(1);
                 commandInfo.setStartTime(new Date());
                 commandInfo.setDevice("crn");
@@ -50,11 +54,14 @@
             case Devp:
                 StaProtocol staProtocol = (StaProtocol) task.getData();
                 taskNo = staProtocol.getWorkNo();
-                wrkMast = wrkMastService.selectById(taskNo);
+                if (taskNo != 0) {
+                    wrkMast = wrkMastService.selectById(taskNo);
+                    wmsWrkNo = wrkMast.getWmsWrkNo();
+                }
 
                 commandInfo = new CommandInfo();
                 commandInfo.setWrkNo(taskNo);
-                commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+                commandInfo.setWmsWrkNo(wmsWrkNo);
                 commandInfo.setCommandStatus(1);
                 commandInfo.setStartTime(new Date());
                 commandInfo.setDevice("devp");
@@ -67,11 +74,14 @@
                 List<LedCommand> data = (List<LedCommand>) task.getData();
                 for (LedCommand ledCommand : data) {
                     taskNo = ledCommand.getWorkNo();
-                    wrkMast = wrkMastService.selectById(taskNo);
+                    if (taskNo != 0) {
+                        wrkMast = wrkMastService.selectById(taskNo);
+                        wmsWrkNo = wrkMast.getWmsWrkNo();
+                    }
 
                     commandInfo = new CommandInfo();
                     commandInfo.setWrkNo(ledCommand.getWorkNo());
-                    commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+                    commandInfo.setWmsWrkNo(wmsWrkNo);
                     commandInfo.setCommandStatus(1);
                     commandInfo.setStartTime(new Date());
                     commandInfo.setDevice("led");
diff --git a/src/main/webapp/static/wms/js/crnOperate/crnOperate.js b/src/main/webapp/static/wms/js/crnOperate/crnOperate.js
new file mode 100644
index 0000000..f931f02
--- /dev/null
+++ b/src/main/webapp/static/wms/js/crnOperate/crnOperate.js
@@ -0,0 +1,114 @@
+var crnNo;
+layui.config({
+    base: baseUrl + "/static/wms/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+
+});
+
+function connectCrn() {
+    var deviceId = $("#deviceId").val()
+    if (deviceId == "") {
+        layer.msg('璇烽�夋嫨鍫嗗灈鏈�');
+        return false;
+    }
+
+    crnNo = deviceId;
+
+    $.ajax({
+        url: baseUrl + "/crn/table/crn/" + crnNo + "/state",
+        headers: {'token': localStorage.getItem('token')},
+        method: 'POST',
+        traditional:true,
+        success: function (res) {
+            if (res.code == 200) {
+                layer.msg('杩炴帴鎴愬姛')
+                console.log(res)
+                let data = res.data
+                $("#__crnNo").val(data.crnNo)
+                $("#statusType").val(data.statusType)
+                $("#status").val(data.status)
+                $("#loading").val(data.loading)
+                $("#__bay").val(data.bay)
+                $("#__lev").val(data.lev)
+                $("#forkOffset").val(data.forkOffset)
+                $("#liftPos").val(data.liftPos)
+                $("#walkPos").val(data.walkPos)
+                $("#warnCode").val(data.warnCode)
+                $("#alarm").val(data.alarm)
+            }else {
+                layer.msg(res.msg)
+            }
+        }
+    })
+}
+
+// 鍏ュ簱
+function put() {
+    http.post(baseUrl+"/crn/operator/put", getReqParam(), function (res) {
+        layer.msg(res.msg);
+    });
+}
+
+// 鍑哄簱
+function take() {
+    http.post(baseUrl+"/crn/operator/take", getReqParam(), function (res) {
+        layer.msg(res.msg);
+    });
+}
+
+// 搴撲綅杞Щ
+function stockMove() {
+    http.post(baseUrl+"/crn/operator/stockMove", getReqParam(), function (res) {
+        layer.msg(res.msg);
+    });
+}
+
+// 绔欏埌绔�
+function siteMove() {
+    http.post(baseUrl+"/crn/operator/siteMove", getReqParam(), function (res) {
+        layer.msg(res.msg);
+    });
+}
+
+// 浠诲姟瀹屾垚
+function taskComplete() {
+    http.post(baseUrl+"/crn/operator/taskComplete", getReqParam(), function (res) {
+        layer.msg(res.msg);
+    });
+}
+
+// 娓呴櫎鍛戒护
+function clearCommand() {
+    http.post(baseUrl+"/crn/operator/clearCommand", getReqParam(), function (res) {
+        layer.msg(res.msg);
+    });
+}
+
+// 鎵嬪姩澶嶄綅
+function handleReset() {
+    http.post(baseUrl+"/crn/operator/handleReset", getReqParam(), function (res) {
+        layer.msg(res.msg);
+    });
+}
+
+function getReqParam() {
+    var sourceStaNo = $('#sourceStaNo').val();
+    var sourceRow = $('#sourceRow').val();
+    var sourceBay = $('#sourceBay').val();
+    var sourceLev = $('#sourceLev').val();
+    var staNo = $('#staNo').val();
+    var row = $('#row').val();
+    var bay = $('#bay').val();
+    var lev = $('#lev').val();
+    return {
+        crnNo: crnNo,
+        sourceStaNo: sourceStaNo,
+        sourceRow: sourceRow,
+        sourceBay: sourceBay,
+        sourceLev: sourceLev,
+        staNo: staNo,
+        row: row,
+        bay: bay,
+        lev: lev
+    };
+}
\ No newline at end of file
diff --git a/src/main/webapp/views/crnOperate/crnOperate.html b/src/main/webapp/views/crnOperate/crnOperate.html
new file mode 100644
index 0000000..9996e13
--- /dev/null
+++ b/src/main/webapp/views/crnOperate/crnOperate.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/wms/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/wms/css/admin.css?v=318" media="all">
+    <link rel="stylesheet" href="../../static/wms/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+    <div class="layui-card">
+        <div class="layui-card-body" style="padding: 40px;">
+            <div class="layui-form toolbar" id="search-box" style="text-align: center;">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <div class="layui-input-inline cool-auto-complete">
+                            <input id="deviceId" class="layui-input" name="deviceId" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+                            <input id="deviceId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="閫夋嫨鍫嗗灈鏈�" onfocus=this.blur()>
+                            <div class="cool-auto-complete-window">
+                                <input class="cool-auto-complete-window-input" data-key="crnListQueryBydeviceId" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                                <select class="cool-auto-complete-window-select" data-key="crnListQueryBydeviceIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                                </select>
+                            </div>
+                        </div>
+                        <button class="layui-btn" onclick="connectCrn()">纭杩炴帴</button>
+                    </div>
+
+                </div>
+            </div>
+
+            <div class="layui-row">
+                <div class="layui-col-md6" style="border-right: 1px red solid">
+                    <h3 style="text-align: center;">璁惧璋冭瘯</h3>
+
+                    <div class="layui-row" style="margin-top: 30px;">
+                        <h4>婧愮珯/婧愬簱浣�</h4>
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+                                    <div>绔�</div>
+                                    <input class="layui-input" id="sourceStaNo" type="number" name="points" placeholder="绔�" autocomplete="off">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+                                    <div>鎺�</div>
+                                    <input class="layui-input" id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+                                    <div>鍒�</div>
+                                    <input class="layui-input" id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+                                    <div>灞�</div>
+                                    <input class="layui-input" id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1">
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+
+                    <div class="layui-row" style="margin-top: 30px;">
+                        <h4>鐩爣绔�/鐩爣搴撲綅</h4>
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+                                    <div>绔�</div>
+                                    <input class="layui-input" id="staNo" type="number" name="points" min="0" />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+                                    <div>鎺�</div>
+                                    <input class="layui-input" id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+                                    <div>鍒�</div>
+                                    <input class="layui-input" id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+                                    <div>灞�</div>
+                                    <input class="layui-input" id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" />
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+
+                    <div class="layui-row" style="margin-top: 30px;">
+                        <div class="layui-col-md12" style="display: flex;justify-content: flex-start;">
+                            <button class="layui-btn" onclick="put()">鍏ュ簱</button>
+                            <button class="layui-btn" onclick="take()">鍑哄簱</button>
+                            <button class="layui-btn" onclick="stockMove()">搴撲綅杞Щ</button>
+                            <button class="layui-btn" onclick="siteMove()">绔欏埌绔�</button>
+                            <button class="layui-btn" onclick="taskComplete()">浠诲姟瀹屾垚</button>
+                            <button class="layui-btn" onclick="clearCommand()">娓呴櫎鍛戒护</button>
+                            <button class="layui-btn" onclick="handleReset()">澶嶄綅</button>
+                        </div>
+                    </div>
+
+                </div>
+
+
+                <div class="layui-col-md6" style="padding-left: 20px;">
+                    <h3 style="text-align: center;">璁惧鐘舵��</h3>
+
+                    <div class="layui-row" style="margin-top: 30px;">
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>鍫嗗灈鏈�</div>
+                                    <input class="layui-input" id="__crnNo" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>妯″紡</div>
+                                    <input class="layui-input" id="statusType" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>鐘舵��</div>
+                                    <input class="layui-input" id="status" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>鏈夌墿</div>
+                                    <input class="layui-input" id="loading" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+
+                    <div class="layui-row" style="margin-top: 20px;">
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>鍒�</div>
+                                    <input class="layui-input" id="__bay" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>灞�</div>
+                                    <input class="layui-input" id="__lev" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>璐у弶瀹氫綅</div>
+                                    <input class="layui-input" id="forkOffset" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>杞借揣鍙板畾浣�</div>
+                                    <input class="layui-input" id="liftPos" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+
+                    <div class="layui-row" style="margin-top: 20px;">
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>璧拌鍦ㄥ畾浣�</div>
+                                    <input class="layui-input" id="walkPos" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>鏁呴殰浠g爜</div>
+                                    <input class="layui-input" id="warnCode" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-col-md3">
+                            <div class="layui-inline">
+                                <div class="layui-input-inline">
+                                    <div>鏁呴殰鎻忚堪</div>
+                                    <input class="layui-input" id="alarm" type="text" disabled />
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+
+        </div>
+    </div>
+</div>
+
+<script type="text/javascript" src="../../static/wms/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/wms/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/wms/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/wms/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/wms/js/crnOperate/crnOperate.js" charset="utf-8"></script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/realtimeWatch/crn.html b/src/main/webapp/views/realtimeWatch/crn.html
index 85b17c1..94c3033 100644
--- a/src/main/webapp/views/realtimeWatch/crn.html
+++ b/src/main/webapp/views/realtimeWatch/crn.html
@@ -114,97 +114,6 @@
                 </tbody>
             </table>
         </div>
-        <!-- 鎵嬪姩鎿嶄綔 -->
-        <div class="crn-operation">
-
-            <!-- 閬僵灞� -->
-            <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">
-                    <span class="select-title">鍫嗗灈鏈哄彿</span>
-                    <div class="select-container">
-                        <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>
-                    </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>
-
-            <!-- 璁惧浠诲姟鎿嶄綔 -->
-            <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>
-
-        </div>
         <!-- 鍫嗗灈鏈烘棩蹇楄緭鍑� -->
         <div class="crn-output-board">
             <textarea id="crn-output"></textarea>

--
Gitblit v1.9.1