From 2a35d8deefb89c4b463fdbafe79f2c7bd294621d Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 23 五月 2024 12:56:13 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/model/protocol/StaProtocol.java | 3 src/main/java/com/zy/core/thread/SiemensCrnThread.java | 1 src/main/webapp/static/wcs/css/rgv.css | 252 +++++++++++++ src/main/webapp/views/realtimeWatch/index2.html | 1 src/main/webapp/static/wcs/js/console.map.js | 8 src/main/webapp/views/realtimeWatch/console.html | 149 +++++-- src/main/webapp/views/realtimeWatch/rgv.html | 652 ++++++++++++++++++++++++++++++++++ src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java | 2 src/main/java/com/zy/core/thread/SiemensRgvThread.java | 6 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 37 + 10 files changed, 1,061 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java b/src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java index 2677861..00b4ddc 100644 --- a/src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java +++ b/src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java @@ -20,7 +20,7 @@ private SiteStatusType siteStatus; // 闅斿绔欑偣锛堝彴杞︾壒鎬э級 - private String nearbySta; + private short nearbySta; public String getSiteStatus() { return siteStatus.toString().toLowerCase().replaceAll("_", "-"); diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index a7a3460..04c2f06 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -60,7 +60,7 @@ private Short inQty; // 闅斿绔欑偣锛堝彴杞︿綅缃級 - private String nearbySta; + private short nearbySta; //鎸囦护ID private Integer commandId; @@ -109,6 +109,7 @@ private Boolean upcontactErr = false; //椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅� private List<Integer> alarm; + private Short realTimeLocation; public List<Integer> getAlarm(){ diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 6e4e9b4..4c0cd05 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -14,6 +14,7 @@ import com.zy.asrs.entity.param.TaskOverToWms; import com.zy.asrs.service.*; import com.zy.common.utils.HttpHandler; +import com.zy.common.utils.News; import com.zy.core.CrnThread; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 01ae79e..3f59baa 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -47,6 +47,7 @@ private SiemensS7Net siemensS7Net; private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); private short heartBeatVal = 1; + private Integer rgvCount = 4; public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ add(100);add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);add(109);add(110);add(111); add(112);add(113);add(114);add(115);add(116);add(117);add(118);add(119);add(120);add(121);add(122);add(123); @@ -168,6 +169,19 @@ staProtocol.setPakMk(true); } } + if (slave.getId() == 2){ + for (int i = 1;i<5;i++){ + StaProtocol staProtocol = station.get(i); + if (null == staProtocol) { + staProtocol = new StaProtocol(); + staProtocol.setSiteId(i); + station.put(i, staProtocol); + } + staProtocol.setWorkNo((short) 0); + staProtocol.setNearbySta((short) 3); + staProtocol.setLoading(false); + } + } } @Override @@ -238,6 +252,29 @@ } } + if (slave.getId() == 2){ + + OperateResultExOne<byte[]> resultRgvWrkNo = siemensS7Net.Read("DB55.222", (short) 98); + OperateResultExOne<byte[]> resultRgvLocation = siemensS7Net.Read("DB43.0", (short) 8); + OperateResultExOne<byte[]> resultRgvload = siemensS7Net.Read("DB192.0", (short) 8); + if (resultRgvWrkNo.IsSuccess && resultRgvLocation.IsSuccess && resultRgvload.IsSuccess){ + for (int i = 1;i<5;i++){ + short wrkNo = siemensS7Net.getByteTransform().TransInt16(resultRgvWrkNo.Content, i * 32); + short location = siemensS7Net.getByteTransform().TransInt16(resultRgvLocation.Content, i * 2); + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRgvload.Content, i*2, 1); + StaProtocol staProtocol = station.get(i); + if (null == staProtocol) { + staProtocol = new StaProtocol(); + staProtocol.setSiteId(i); + station.put(i, staProtocol); + } + staProtocol.setWorkNo(wrkNo); + staProtocol.setNearbySta(location); + staProtocol.setLoading(status[0]); + } + } + } + if (slave.getId() == 1){ //鏉$爜 diff --git a/src/main/java/com/zy/core/thread/SiemensRgvThread.java b/src/main/java/com/zy/core/thread/SiemensRgvThread.java index 618325f..cfc074b 100644 --- a/src/main/java/com/zy/core/thread/SiemensRgvThread.java +++ b/src/main/java/com/zy/core/thread/SiemensRgvThread.java @@ -191,15 +191,15 @@ rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 10)); rgvProtocol.setSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 12)); rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt32(result.Content, 14)); - rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransBool(result.Content,18)); +// rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransBool(result.Content,18)); OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId())); if (rgvProtocol.getAlarm() > 0 ){ BasRgvErrService basRgvErrService = SpringUtils.getBean(BasRgvErrService.class); - News.error("RGV 寮傚父 ===>> [id:{}] [ip:{}],鎶ヨ浠g爜:{},鎶ヨ鏂囨湰",slave.getId(), slave.getIp(),rgvProtocol.getAlarm(),basRgvErrService.selectById(rgvProtocol.getAlarm())); + News.error("RGV 寮傚父 ===>> [id:{}] [ip:{}],鎶ヨ浠g爜:{},鎶ヨ鏂囨湰:{}",slave.getId(), slave.getIp(),rgvProtocol.getAlarm(),basRgvErrService.selectById(rgvProtocol.getAlarm()).getErrName()); }else { - News.info("姝e父"); + News.info("RGV鐘舵�佹甯�==>[id:{}]",slave.getId()); } // 宸ヤ綅1澶嶄綅淇″彿 diff --git a/src/main/webapp/static/wcs/css/rgv.css b/src/main/webapp/static/wcs/css/rgv.css new file mode 100644 index 0000000..bd49d5b --- /dev/null +++ b/src/main/webapp/static/wcs/css/rgv.css @@ -0,0 +1,252 @@ +body { + background-color: #6CA7A8; +} +.button-window { + float: left; + width: 100%; + height: 100%; + padding: 10px; + border-radius: 5px; + box-shadow: 0 0 3px rgba(0 0 0 .3); +} +/* -------------------- 绗竴妯″潡 -------------------- */ +.log-board { + background-color: #fff; + border-radius: 5px; + box-shadow: 0 0 3px rgba(0,0,0,.3); + height: 28%; +} + +/* 宸� */ +.command-log { + float: left; + height: 100%; + width: 20%; + text-align: center; +} +.command-log h2 { + padding: 10px; +} +.rgv-command-item { + padding: 4px 0; +} +.rgv-command-item label { + font-size: 20px; + font-weight: bold; + vertical-align: middle; +} +.rgv-command-item span { + display: inline-block; + width: 20px; + height: 20px; + background-color: #2e9926; + border-radius: 5px; + vertical-align: middle; +} +.rgv-command-item input { + vertical-align: middle; + outline: none; + width: 60%; +} + +/* 鍙� */ +.rgv-state { + float: left; + height: 100%; + width: 100%; + overflow: auto; +} +/* 鍫嗗灈鏈虹姸鎬佽〃 */ +#rgv-state-table { + font-size: 12px; + border-collapse: collapse; + margin: 0 auto; + text-align: center; +} +#rgv-state-table td, #rgv-state-table th { + border: 1px solid #cad9ea; + color: #666; + height: 25px; +} +#rgv-state-table thead th { + background-color: #CCE8EB; + width: 300px; +} +#rgv-state-table tr:nth-child(odd) { + background: #fff; +} +#rgv-state-table tr:nth-child(even) { + background: #F5FAFA; +} + +/* -------------------- 绗簩妯″潡 -------------------- */ +.rgv-msg { + /*overflow: auto;*/ + margin-top: 10px; + height: 23%; + background-color: #fff; + border-radius: 5px; + box-shadow: 0 0 3px rgba(0,0,0,.3); +} +/* 鍫嗗灈鏈虹姸鎬佷俊鎭〃 */ +#rgv-msg-table { + font-size: 12px; + border-collapse: collapse; + margin: 0 auto; + text-align: center; +} +#rgv-msg-table td, #rgv-msg-table th { + border: 1px solid #f1f1f1; + color: #666; + height: 30px; +} +#rgv-msg-table thead th { + background-color: #fff; + width: 400px; +} +#rgv-msg-table tr:nth-child(odd) { + background: #fff; +} +#rgv-msg-table tr:nth-child(even) { + background: #fff; +} + +/* -------------------- 绗笁妯″潡 -------------------- */ +.rgv-operation { + position: relative; + margin-top: 10px; + height: 25%; + background-color: #fff; + border-radius: 5px; + box-shadow: 0 0 3px rgba(0,0,0,.3); +} + +/* 浠诲姟璁惧閫夋嫨妗� */ +.task-select { + height: 50%; + overflow: hidden; + padding: 20px 0 10px 20px; +} +.operator-item { + display: inline-block; + height: 100%; + width: 20%; + text-align: center; + position: relative; + vertical-align: middle; + padding: 10px 0px 10px 50px; +} +.operator-item .select-title { + display: inline-block; + position: absolute; + top: -11px; + left: 50%; + transform: translate(-50%, 0); + background-color: #fff; + color: #2e95d3; + font-size: 12px; + border: 1px solid #8d8d8d; + border-radius: 5px; + padding: 5px; + z-index: 999; +} +.operator-item .select-container { + padding: 10px 0; + height: 100%; + border: 1px solid #8d8d8d; + border-radius: 5px; +} +#rgv-select .select-container label { + display: inline-block; + padding: 0 20px; + vertical-align: middle; margin-top:-2px; margin-bottom:1px; + +} +.select-container input { + display: inline-block; + font-size: 12px; + vertical-align: middle; margin-top:-2px; margin-bottom:1px; +} +.select-container-item { + display: inline-block; + margin: 0px auto; + padding: 0; +} +.select-container-item input { + height: 20px; + border: 1px solid #8D8D8D; + border-radius: 3px; + width: 80px; + outline: none; +} + +/* 浠诲姟浣滀笟閫夋嫨妗� */ +.task-operator { + height: 50%; + overflow: hidden; + padding: 0 20px 10px 20px; +} +.task-operator fieldset { + padding: 15px 20px 5px 50px; + border-width: 1px; + border-style: solid; + height: 100%; +} +.task-operator legend { + margin-left: 20px; + padding: 0 10px; + font-size: 16px; + font-weight: 300; +} +button.item { + border: 1px solid #333; + font-size: 13px; + padding: 1px 1px 1px 1px; + width: 100px; + height: 40px; + outline: none; + cursor: pointer; + color: #333; + background-color: transparent; + margin-right: 5px; + border-radius: 5px; +} +button.item:hover { + background-color: #333; + color: #fff; +} + +/* 鎵嬪姩鎿嶄綔閬僵 */ +.rgv-operation-shade { + position: absolute; + height: 100%; + width: 100%; + z-index: 1000; + text-align: center; + padding: 80px 0; +} +.rgv-operation-shade-span { + font-size: xx-large; + font-weight: bold; + color: red; +} + +/* -------------------- 绗洓妯″潡 -------------------- */ +.rgv-output-board { + margin-top: 10px; + height: 15%; + background-color: #fff; + border-radius: 5px; + box-shadow: 0 0 3px rgba(0,0,0,.3); +} +#rgv-output { + border-left: none; + border-right: none; + border-top: 1px solid #9d9d9d; + border-bottom: 1px solid #333; + width: 100%; + height: 100%; + overflow: auto; + resize:none; + color: #666; +} diff --git a/src/main/webapp/static/wcs/js/console.map.js b/src/main/webapp/static/wcs/js/console.map.js index 5308003..3840f2c 100644 --- a/src/main/webapp/static/wcs/js/console.map.js +++ b/src/main/webapp/static/wcs/js/console.map.js @@ -966,7 +966,7 @@ "type": "stn", "id": "site-407", "text": "407", - "top": 770, + "top": 795, "left": 1437, "width": 49, "height": 20 @@ -974,7 +974,7 @@ "type": "stn", "id": "site-406", "text": "406", - "top": 795, + "top": 770, "left": 1437, "width": 49, "height": 20 @@ -982,7 +982,7 @@ "type": "stn", "id": "site-307", "text": "307", - "top": 700, + "top": 725, "left": 1437, "width": 49, "height": 20 @@ -990,7 +990,7 @@ "type": "stn", "id": "site-306", "text": "306", - "top": 725, + "top": 700, "left": 1437, "width": 49, "height": 20 diff --git a/src/main/webapp/views/realtimeWatch/console.html b/src/main/webapp/views/realtimeWatch/console.html index fe263a9..a320e8b 100644 --- a/src/main/webapp/views/realtimeWatch/console.html +++ b/src/main/webapp/views/realtimeWatch/console.html @@ -636,7 +636,7 @@ siteEl.html(sites[i].siteId); } // RGV浣嶇疆 - if(sites[i].siteId === '112' || sites[i].siteId === '212'){ + if(sites[i].siteId === '1' || sites[i].siteId === '2'|| sites[i].siteId === '3' || sites[i].siteId === '4'){ carAnimate(Number(sites[i].siteId), Number(sites[i].nearbySta)); } } @@ -763,54 +763,121 @@ // 灏忚溅鍋忕Щ鍔ㄧ敾 function carAnimate(id, target) { var targetTop = 0; - if (id === 112) { + var targetLeft = 1489; + console.log(id+" ....>>>"+target) switch (target) { - case 1: - targetTop += 313; - break; - case 2: - targetTop += 313; - break; case 3: - targetTop += 256; + targetTop += 67; break; - case 4: - targetTop += 226; + case 9: + targetTop += 92; break; - case 5: - targetTop += 168; - case 6: - targetTop += 168; + case 14: + targetTop += 115; + break; + case 19: + targetTop += 140; + break; + case 26: + targetTop += 160; + break; + case 31: + targetTop += 183; + break; + case 37: + targetTop += 208; + break; + case 42: + targetTop += 231; + break; + case 49: + targetTop += 252; + break; + case 54: + targetTop += 275; + break; + case 60: + targetTop += 300; + break; + case 65: + targetTop += 330; + break; + case 72: + targetTop += 366; + break; + case 77: + targetTop += 389; + break; + case 83: + targetTop += 414; + break; + case 88: + targetTop += 445; + break; + case 95: + targetTop += 480; + break; + case 100: + targetTop += 503; + break; + case 107: + targetTop += 528; + break; + case 110: + targetTop += 570; + break; + case 118: + targetTop += 594; + break; + case 123: + targetTop += 617; + break; + case 130: + targetTop += 642; + break; + case 156: + targetTop += 700; + break; + case 161: + targetTop += 712; + break; + case 168: + targetTop += 725; + break; + case 186: + targetTop += 770; + break; + case 191: + targetTop += 782; + break; + case 197: + targetTop += 795; break; default: - return; + break; } - } else if (id === 212) { - switch (target) { - case 1: - targetTop += 313; - break; - case 2: - targetTop += 313; - break; - case 3: - targetTop += 256; - break; - case 4: - targetTop += 226; - break; - case 5: - targetTop += 168; - case 6: - targetTop += 168; - break; - default: - return; + if (target === 200){ + targetTop += 830; + targetLeft += 26; } - } else { - return; - } - $("#site-" + id).animate({top: targetTop + 'px'}, 1000); + if (target === 300){ + targetTop += 41; + targetLeft += 26; + } + if (target > 0 && target<200 && targetTop === 0){ + var location = 100 - (target/2); + var px = 830-41; + targetTop += 41 + (px - px* (location/100)); + } + if (target > 200 && target<300){ + targetLeft += 45; + var location = 300 - target; + var px = 830-41; + targetTop += 41 + px* (location/100); + } + + + $("#site-" + id).animate({top: targetTop + 'px',left:targetLeft+'px'}, 1000); } //涓嬪彂杈撻�佺嚎鍛戒护 diff --git a/src/main/webapp/views/realtimeWatch/index2.html b/src/main/webapp/views/realtimeWatch/index2.html index 8cf9d9b..75299f4 100644 --- a/src/main/webapp/views/realtimeWatch/index2.html +++ b/src/main/webapp/views/realtimeWatch/index2.html @@ -24,6 +24,7 @@ <li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li> <li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li> <li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li> + <li><a id="rgv" onclick="nav(this.id)" class="nav-unselect" href="#">Rgv</a></li> </ul> </div> </div> diff --git a/src/main/webapp/views/realtimeWatch/rgv.html b/src/main/webapp/views/realtimeWatch/rgv.html new file mode 100644 index 0000000..d6bd155 --- /dev/null +++ b/src/main/webapp/views/realtimeWatch/rgv.html @@ -0,0 +1,652 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>RGV鐩戞帶绠$悊</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/wcs/css/normalize.css"> + <link rel="stylesheet" type="text/css" href="../../static/wcs/css/common.css"> + <link rel="stylesheet" type="text/css" href="../../static/wcs/css/crn.css"> + <script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script> + <script type="text/javascript" src="../../static/wcs/js/common.js"></script> + <script type="text/javascript" src="../../static/wcs/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" style="overflow: auto;">--> + <!-- <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 class="crn-command-item">--> + <!-- <label>3#</label>--> + <!--<!– <button id="demoBtn-3" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>–>--> + <!-- <!– <span> </span>–>--> + <!-- <input id="crn3" disabled="disabled">--> + <!-- </div>--> + <!-- <div class="crn-command-item">--> + <!-- <label>4#</label>--> + <!--<!– <button id="demoBtn-4" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>–>--> + <!-- <!– <span> </span>–>--> + <!-- <input id="crn4" disabled="disabled">--> + <!-- </div>--> + <!-- <div class="crn-command-item">--> + <!-- <label>5#</label>--> + <!--<!– <button id="demoBtn-5" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>–>--> + <!-- <!– <span> </span>–>--> + <!-- <input id="crn5" disabled="disabled">--> + <!-- </div>--> + <!-- <div class="crn-command-item">--> + <!-- <label>6#</label>--> + <!--<!– <button id="demoBtn-6" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>–>--> + <!-- <!– <span> </span>–>--> + <!-- <input id="crn6" disabled="disabled">--> + <!-- </div>--> + <!-- </div>--> + <!-- RGV鐘舵�佷綅淇℃伅 --> + <div class="crn-state"> + <table id="crn-state-table"> + <thead> + <tr> + <th>RGV</th> + <th>妯″紡</th> + <th>鐘舵��</th> +<!-- <th>鎵ц鐘舵��</th>--> +<!-- <th>褰撳墠閫熷害</th>--> + <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> + <!-- RGV鐘舵�� --> + <div class="crn-msg"> + <table id="crn-msg-table"> + <thead> + <tr> + <th>RGV</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"> + <!-- RGV閫夋嫨 --> + <!-- <div id="crn-select" class="operator-item" style="width: 55%">--> + <!-- <span class="select-title">RGV鍙�</span>--> + <!-- <div class="select-container" style="padding: 20px 0;">--> + <!-- <label><input type="radio" name="crnSelect" value="1" checked> 1鍙稲GV</label>--> + <!-- <label><input type="radio" name="crnSelect" value="2"> 2鍙稲GV</label>--> + <!-- <label><input type="radio" name="crnSelect" value="3"> 3鍙稲GV</label>--> + <!-- <label><input type="radio" name="crnSelect" value="4"> 4鍙稲GV</label>--> + <!-- <label><input type="radio" name="crnSelect" value="5"> 5鍙稲GV</label>--> + <!-- <label><input type="radio" name="crnSelect" value="6"> 6鍙稲GV</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> + <!-- RGV鏃ュ織杈撳嚭 --> + <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(); + } + } + + // 鑾峰彇RGV鎵ц涓殑鍛戒护 + function getCommandLog() { + $.ajax({ + url: baseUrl + "/rgv/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].rgvNo).val(commands[i].command); + } + } else if (res.code === 403) { + window.location.href = baseUrl + "/login"; + } else { + console.log(res.msg); + } + } + }) + } + + // RGV淇℃伅琛ㄨ幏鍙� ---- 琛ㄤ竴 + function getCrnStateInfo() { + var tableEl = $('#crn-state-table'); + $.ajax({ + url: baseUrl+ "/rgv/table/rgv/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].rgvNo); + 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].rgvPos); + setVal(tr.children("td").eq(4), table[i-1].walkPos); + setVal(tr.children("td").eq(5), table[i-1].alarm); + + } + } else if (res.code === 403){ + window.location.href = baseUrl+"/login"; + } else { + console.log(res.msg); + } + } + }); + } + + // RGV鏁版嵁琛ㄨ幏鍙� ---- 琛ㄤ簩 + function getCrnMsgInfo() { + var tableEl = $('#crn-msg-table'); + $.ajax({ + url: baseUrl+ "/rgv/table/rgv/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].rgvNo); + 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); + } + } + }); + } + + // RGV鎵嬪姩鎿嶄綔鍖� ----------------------------------------------------------------------- + + function getReqParam() { + var rgvNo = $('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 { + rgvNo: rgvNo, + 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 + "/rgv/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); + } + } + }) + } + + // ------------------------------------------------------------------------------------------------ + + // RGV淇℃伅琛ㄨ幏鍙� ----- 琛ㄤ竴 + 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); + } + + // RGV鏁版嵁琛ㄨ幏鍙� ----- 琛ㄤ簩 + 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.rgvNo).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].rgvNo) === Number(crnId)) { + opt = !crnDemoData[i].demo; + } + } + layer.confirm(crnId + ' 鍙稲GV纭畾'+ (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