| | |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.entity.BasShuttle; |
| | | import com.zy.asrs.service.BasShuttleService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.utils.NavigatePositionConvert; |
| | | import com.zy.core.News; |
| | | import com.zy.core.enums.ShuttleErrorCodeType; |
| | |
| | | * 实际坐标xyz单位mm |
| | | */ |
| | | private NyShuttlePointClass coord; |
| | | |
| | | /** |
| | | * WCS库位xyz |
| | | */ |
| | | private NyShuttlePointClass wcsPoint; |
| | | |
| | | /** |
| | | * 任务目的库位xyztaskId(正在动作的任务ID)lastTaskId(最后一个完成的任务ID)recentTaskId(收到的最后一个任务ID) |
| | |
| | | String locNo = NavigatePositionConvert.nyXyzToLocNo(point.getX(), point.getY(), point.getZ()); |
| | | this.point = point; |
| | | this.currentLocNo = locNo; |
| | | NyShuttlePointClass wcsPoint = new NyShuttlePointClass(); |
| | | wcsPoint.setX(Utils.getRow(locNo)); |
| | | wcsPoint.setY(Utils.getBay(locNo)); |
| | | wcsPoint.setZ(Utils.getLev(locNo)); |
| | | this.wcsPoint = wcsPoint; |
| | | } |
| | | |
| | | // 是否处于空闲待命状态 |
| | |
| | | } |
| | | |
| | | .sxcar{ |
| | | width: 70px; |
| | | width: 35px; |
| | | height: 35px; |
| | | background-image: url(../images/sxcar.png); |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | text-shadow: 2px 2px 4px #000000; |
| | | color: red; |
| | | font-size: 18px; |
| | | } |
| | |
| | | <button class="floorBtn btn-16" onclick="changFloor(this,10)" style="margin-top: 600px">10F</button> |
| | | </div> |
| | | <button class="floorBtn btn-16" onclick="resetMap()" style="margin-top: 650px;font-size: 14px;">重置地图</button> |
| | | <!-- <button class="floorBtn btn-16" onclick="testMove()" style="margin-top: 700px;font-size: 14px;">测试移动车</button>--> |
| | | <button class="floorBtn btn-16" onclick="testMove()" style="margin-top: 700px;font-size: 14px;">测试移动车</button> |
| | | |
| | | <!-- 货架 + 堆垛机 + 入库站点 --> |
| | | <div class="main-part" id="mapDataId"> |
| | |
| | | '<span class="state-ss ' + shuttleStatusClass + '">' + item.protocolStatus$ + '</span></div>'; |
| | | $("#shuttle-status-box").append(shuttleStatus) |
| | | |
| | | if(item.locNoLev != currentLev){ |
| | | if(item.wcsPoint.z != currentLev){ |
| | | //四向穿梭车楼层和当前地图楼层不一致,删除该车辆 |
| | | $("#sxcar-" + item.shuttleNo).remove() |
| | | }else { |
| | | //移动四向穿梭车 |
| | | moveCar(item.shuttleNo,item.locNoX,item.locNoY) |
| | | moveCar(item.shuttleNo,item.wcsPoint.x,item.wcsPoint.y) |
| | | } |
| | | }) |
| | | } |
| | |
| | | method: 'POST', |
| | | success: function (res) { |
| | | res.data.forEach((item,index) => { |
| | | if(lev == item.locNoLev){ |
| | | let carBox = '<div class="sxcar" id="sxcar-' + item.shuttleNo + '"></div>' |
| | | if(lev == item.wcsPoint.z){ |
| | | let carBox = '<div class="sxcar" id="sxcar-' + item.shuttleNo + '">' + item.shuttleNo + '</div>' |
| | | $("#mapDataId").append(carBox) |
| | | } |
| | | }) |
| | |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | success: (res) => { |
| | | let data = res.data |
| | | console.log(data) |
| | | mapData = data |
| | | let content = "" |
| | | data.forEach((rowData,index) => { |
| | |
| | | |
| | | function testMove() { |
| | | getMap2TwoArr()//测试地图数据转换是否正常 |
| | | let json = "[{\n" + |
| | | "\t\t\"x\": 5,\n" + |
| | | "\t\t\"y\": 5\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 6,\n" + |
| | | "\t\t\"y\": 5\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 7,\n" + |
| | | "\t\t\"y\": 5\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 8,\n" + |
| | | "\t\t\"y\": 5\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 9,\n" + |
| | | "\t\t\"y\": 5\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 10,\n" + |
| | | "\t\t\"y\": 5\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 11,\n" + |
| | | "\t\t\"y\": 5\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 11,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 12,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 13,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 14,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 15,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 16,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 17,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 18,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 19,\n" + |
| | | "\t\t\"y\": 6\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 19,\n" + |
| | | "\t\t\"y\": 7\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 19,\n" + |
| | | "\t\t\"y\": 8\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 20,\n" + |
| | | "\t\t\"y\": 8\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 21,\n" + |
| | | "\t\t\"y\": 8\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 22,\n" + |
| | | "\t\t\"y\": 8\n" + |
| | | "\t},\n" + |
| | | "\t{\n" + |
| | | "\t\t\"x\": 23,\n" + |
| | | "\t\t\"y\": 8\n" + |
| | | "\t}\n" + |
| | | "]"; |
| | | let json = "[{\"x\":5,\"y\":5},{\"x\":6,\"y\":5},{\"x\":7,\"y\":5},{\"x\":8,\"y\":5},{\"x\":9,\"y\":5},{\"x\":10,\"y\":5},{\"x\":11,\"y\":5},{\"x\":11,\"y\":6},{\"x\":12,\"y\":6},{\"x\":13,\"y\":6},{\"x\":14,\"y\":6},{\"x\":15,\"y\":6},{\"x\":16,\"y\":6}]"; |
| | | json = JSON.parse(json) |
| | | json.forEach((item,index) => { |
| | | moveCar(1, item.x, item.y); |
| | | }) |
| | | |
| | | } |
| | | |
| | | /** |