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