From d4e3d2bba4624ffe8faca16b3d9ffb4e1b297b67 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 16 五月 2023 08:19:36 +0800
Subject: [PATCH] crn

---
 src/main/webapp/views/realtimeWatch/crn.html |  626 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 626 insertions(+), 0 deletions(-)

diff --git a/src/main/webapp/views/realtimeWatch/crn.html b/src/main/webapp/views/realtimeWatch/crn.html
new file mode 100644
index 0000000..c28372c
--- /dev/null
+++ b/src/main/webapp/views/realtimeWatch/crn.html
@@ -0,0 +1,626 @@
+<!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.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" type="text/css" href="../../static/css/normalize.css">
+    <link rel="stylesheet" type="text/css" href="../../static/css/common.css">
+    <link rel="stylesheet" type="text/css" href="../../static/css/crn.css">
+    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+    <script type="text/javascript" src="../../static/js/common.js"></script>
+    <script type="text/javascript" src="../../static/js/layer/layer.js"></script>
+    <style>
+        .demoBtn {
+            vertical-align: middle;
+            width: 20%;
+            height: 25px;
+            left: 0;
+            top: 0;
+            text-shadow: inherit;
+            font-size: 15px;
+            margin-left: 5px;
+            margin-right: 5px;
+            display: inline-block;
+            background-color: #FF5722;
+            border: none;
+            color: #FFF;
+            box-shadow: 1px 1px 5px #B6B6B6;
+            border-radius: 3px;
+            cursor: pointer;
+        }
+
+        .demoBtn:hover {
+            opacity: 0.8
+        }
+        .demoBtn:focus {
+            outline: 0;
+        }
+    </style>
+</head>
+<body>
+<div style="padding: 10px;height: 100%;float: left;width: 6%">
+    <div class="button-window"></div>
+</div>
+<div style="height: 100%;padding-left: 6%">
+    <div style="padding: 10px;height: 100%">
+        <!-- 鏃ュ織鐩戞帶鏉� -->
+        <div class="log-board">
+            <!-- 鎵ц鍛戒护 -->
+
+            <!-- 鎵ц鍛戒护 -->
+            <div class="command-log">
+                <h3>鎵ц涓殑鍛戒护</h3>
+                <div class="crn-command-item">
+                    <label>1#</label>
+                    <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+                    <!--            <span>&nbsp;</span>-->
+                    <input id="crn1" disabled="disabled">
+                </div>
+                <div class="crn-command-item">
+                    <label>2#</label>
+                    <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+                    <!--            <span>&nbsp;</span>-->
+                    <input id="crn2" disabled="disabled">
+                </div>
+            </div>
+            <!-- 鍫嗗灈鏈虹姸鎬佷綅淇℃伅 -->
+            <div class="crn-state">
+                <table id="crn-state-table">
+                    <thead>
+                    <tr>
+                        <th>鍫嗗灈鏈�</th>
+                        <th>妯″紡</th>
+                        <th>鐘舵��</th>
+                        <th>鏈夌墿</th>
+                        <th>鍒�</th>
+                        <th>灞�</th>
+                        <th>璐у弶瀹氫綅</th>
+                        <th>杞借揣鍙板畾浣�</th>
+                        <th>璧拌鍦ㄥ畾浣�</th>
+                        <th>鏁呴殰浠g爜</th>
+                        <th>鏁呴殰鎻忚堪</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+        <!-- 鍫嗗灈鏈虹姸鎬� -->
+        <div class="crn-msg">
+            <table id="crn-msg-table">
+                <thead>
+                <tr>
+                    <th>鍫嗗灈鏈�</th>
+                    <th>宸ヤ綔鍙�</th>
+                    <th>鐘舵��</th>
+                    <th>婧愮珯</th>
+                    <th>鐩爣绔�</th>
+                    <th>婧愬簱浣�</th>
+                    <th>鐩爣搴撲綅</th>
+                    <th>璧拌閫熷害锛坢/min)</th>
+                    <th>鍗囬檷閫熷害锛坢/min)</th>
+                    <th>鍙夌墮閫熷害锛坢/min)</th>
+                    <th>璧拌璺濈(Km)</th>
+                    <th>鍗囬檷璺濈(Km)</th>
+                    <th>璧拌鏃堕暱(H)</th>
+                    <th>鍗囬檷鏃堕暱(H)</th>
+                </tr>
+                </thead>
+                <tbody>
+                </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>
+        </div>
+    </div>
+</div>
+</body>
+<script>
+    // 绌虹櫧琛屾暟
+    var crnStateTableBlankRows = 0;
+    var crnMsgTableBlankRows = 0;
+    // 瀹為檯琛屾暟
+    var crnStateTableFullRows = 0;
+    var crnMsgTableFullRows = 0;
+    // 鍒濆鍖�
+    var crnOutputDom = document.getElementById("crn-output");
+    $(document).ready(function() {
+        getCommandLog();
+        initCrnStateTable();
+        getCrnStateInfo();
+        initCrnMsgTable();
+        getCrnMsgInfo();
+        operatorBlockShow();
+    });
+    // 鏁版嵁鏇存柊
+    setInterval(function () {
+        getCrnStateInfo();
+        getCrnMsgInfo();
+        getCommandLog();
+    },1000);
+    setInterval(function () {
+        getCrnOutput();
+        operatorBlockShow();
+        initDemo();
+    },500);
+
+    // 鍒ゆ柇鎵嬪姩鎿嶄綔妯″潡鏄惁鍙敤
+    function operatorBlockShow() {
+        if (parent.systemRunning) {
+            $('.crn-operation').css("opacity", "0.5");
+            $('.crn-operation-shade').show();
+            $('.crn-operation-shade-span').show();
+        }  else {
+            $('.crn-operation').css("opacity", "1");
+            $('.crn-operation-shade').hide();
+            $('.crn-operation-shade-span').hide();
+        }
+    }
+
+    // 鑾峰彇鍫嗗灈鏈烘墽琛屼腑鐨勫懡浠�
+    function getCommandLog() {
+        $.ajax({
+            url: baseUrl + "/crn/command/ongoing",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200) {
+                    var commands = res.data;
+                    for (var i=0; i<commands.length;i++){
+                        $("#crn"+commands[i].crnNo).val(commands[i].command);
+                    }
+                } else if (res.code === 403) {
+                    window.location.href = baseUrl + "/login";
+                } else {
+                    console.log(res.msg);
+                }
+            }
+        })
+    }
+
+    // 鍫嗗灈鏈轰俊鎭〃鑾峰彇 ---- 琛ㄤ竴
+    function getCrnStateInfo() {
+        var tableEl = $('#crn-state-table');
+        $.ajax({
+            url: baseUrl+ "/crn/table/crn/state",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200){
+                    var table = res.data;
+                    if (table.length > crnStateTableBlankRows && table.length !== crnStateTableFullRows) {
+                        initCrnStateTable(table.length-crnStateTableBlankRows);
+                        crnStateTableFullRows = table.length;
+                    }
+                    for (var i=1;i<=table.length;i++){
+                        var tr = tableEl.find("tr").eq(i);
+                        setVal(tr.children("td").eq(0), table[i-1].crnNo);
+                        setVal(tr.children("td").eq(1), table[i-1].statusType);
+                        setVal(tr.children("td").eq(2), table[i-1].status);
+                        setVal(tr.children("td").eq(3), table[i-1].loading);
+                        setVal(tr.children("td").eq(4), table[i-1].bay);
+                        setVal(tr.children("td").eq(5), table[i-1].lev);
+                        setVal(tr.children("td").eq(6), table[i-1].forkOffset);
+                        setVal(tr.children("td").eq(7), table[i-1].liftPos);
+                        setVal(tr.children("td").eq(8), table[i-1].walkPos);
+                        setVal(tr.children("td").eq(9), table[i-1].warnCode);
+                        setVal(tr.children("td").eq(10), table[i-1].alarm);
+                    }
+                } else if (res.code === 403){
+                    window.location.href = baseUrl+"/login";
+                }  else {
+                    console.log(res.msg);
+                }
+            }
+        });
+    }
+
+    // 鍫嗗灈鏈烘暟鎹〃鑾峰彇 ---- 琛ㄤ簩
+    function getCrnMsgInfo() {
+        var tableEl = $('#crn-msg-table');
+        $.ajax({
+            url: baseUrl+ "/crn/table/crn/msg",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200){
+                    var table = res.data;
+                    if (table.length > crnStateTableBlankRows && table.length !== crnMsgTableFullRows) {
+                        initCrnStateTable(table.length-crnStateTableBlankRows);
+                        crnMsgTableFullRows = table.length;
+                    }
+                    for (var i=1;i<=table.length;i++){
+                        var tr = tableEl.find("tr").eq(i);
+                        setVal(tr.children("td").eq(0), table[i-1].crnNo);
+                        setVal(tr.children("td").eq(1), table[i-1].workNo);
+                        setVal(tr.children("td").eq(2), table[i-1].status);
+                        setVal(tr.children("td").eq(3), table[i-1].sourceStaNo);
+                        setVal(tr.children("td").eq(4), table[i-1].staNo);
+                        setVal(tr.children("td").eq(5), table[i-1].sourceLocNo);
+                        setVal(tr.children("td").eq(6), table[i-1].locNo);
+                        setVal(tr.children("td").eq(7), table[i-1].xspeed);
+                        setVal(tr.children("td").eq(8), table[i-1].yspeed);
+                        setVal(tr.children("td").eq(9), table[i-1].zspeed);
+                        setVal(tr.children("td").eq(10), table[i-1].xdistance);
+                        setVal(tr.children("td").eq(11), table[i-1].ydistance);
+                        setVal(tr.children("td").eq(12), table[i-1].xduration);
+                        setVal(tr.children("td").eq(13), table[i-1].yduration);
+                    }
+                } else if (res.code === 403){
+                    window.location.href = baseUrl+"/login";
+                }  else {
+                    console.log(res.msg);
+                }
+            }
+        });
+    }
+
+    // 鍫嗗灈鏈烘墜鍔ㄦ搷浣滃尯 -----------------------------------------------------------------------
+
+    function getReqParam() {
+        var crnNo = $('input[name="crnSelect"]:checked').val();
+        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
+        };
+    }
+
+    // 鍏ュ簱
+    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 coorMove() {
+        http.post(baseUrl+"/crn/operator/coorMove", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鍥炲師鐐�
+    function bacOrigin() {
+        http.post(baseUrl+"/crn/operator/bacOrigin", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鍥炲師鐐�
+    function reverseOrigin() {
+        http.post(baseUrl+"/crn/operator/reverseOrigin", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 浠诲姟瀹屾垚
+    function taskComplete() {
+        http.post(baseUrl+"/crn/operator/taskComplete", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鏆傚仠
+    function pause() {
+        http.post(baseUrl+"/crn/operator/pause", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鍚姩
+    function boot() {
+        http.post(baseUrl+"/crn/operator/boot", 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 getCrnOutput() {
+        $.ajax({
+            url: baseUrl + "/crn/output/site",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                console.log(res)
+                if (res.code === 200) {
+                    crnOutput(res.data);
+                } else if (res.code === 403) {
+                    window.location.href = baseUrl + "/login";
+                } else {
+                    console.log(res.msg);
+                }
+            }
+        })
+    }
+
+    // ------------------------------------------------------------------------------------------------
+
+    // 鍫嗗灈鏈轰俊鎭〃鑾峰彇  ----- 琛ㄤ竴
+    function initCrnStateTable(row) {
+        var line;
+        if (row === undefined){
+            var one = $('#crn-state-table thead').height();
+            var total = $('.crn-state').height();
+            var count = total / one;
+            count = parseInt(count) - 1;
+            crnStateTableBlankRows = count;
+            line = count;
+        } else {
+            line = row;
+        }
+        var html = "";
+        for (var i = 0; i < line; i ++){
+            html += " <tr>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "     </tr>\n";
+        }
+        $('#crn-state-table tbody').after(html);
+    }
+
+    // 鍫嗗灈鏈烘暟鎹〃鑾峰彇  ----- 琛ㄤ簩
+    function initCrnMsgTable(row) {
+        var line;
+        if (row === undefined){
+            var one = $('#crn-msg-table thead').height();
+            var total = $('.crn-msg').height();
+            var count = total / one;
+            count = parseInt(count) - 1;
+            crnMsgTableBlankRows = count;
+            line = count;
+        } else {
+            line = row;
+        }
+        var html = "";
+        for (var i = 0; i < line; i ++){
+            html += " <tr>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "       <td></td>\n" +
+                "     </tr>\n";
+        }
+        $('#crn-msg-table tbody').after(html);
+    }
+
+    // 鏃ュ織杈撳嚭妗�
+    function crnOutput(content){
+        crnOutputDom.value += content;
+        crnOutputDom.scrollTop = crnOutputDom.scrollHeight;
+    }
+
+
+    var crnDemoData;
+    function initDemo() {
+        $.ajax({
+            url: baseUrl+"/crn/demo/status",
+            async: false,
+            method: 'GET',
+            success: function (res) {
+                if (res.code === 200) {
+                    crnDemoData = res.data;
+                    crnDemoData.forEach(function (e) {
+                        $("#demoBtn-"+e.crnNo).html(e.demo?'鍋滄':'婕旂ず');
+                    })
+                } else if (res.code === 403){
+                    parent.location.href = baseUrl+"/login";
+                }  else {
+                    layer.msg(res.msg, {icon: 2});
+                }
+            }
+        })
+    }
+
+    function demoSwitch(el) {
+        var crnId = el.split("-")[1];
+        var opt;
+        if (crnDemoData == null) {
+            initDemo();
+        }
+        for (var i = 0; i<crnDemoData.length; i++) {
+            if (Number(crnDemoData[i].crnNo) === Number(crnId)) {
+                opt = !crnDemoData[i].demo;
+            }
+        }
+        layer.confirm(crnId + ' 鍙峰爢鍨涙満纭畾'+ (opt?'寮�濮�':'鍋滄') + '婕旂ず鍚楋紵', function(){
+            doDemo(crnId, 'root', opt); // 鍋滄wcs绯荤粺
+        });
+    }
+
+    function doDemo(crnId, password, opt) {
+        // 鍔犺浇tips
+        var index = layer.load(1, {
+            shade: [0.1,'#fff']
+        });
+        $.ajax({
+            url: baseUrl+ "/crn/demo/switch",
+            headers: {'token': localStorage.getItem('token')},
+            // async: false,
+            data: {
+                crnId: Number(crnId),
+                password: password,
+                opt: opt
+            },
+            method: 'POST',
+            success: function (res) {
+                layer.close(index);
+                if (res.code === 200){
+                    layer.msg(res.msg, {icon: 1});
+                } else if (res.code === 403){
+                    window.location.href = baseUrl+"/login";
+                }  else {
+                    layer.msg(res.msg, {icon: 2});
+                }
+            }
+        });
+
+    }
+
+</script>
+</html>

--
Gitblit v1.9.1