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