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> </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> </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> 1鍙峰爢鍨涙満</label> + <label><input type="radio" name="crnSelect" value="2"> 2鍙峰爢鍨涙満</label> + <label><input type="radio" name="crnSelect" value="3"> 3鍙峰爢鍨涙満</label> + <label><input type="radio" name="crnSelect" value="4"> 4鍙峰爢鍨涙満</label> + <label><input type="radio" name="crnSelect" value="5"> 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