From 07fda5932802ec084cde49bd74dd0788306fca16 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 06 四月 2023 16:47:59 +0800
Subject: [PATCH] 四向穿梭车地图显示优化,车辆增加实时移动
---
src/main/java/com/zy/asrs/controller/ShuttleController.java | 13 +++
src/main/webapp/views/console.html | 156 ++++++++++++++------------------------
src/main/java/com/zy/asrs/domain/vo/ShuttleStateTableVo.java | 20 +++++
3 files changed, 92 insertions(+), 97 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ShuttleController.java b/src/main/java/com/zy/asrs/controller/ShuttleController.java
index 58cfaed..ef3f912 100644
--- a/src/main/java/com/zy/asrs/controller/ShuttleController.java
+++ b/src/main/java/com/zy/asrs/controller/ShuttleController.java
@@ -9,9 +9,14 @@
import com.zy.asrs.domain.param.ShuttleOperatorParam;
import com.zy.asrs.domain.vo.*;
import com.zy.asrs.entity.BasShuttle;
+import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.BasShuttleService;
+import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.utils.NavigatePositionConvert;
+import com.zy.common.utils.NavigateUtils;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
@@ -45,6 +50,8 @@
private BasShuttleService basShuttleService;
@Autowired
private WrkMastService wrkMastService;
+ @Autowired
+ private LocMastService locMastService;
@PostMapping("/table/shuttle/state")
@ManagerAuth(memo = "鍥涘悜绌挎杞︿俊鎭〃")
@@ -69,6 +76,12 @@
vo.setBusyStatus(shuttleProtocol.getBusyStatusType().desc); //鍥涘悜绌挎杞︾姸鎬�
vo.setStatus(shuttleProtocol.getProtocolStatusType().desc);//褰撳墠浠诲姟鐘舵��
vo.setCurrentCode(shuttleProtocol.getCurrentCode());//褰撳墠浜岀淮鐮�
+ LocMast currentLocMast = locMastService.queryByQrCode(shuttleProtocol.getCurrentCode().toString());
+ vo.setLocNo(currentLocMast.getLocNo());//鑾峰彇褰撳墠搴撲綅鍙�
+ int[] locNoXY = NavigatePositionConvert.positionToXY(currentLocMast.getLocNo());//鑾峰彇搴撲綅鍙稾Y鍧愭爣
+ vo.setLocNoX(locNoXY[0]);
+ vo.setLocNoY(locNoXY[1]);
+ vo.setLocNoLev(Utils.getLev(currentLocMast.getLocNo()));//褰撳墠搴撲綅灞傞珮
vo.setBatteryPower(shuttleProtocol.getBatteryPower$() == null ? "" : shuttleProtocol.getBatteryPower$() + "%");//鐢垫睜鐢甸噺
vo.setBatteryTemp(shuttleProtocol.getBatteryTemp$() == null ? "" : shuttleProtocol.getBatteryTemp$() + "掳");//鐢垫睜娓╁害
if (!Cools.isEmpty(shuttleProtocol.getErrorCode())) {
diff --git a/src/main/java/com/zy/asrs/domain/vo/ShuttleStateTableVo.java b/src/main/java/com/zy/asrs/domain/vo/ShuttleStateTableVo.java
index f12d095..38c4aae 100644
--- a/src/main/java/com/zy/asrs/domain/vo/ShuttleStateTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/ShuttleStateTableVo.java
@@ -33,6 +33,26 @@
private Short currentCode;
/**
+ * 褰撳墠搴撲綅鍙�
+ */
+ private String locNo;
+
+ /**
+ * 搴撲綅鍙�-X
+ */
+ private int locNoX;
+
+ /**
+ * 搴撲綅鍙�-Y
+ */
+ private int locNoY;
+
+ /**
+ * 褰撳墠搴撲綅灞傞珮
+ */
+ private int locNoLev;
+
+ /**
* 鐢垫睜鐢甸噺
*/
public String batteryPower = "-";
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 351be8b..bf21940 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -20,13 +20,14 @@
<button class="floorBtn btn-16" onclick="changFloor(1)" style="margin-top: 150px">1F</button>
<button class="floorBtn btn-16" onclick="changFloor(2)" style="margin-top: 200px">2F</button>
<button class="floorBtn btn-16" onclick="changFloor(3)" style="margin-top: 250px">3F</button>
- <button class="floorBtn btn-16" onclick="testMove()" style="margin-top: 250px">娴嬭瘯绉诲姩灏忚溅</button>
+ <button class="floorBtn btn-16" onclick="changFloor(4)" style="margin-top: 300px">4F</button>
+ <button class="floorBtn btn-16" onclick="testMove()" style="margin-top: 350px">娴嬭瘯绉诲姩杞�</button>
<!-- 璐ф灦 + 鍫嗗灈鏈� + 鍏ュ簱绔欑偣 -->
<div class="main-part">
<!-- 绗竴缁� -->
<div class="lane" id="mapDataId" style="margin-bottom: 280px">
- <div class="sxcar" id="sxcar-1"></div>
+
</div>
</div>
</main>
@@ -340,6 +341,7 @@
var tData2 = []
var tData3 = []
var mapData = [] //鍦板浘鏁版嵁
+ var currentLev = 1;//褰撳墠鍦板浘妤煎眰
function getCodeData(){
$.ajax({
url:baseUrl +'/console/barcode/output/site',
@@ -395,8 +397,32 @@
$(function (){
- initMap()
+ initMap(1)
})
+
+ setInterval(() => {
+ getShuttleStateInfo()
+ },1000)
+
+ // 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇
+ function getShuttleStateInfo() {
+ $.ajax({
+ url: baseUrl+ "/shuttle/table/shuttle/state",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ res.data.forEach((item,index) => {
+ if(item.locNoLev != currentLev){
+ //鍥涘悜绌挎杞︽ゼ灞傚拰褰撳墠鍦板浘妤煎眰涓嶄竴鑷达紝鍒犻櫎璇ヨ溅杈�
+ $("#sxcar-" + item.shuttleNo).remove()
+ }else {
+ //绉诲姩鍥涘悜绌挎杞�
+ moveCar(item.shuttleNo,item.locNoX,item.locNoY)
+ }
+ })
+ }
+ });
+ }
//璁$畻鍥涘悜绌挎杞﹀浘鏍囦綅缃�
function getCarPosition(x,y) {
@@ -415,10 +441,10 @@
}
//鍒濆鍖栧湴鍥�
- function initMap() {
+ function initMap(lev) {
//姣嶈建閬撶涓�娆$储寮曪紝鐢ㄤ簬瀹氫綅灏忚溅
let firstMotherIndex = [0,0];
-
+ $("#mapDataId").empty()
$.ajax({
type:"get",
url: baseUrl + "/static/js/map.json",
@@ -447,8 +473,18 @@
break;
case 4:
//绔欑偣
- let data = colData.data
- col = '<div id="site-' + data + '" class="site">' + data + '(9991)</div>';
+ if (lev == 1) {
+ let data = colData.data;
+ col = '<div id="site-' + data + '" class="site">' + data + '(9991)</div>';
+ }else {
+ //鍏朵粬妤煎眰鍙湁鎻愬崌鏈鸿兘鏄剧ず
+ let data = colData.data;
+ if (data == 109) {//鍏朵粬妤煎眰鍙湁鎻愬崌鏈鸿兘鏄剧ず
+ col = '<div id="site-' + data + '" class="site">' + data + '(9991)</div>';
+ }else {
+ col = '<div style="visibility: hidden" id="site-' + data + '" class="site">' + data + '(9991)</div>';
+ }
+ }
break;
default:
col = '<button class="item">' + idx + '</button>';
@@ -466,10 +502,23 @@
}
})
- moveCar(1, firstMotherIndex[0], firstMotherIndex[1]);
$("#mapDataId").append(content)
}
})
+
+ $.ajax({
+ url: baseUrl+ "/shuttle/table/shuttle/state",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ res.data.forEach((item,index) => {
+ if(lev == item.locNoLev){
+ let carBox = '<div class="sxcar" id="sxcar-' + item.shuttleNo + '"></div>'
+ $("#mapDataId").append(carBox)
+ }
+ })
+ }
+ });
}
//灏嗗湴鍥炬暟鎹浆鎹㈡垚int浜岀淮鏁扮粍(鍚庣画鐢ㄤ簬璇锋眰璁$畻璺緞鏃舵惡甯﹀湴鍥炬暟鎹弬鏁颁娇鐢�)
@@ -933,74 +982,6 @@
}
}
- // 椤甸潰鐐瑰嚮浜嬩欢鐩戝惉 ---------------------------------------------------------
-
- // 杈撻�佽澶囩偣鍑讳簨浠�
- // $('.site').on('click', function () {
- // var id = this.id.split("-")[1];
- // if (id === undefined) {
- // return;
- // }
- // layer.open({
- // title: id + " 绔欑偣淇℃伅璇︽儏",
- // closeBtn: 0,
- // skin: 'layui-layer-lan',
- // offset: '180px',
- // type: 1,
- // shadeClose: true,
- // content: $('#siteWindow'),
- // area: ['35rem', '18rem'],
- // btn: ['纭畾', '鍏抽棴'],
- // success: function(layero, index){
- // http.post(baseUrl+"/console/site/detail", {siteId: id}, function (res) {
- // for (var val in res.data) {
- // var find = $("#siteWindow").find(":input[name='" + val + "']");
- // if (find[0].type==='text') {
- // find.val(res.data[val]);
- // } else if (find[0].type === 'checkbox') {
- // find.attr("checked", res.data[val] === 'Y');
- // }
- // }
- // })
- // },
- // end: function () {
- // $(':input', $("#siteWindow")).val('').removeAttr('checked').removeAttr('selected');
- // }
- // });
- // });
-
- // 鍫嗗灈鏈虹偣鍑讳簨浠�
- // $('.machine').on('click', function () {
- // var id = this.id.split("-")[1];
- // layer.open({
- // title: id+"鍙峰爢鍨涙満",
- // skin: 'layui-layer-lan',
- // closeBtn: 0,
- // type: 1,
- // offset: '150px',
- // shadeClose: true,
- // content: $("#crnWindow"),
- // area: ['40rem', '20rem'],
- // btn: ['纭畾', '鍏抽棴'],
- // success: function(layero, index){
- // http.post(baseUrl+"/console/crn/detail", {crnNo: id}, function (res) {
- // for (var val in res.data) {
- // var find = $("#crnWindow").find(":input[name='" + val + "']");
- // if (find[0].type==='text') {
- // find.val(res.data[val]);
- // } else if (find[0].type === 'checkbox') {
- // find.attr("checked", res.data[val] === 'Y');
- // }
- // }
- // })
- // },
- // end: function () {
- // $(':input', $("#crnWindow")).val('').removeAttr('checked').removeAttr('selected');
- // }
- // });
- // });
-
-
// 灏忚溅鍋忕Щ鍔ㄧ敾
function carAnimate(id, target) {
var targetTop = 122;
@@ -1030,29 +1011,10 @@
$("#site-" + id).animate({top: targetTop+'px'}, 1000);
}
-
//妤煎眰鍒囨崲鎸夐挳
function changFloor(x) {
- switch (x) {
- case 1:
- $('#fool1').css("display","block")
- $('#fool2').css("display","none")
- $('#fool3').css("display","none")
- return
- case 2:
- $('#fool1').css("display","none")
- $('#fool2').css("display","block")
- $('#fool3').css("display","none")
- return
- case 3:
- $('#fool1').css("display","none")
- $('#fool2').css("display","none")
- $('#fool3').css("display","block")
- return
- default:
- return;
-
- }
+ currentLev = x
+ initMap(currentLev)
}
</script>
--
Gitblit v1.9.1