Junjie
2023-03-27 eb5eb35a7ef56a01a4c788a8c2efef9fc7b823e7
src/main/webapp/views/console.html
@@ -16,227 +16,17 @@
        <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
    </header>
    <main class="main">
        <!--第1列 -->
        <div class="site-row site-row-1" id="fool1">
            <div id="site-102" class="site" style="height: 38px;line-height: 38px;width:156px;">102</div>
            <div id="site-101" class="site" style="height: 38px;line-height: 38px;width:156px;">101</div>
            <div id="site-100" class="site" style="height: 38px;line-height: 38px;width:156px;">100</div>
        </div>
        <!--第2列-->
        <div class="site-row site-row-2" id="fool2" style="display: none">
            <div id="site-202" class="site" style="height: 38px;line-height: 38px;width:156px;">202</div>
            <div id="site-201" class="site" style="height: 38px;line-height: 38px;width:156px;">201</div>
            <div id="site-200" class="site" style="height: 38px;line-height: 38px;width:156px;">200</div>
        </div>
        <!--第3列-->
        <div class="site-row site-row-3" id="fool3" style="display: none">
            <div id="site-302" class="site" style="height: 38px;line-height: 38px;width:156px;">302</div>
            <div id="site-301" class="site" style="height: 38px;line-height: 38px;width:156px;">301</div>
            <div id="site-300" class="site" style="height: 38px;line-height: 38px;width:156px;">300</div>
        </div>
        <!--楼层按钮-->
            <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>
        <!-- 货架 + 堆垛机 + 入库站点 -->
        <div class="main-part">
            <!-- 第一组 -->
            <div class="lane" style="margin-bottom: 280px">
                <!-- 货架 -->
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">1#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">2#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">3#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">4#</span>
                </div>
                <!-- 堆垛机 -->
                <div class="crn">
                    <hr class="pathway">
                    <div id="crn-1" class="machine"></div>
                </div>
                <!-- 货架 -->
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item">5</button>
                    <button class="item">6</button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">5#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item">5</button>
                    <button class="item">6</button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">6#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item">5</button>
                    <button class="item">6</button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">7#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item">5</button>
                    <button class="item">6</button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">8#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item">5</button>
                    <button class="item">6</button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">9#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item">5</button>
                    <button class="item">6</button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">10#</span>
                </div>
                <div class="stock-group">
                    <button class="item">1</button>
                    <button class="item">2</button>
                    <button class="item">3</button>
                    <button class="item">4</button>
                    <button class="item">5</button>
                    <button class="item">6</button>
                    <button class="item">7</button>
                    <button class="item">8</button>
                    <button class="item">9</button>
                    <button class="item">10</button>
                    <button class="item">11</button>
                    <button class="item">12</button>
                    <button class="item">13</button>
                    <span class="row-no">11#</span>
                </div>
            <div class="lane" id="mapDataId" style="margin-bottom: 280px">
                <div class="sxcar" id="sxcar-1"></div>
            </div>
        </div>
    </main>
@@ -549,6 +339,7 @@
    var tData1 = []
    var tData2 = []
    var tData3 = []
    var mapData = [] //地图数据
    function getCodeData(){
        $.ajax({
            url:baseUrl +'/console/barcode/output/site',
@@ -600,6 +391,200 @@
            var str3 = '<li><span>' + tData3[k].barcode + '</span><span class="right">' + tData3[k].time + '</span></li>'
            $('#barcode3').append(str3)
        }
    }
    $(function (){
        initMap()
    })
    //计算四向穿梭车图标位置
    function getCarPosition(x,y) {
        let top = (x * 35 - 35) + "px" //需要减去小车自己所占高度
        let left = (y * 70 - 70) + "px" //需要减去小车自己所占宽度
        return [top,left];
    }
    //移动四向穿梭车图标
    function moveCar(id,x,y) {
        //获取具体位置top和left值
        let position = getCarPosition(x,y)
        let top = position[0]
        let left = position[1]
        $("#sxcar-" + id).animate({top: top,left: left}, 1000);
    }
    //初始化地图
    function initMap() {
        //母轨道第一次索引,用于定位小车
        let firstMotherIndex = [0,0];
        $.ajax({
            type:"get",
            url: baseUrl + "/static/js/map.json",
            success: (data) => {
                mapData = data
                let content = ""
                data.forEach((rowData,index) => {
                    let lastGroup = '<div class="stock-group">'
                    //去掉上下边缘禁区
                    if(!(index == 0 || data.length - 1 == index)){
                        let row = '<div class="stock-group">';
                        rowData.forEach((colData,idx) => {
                            //去掉左右边缘禁区
                            if(!(idx == 0 || rowData.length - 1 == idx)){
                                let col;
                                switch (colData.value){
                                    case -1:
                                        col = '<button class="item" style="visibility: hidden">' + idx + '</button>';
                                        break;
                                    case 3:
                                        //母轨道
                                        col = '<button class="item" style="background: #5af;">&#x21c5;&#x21c4;</button>';
                                        if (firstMotherIndex[0] === 0 && firstMotherIndex[1] === 0) {
                                            //第一次遇到母轨道,则保存该轨道地址(用于小车初始化定位)
                                            firstMotherIndex = [index,idx]
                                        }
                                        break;
                                    case 4:
                                        //站点
                                        let data = colData.data
                                        col = '<div id="site-' + data + '" class="site">' + data + '(9991)</div>';
                                        break;
                                    default:
                                        col = '<button class="item">' + index + '</button>';
                                }
                                if(data.length - 2 == index){
                                    //到达真实数据的最后一行,打上行数标记
                                    lastGroup += '<button class="item">' + idx + '#</button>';
                                }
                                row += col
                            }
                        })
                        lastGroup += '</div>';
                        row += lastGroup;
                        row += '</div>';
                        content += row
                    }
                })
                moveCar(1, firstMotherIndex[0], firstMotherIndex[1]);
                $("#mapDataId").append(content)
            }
        })
    }
    //将地图数据转换成int二维数组(后续用于请求计算路径时携带地图数据参数使用)
    function getMap2TwoArr() {
        let data = []
        mapData.forEach((item,index) => {
            let data2 = []
            item.forEach((val,idx) => {
                data2.push(val.value)
            })
            data.push(data2)
        })
        return data;
    }
    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" +
            "]";
        json = JSON.parse(json)
        json.forEach((item,index) => {
            moveCar(1, item.x, item.y);
        })
    }
    // 小车偏移动画
@@ -659,7 +644,7 @@
</script>
<script type="text/javascript">
    // 弹窗站点信息
    $('.site').on('click',function(){
    $('#mapDataId').on('click','.site',function(){
        var id = this.id.split("-")[1];
        $("#siteWindow").attr("style","display:block;");//显示div
        $("#crnWindow").attr("style","display:none;");