dubin
2025-05-27 56b6f93fbf3e1d5b27676a1d6ad34dc5c626249a
电视机ip配置和wcs监控图
4个文件已修改
6个文件已添加
4644 ■■■■■ 已修改文件
src/main/resources/application-prod.yml 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/wcs/js/console.map.js 440 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/wcs/js/console1.map.js 500 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/wcs/js/console2.map.js 544 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/wcs/js/console3.map.js 528 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/realtimeWatch/console.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/realtimeWatch/console1.html 853 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/realtimeWatch/console2.html 853 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/realtimeWatch/console3.html 853 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-prod.yml
@@ -255,13 +255,76 @@
    port: 51236
    ip: 172.17.91.39
    id: 4
  # LED1
  # LED1 成品库1F
  led[0]:
    id: 1
    ip: 192.168.110.210
    port: 5005
    devpPlcId: ${wcs-slave.devp[2].id}
    staArr: 1052
  # LED2 成品库1F
  led[1]:
    id: 2
    ip: 192.168.110.211
    port: 5005
    devpPlcId: ${wcs-slave.devp[2].id}
    staArr: 1052
  # LED3 半成品库1F
  led[2]:
    id: 3
    ip: 192.168.110.212
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 1014
  # LED4 成品库2F
  led[3]:
    id: 4
    ip: 192.168.110.213
    port: 5005
    devpPlcId: ${wcs-slave.devp[3].id}
    staArr: 2057
  # LED5 成品库2F
  led[4]:
    id: 5
    ip: 192.168.110.214
    port: 5005
    devpPlcId: ${wcs-slave.devp[3].id}
    staArr: 2056
  # LED6 成品库2F
  led[5]:
    id: 6
    ip: 192.168.110.215
    port: 5005
    devpPlcId: ${wcs-slave.devp[3].id}
    staArr: 2054
  # LED7 成品库2F
  led[6]:
    id: 7
    ip: 192.168.110.216
    port: 5005
    devpPlcId: ${wcs-slave.devp[3].id}
    staArr: 2051
  # LED8 半成品库2F
  led[7]:
    id: 8
    ip: 192.168.110.217
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 2002
  # LED9 半成品库2F
  led[8]:
    id: 9
    ip: 192.168.110.218
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 2007
  # LED10 半成品库2F
  led[9]:
    id: 10
    ip: 192.168.110.219
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 2018
#  crn[0]: #堆垛机1
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
src/main/resources/application.yml
@@ -8,7 +8,7 @@
    name: @pom.build.finalName@
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://192.168.0.39:1433;databasename=czscwcs
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=czscwcs
    username: sa
    password: sa@123
  mvc:
src/main/webapp/static/wcs/js/console.map.js
@@ -6,87 +6,96 @@
    "hpPosition": 0,
    "minBayNo": 1,
    "floors": 1,
    "racks": [{
        "type": "rack",
        "id": "rack7",
        "top": 326,
        "left": 800,
        "width": 795,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 50,
        "hiddenArr": [1,22]
    }, {
    "racks": [
    //     {
    //     "type": "rack",
    //     "id": "rack7",
    //     "top": 326,
    //     "left": 800,
    //     "width": 795,
    //     "height": 23,
    //     "minBayNo": 1,
    //     "maxBayNo": 50,
    //     "hiddenArr": [1,22]
    // },
        {
        "type": "rack",
        "id": "rack6",
        "top": 303,
        "left": 800,
        "width": 795,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 22,
        "hiddenArr": [1,22]
    }, {
        "type": "rack",
        "id": "rack5",
        "top": 209,
        "left": 800,
        "width": 795,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 22,
        "hiddenArr": [1,22]
    },{
        "maxBayNo": 59,
        "hiddenArr": [1,59]
    },
    //     {
    //     "type": "rack",
    //     "id": "rack5",
    //     "top": 209,
    //     "left": 820,
    //     "width": 1050,
    //     "height": 23,
    //     "minBayNo": 1,
    //     "maxBayNo": 59,
    //     "hiddenArr": [1,59]
    // },
        {
        "type": "rack",
        "id": "rack4",
        "top": 232,
        "left": 800,
        "width": 795,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 22,
        "hiddenArr": [1,22]
    }, {
        "type": "rack",
        "id": "rack3",
        "top": 182,
        "left": 800,
        "width": 795,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 22,
        "hiddenArr": [1,22]
    }, {
        "maxBayNo": 59,
        "hiddenArr": [1,59]
    },
    //     {
    //     "type": "rack",
    //     "id": "rack3",
    //     "top": 182,
    //     "left": 820,
    //     "width": 1050,
    //     "height": 23,
    //     "minBayNo": 1,
    //     "maxBayNo": 59,
    //     "hiddenArr": [1,59]
    // },
        {
        "type": "rack",
        "id": "rack2",
        "top": 159,
        "left": 800,
        "width": 795,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 22,
        "hiddenArr": [1,22]
    }, {
        "maxBayNo": 59,
        "hiddenArr": [1,59]
    },
        {
        "type": "rack",
        "id": "rack1",
        "top": 98,
        "left": 800,
        "width": 795,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 22,
        "hiddenArr": [1,22]
    }, {
        "type": "rack",
        "id": "rack0",
        "top": 75,
        "left": 800,
        "width": 795,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 22,
        "hiddenArr": [1,22]
    }],
        "maxBayNo": 59,
        "hiddenArr": [1,59]
    },
    //     {
    //     "type": "rack",
    //     "id": "rack0",
    //     "top": 75,
    //     "left": 820,
    //     "width": 1050,
    //     "height": 23,
    //     "minBayNo": 1,
    //     "maxBayNo": 59,
    //     "hiddenArr": [1,59]
    // }
    ],
    "crns": [{
        "type": "crane",
        "id": "crn-2",
@@ -139,7 +148,7 @@
            "stns": [{
                "type": "stn",
                "id": "site-100",
                "text": "100",
                "text": "1008",
                "top": 99,
                "left": 771,
                "width": 62,
@@ -147,7 +156,7 @@
            },{
                "type": "stn",
                "id": "site-101",
                "text": "101",
                "text": "1007",
                "top": 99,
                "left": 707,
                "width": 62,
@@ -155,7 +164,7 @@
            },{
                "type": "stn",
                "id": "site-102",
                "text": "102",
                "text": "RGV小车",
                "top": 99,
                "left": 643,
                "width": 62,
@@ -163,23 +172,52 @@
            },{
                "type": "stn",
                "id": "site-103",
                "text": "103",
                "text": "1011",
                "top": 99,
                "left": 579,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-104",
                "text": "104",
                "top": 124,
                "left": 579,
                "width": 62,
                "height": 34
            },{
            },
                {
                    "type": "stn",
                    "id": "site-103",
                    "text": "1020",
                    "top": 70,
                    "left": 579,
                    "width": 62,
                    "height": 23
                },
                {
                    "type": "stn",
                    "id": "site-103",
                    "text": "",
                    "top": 70,
                    "left": 515,
                    "width": 62,
                    "height": 23
                },
                {
                    "type": "stn",
                    "id": "site-103",
                    "text": "",
                    "top": 70,
                    "left": 450,
                    "width": 62,
                    "height": 23
                },
            //     {
            //     "type": "stn",
            //     "id": "site-104",
            //     "text": "104",
            //     "top": 124,
            //     "left": 579,
            //     "width": 62,
            //     "height": 34
            // },
                {
                "type": "stn",
                "id": "site-125",
                "text": "125",
                "text": "1006",
                "top": 160,
                "left": 771,
                "width": 62,
@@ -187,39 +225,42 @@
            },{
                "type": "stn",
                "id": "site-124",
                "text": "124",
                "text": "1005",
                "top": 160,
                "left": 707,
                "width": 62,
                "height": 23
            },{
            },/*{
                "type": "stn",
                "id": "site-123",
                "text": "123",
                "text": "RGV小车",
                "top": 160,
                "left": 643,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-122",
                "text": "122",
                "top": 160,
                "left": 579,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-121",
                "text": "121",
                "top": 186,
                "left": 579,
                "width": 62,
                "height": 42
            },{
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-122",
            //     "text": "122",
            //     "top": 160,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },
            //     {
            //     "type": "stn",
            //     "id": "site-121",
            //     "text": "121",
            //     "top": 186,
            //     "left": 579,
            //     "width": 62,
            //     "height": 42
            // },
                {
                "type": "stn",
                "id": "site-120",
                "text": "120",
                "text": "1004",
                "top": 231,
                "left": 771,
                "width": 62,
@@ -227,39 +268,41 @@
            },{
                "type": "stn",
                "id": "site-119",
                "text": "119",
                "text": "1003",
                "top": 231,
                "left": 707,
                "width": 62,
                "height": 23
            },{
            },/*{
                "type": "stn",
                "id": "site-118",
                "text": "118",
                "text": "RGV小车",
                "top": 231,
                "left": 643,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-117",
                "text": "117",
                "top": 231,
                "left": 579,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-116",
                "text": "116",
                "top": 256,
                "left": 579,
                "width": 62,
                "height": 46
            },{
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-117",
            //     "text": "117",
            //     "top": 231,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-116",
            //     "text": "116",
            //     "top": 256,
            //     "left": 579,
            //     "width": 62,
            //     "height": 46
            // },
                {
                "type": "stn",
                "id": "site-115",
                "text": "115",
                "text": "1002",
                "top": 304,
                "left": 771,
                "width": 62,
@@ -267,31 +310,87 @@
            },{
                "type": "stn",
                "id": "site-114",
                "text": "114",
                "text": "1001",
                "top": 304,
                "left": 707,
                "width": 62,
                "height": 23
            },{
            },
                {
                    "type": "stn",
                    "id": "site-114",
                    "text": "1016",
                    "top": 330,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },
                {
                    "type": "stn",
                    "id": "site-114",
                    "text": "1018",
                    "top": 356,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },
                {
                    "type": "stn",
                    "id": "site-114",
                    "text": "1019",
                    "top": 356,
                    "left": 772,
                    "width": 62,
                    "height": 23
                },
                {
                    "type": "stn",
                    "id": "site-114",
                    "text": "",
                    "top": 356,
                    "left": 837,
                    "width": 62,
                    "height": 23
                },
                {
                    "type": "stn",
                    "id": "site-114",
                    "text": "",
                    "top": 356,
                    "left": 902,
                    "width": 62,
                    "height": 23
                },
                {
                    "type": "stn",
                    "id": "site-114",
                    "text": "1017",
                    "top": 383,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },/*{
                "type": "stn",
                "id": "site-113",
                "text": "113",
                "text": "RGV小车",
                "top": 304,
                "left": 643,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-112",
                "text": "112",
                "top": 304,
                "left": 579,
                "width": 62,
                "height": 23
            },{
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-112",
            //     "text": "112",
            //     "top": 304,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },
                {
                "type": "stn",
                "id": "site-105",
                "text": "105",
                "text": "1012",
                "top": 99,
                "left": 515,
                "width": 62,
@@ -299,7 +398,7 @@
            },{
                "type": "stn",
                "id": "site-106",
                "text": "106",
                "text": "1013",
                "top": 124,
                "left": 515,
                "width": 62,
@@ -307,7 +406,7 @@
            },{
                "type": "stn",
                "id": "site-107",
                "text": "107",
                "text": "1013",
                "top": 160,
                "left": 515,
                "width": 62,
@@ -315,7 +414,7 @@
            },{
                "type": "stn",
                "id": "site-108",
                "text": "108",
                "text": "1013",
                "top": 186,
                "left": 515,
                "width": 62,
@@ -323,7 +422,7 @@
            },{
                "type": "stn",
                "id": "site-109",
                "text": "109",
                "text": "1013",
                "top": 231,
                "left": 515,
                "width": 62,
@@ -331,7 +430,7 @@
            },{
                "type": "stn",
                "id": "site-110",
                "text": "110",
                "text": "1014",
                "top": 304,
                "left": 515,
                "width": 62,
@@ -339,44 +438,47 @@
            },{
                "type": "stn",
                "id": "site-111",
                "text": "111",
                "text": "1015",
                "top": 329,
                "left": 515,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-1001",
                "text": "1001",
                "top": 99,
                "left": 451,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-1002",
                "text": "1002",
                "top": 160,
                "left": 451,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-1003",
                "text": "1003",
                "top": 231,
                "left": 451,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-1004",
                "text": "1004",
                "top": 304,
                "left": 451,
                "width": 62,
                "height": 23
            } ]
            },
            //     {
            //     "type": "stn",
            //     "id": "site-1001",
            //     "text": "1001",
            //     "top": 99,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },
            //     {
            //     "type": "stn",
            //     "id": "site-1002",
            //     "text": "1002",
            //     "top": 160,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-1003",
            //     "text": "1003",
            //     "top": 231,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-1004",
            //     "text": "1004",
            //     "top": 304,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // }
            ]
        }]
    }]
}
src/main/webapp/static/wcs/js/console1.map.js
New file
@@ -0,0 +1,500 @@
mapInfo = {
    "mapName": "scwcs",
    "rackCount": 13,
    "crnCount": 4,
    "stbCount": 4,
    "hpPosition": 0,
    "minBayNo": 1,
    "floors": 1,
    "racks": [
         {
         "type": "rack",
         "id": "rack7",
         "top": 326,
         "left": 820,
         "width": 1050,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 43,
         "hiddenArr": [1,43]
     },
        {
        "type": "rack",
        "id": "rack6",
        "top": 303,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 43,
        "hiddenArr": [1,43]
    },
         {
         "type": "rack",
         "id": "rack5",
         "top": 209,
         "left": 820,
         "width": 1050,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 43,
         "hiddenArr": [1,43]
     },
        {
        "type": "rack",
        "id": "rack4",
        "top": 232,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 43,
        "hiddenArr": [1,43]
    },
         /*{
         "type": "rack",
         "id": "rack3",
         "top": 182,
         "left": 820,
         "width": 1050,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 43,
         "hiddenArr": [1,43]
     },*/
        /*{
        "type": "rack",
        "id": "rack2",
        "top": 159,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 43,
        "hiddenArr": [1,43]
    },*/
        /*{
        "type": "rack",
        "id": "rack1",
        "top": 98,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 43,
        "hiddenArr": [1,43]
    },*/
         /*{
         "type": "rack",
         "id": "rack0",
         "top": 75,
         "left": 820,
         "width": 1050,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 43,
         "hiddenArr": [1,43]
     }*/
    ],
    "crns": [
    {
        "type": "crane",
        "id": "crn-2",
        "text": "2",
        "top": 268,
        "left": 855,
        "width": 93,
        "height": 22
    },
    /*{
        "type": "crane",
        "id": "crn-1",
        "text": "1",
        "top": 132,
        "left": 855,
        "width": 93,
        "height": 22
    }, */
    {
        "type": "track",
        "id": "lb_track2",
        "text": "",
        "top": 278,
        "left": 769,
        "width": 850,
        "height": 2
    },
   /* {
        "type": "track",
        "id": "lb_track1",
        "text": "",
        "top": 143,
        "left": 769,
        "width": 850,
        "height": 2
    }*/
    ],
    "areas": [{
        "type": "Control_floor",
        "id": "tabControl_floor1",
        "text": "楼层",
        "top": 66,
        "left": 580,
        "width": 334,
        "height": 714,
        "floors": [{
            "type": "floor",
            "id": "page_floor1",
            "text": "1F",
            "top": 4,
            "left": 422,
            "width": 308,
            "height": 706,
            "stns": [
            /*{
                "type": "stn",
                "id": "site-100",
                "text": "1008",
                "top": 99,
                "left": 771,
                "width": 62,
                "height": 23
            },*/
            /*{
                "type": "stn",
                "id": "site-101",
                "text": "1007",
                "top": 99,
                "left": 707,
                "width": 62,
                "height": 23
            },*/
            /*{
                "type": "stn",
                "id": "site-102",
                "text": "RGV小车",
                "top": 99,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            /*{
                "type": "stn",
                "id": "site-103",
                "text": "1011",
                "top": 99,
                "left": 579,
                "width": 62,
                "height": 23
            },*/
                /*{
                    "type": "stn",
                    "id": "site-103",
                    "text": "1020",
                    "top": 70,
                    "left": 579,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-103",
                    "text": "",
                    "top": 70,
                    "left": 515,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-103",
                    "text": "",
                    "top": 70,
                    "left": 450,
                    "width": 62,
                    "height": 23
                },*/
            //     {
            //     "type": "stn",
            //     "id": "site-104",
            //     "text": "104",
            //     "top": 124,
            //     "left": 579,
            //     "width": 62,
            //     "height": 34
            // },
                /*{
                "type": "stn",
                "id": "site-125",
                "text": "1006",
                "top": 160,
                "left": 771,
                "width": 62,
                "height": 23
            },*/
            {
                "type": "stn",
                "id": "site-124",
                "text": "1051",
                "top": 200,
                "left": 707,
                "width": 62,
                "height": 23
            },/*{
                "type": "stn",
                "id": "site-123",
                "text": "RGV小车",
                "top": 160,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-122",
            //     "text": "122",
            //     "top": 160,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },
            //     {
            //     "type": "stn",
            //     "id": "site-121",
            //     "text": "121",
            //     "top": 186,
            //     "left": 579,
            //     "width": 62,
            //     "height": 42
            // },
                {
                "type": "stn",
                "id": "site-120",
                "text": "1056",
                "top": 231,
                "left": 771,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-119",
                "text": "1052",
                "top": 231,
                "left": 707,
                "width": 62,
                "height": 60
            },/*{
                "type": "stn",
                "id": "site-118",
                "text": "RGV小车",
                "top": 231,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-117",
            //     "text": "117",
            //     "top": 231,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-116",
            //     "text": "116",
            //     "top": 256,
            //     "left": 579,
            //     "width": 62,
            //     "height": 46
            // },
                {
                "type": "stn",
                "id": "site-115",
                "text": "1058",
                "top": 304,
                "left": 771,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-114",
                "text": "1053",
                "top": 304,
                "left": 707,
                "width": 62,
                "height": 23
            },
                {
                    "type": "stn",
                    "id": "site-114",
                    "text": "1054",
                    "top": 330,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1018",
                    "top": 356,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1019",
                    "top": 356,
                    "left": 772,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "",
                    "top": 356,
                    "left": 837,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "",
                    "top": 356,
                    "left": 902,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1017",
                    "top": 383,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },*//*{
                "type": "stn",
                "id": "site-113",
                "text": "RGV小车",
                "top": 304,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-112",
            //     "text": "112",
            //     "top": 304,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },
               /* {
                "type": "stn",
                "id": "site-105",
                "text": "1012",
                "top": 99,
                "left": 515,
                "width": 62,
                "height": 23
            },*/
            /*{
                "type": "stn",
                "id": "site-106",
                "text": "1013",
                "top": 124,
                "left": 515,
                "width": 62,
                "height": 34
            },*/
            /*{
                "type": "stn",
                "id": "site-107",
                "text": "1013",
                "top": 160,
                "left": 515,
                "width": 62,
                "height": 23
            },*/
            /*{
                "type": "stn",
                "id": "site-108",
                "text": "1013",
                "top": 186,
                "left": 515,
                "width": 62,
                "height": 42
            },*/
            /*{
                "type": "stn",
                "id": "site-109",
                "text": "1013",
                "top": 231,
                "left": 515,
                "width": 62,
                "height": 70
            },*/
            /*{
                "type": "stn",
                "id": "site-110",
                "text": "1014",
                "top": 304,
                "left": 515,
                "width": 62,
                "height": 23
            },*/
            /*{
                "type": "stn",
                "id": "site-111",
                "text": "1015",
                "top": 329,
                "left": 515,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-1001",
            //     "text": "1001",
            //     "top": 99,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },
            //     {
            //     "type": "stn",
            //     "id": "site-1002",
            //     "text": "1002",
            //     "top": 160,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-1003",
            //     "text": "1003",
            //     "top": 231,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-1004",
            //     "text": "1004",
            //     "top": 304,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // }
            ]
        }]
    }]
}
src/main/webapp/static/wcs/js/console2.map.js
New file
@@ -0,0 +1,544 @@
mapInfo = {
    "mapName": "scwcs",
    "rackCount": 13,
    "crnCount": 4,
    "stbCount": 4,
    "hpPosition": 0,
    "minBayNo": 1,
    "floors": 1,
    "racks": [
    //     {
    //     "type": "rack",
    //     "id": "rack7",
    //     "top": 326,
    //     "left": 800,
    //     "width": 795,
    //     "height": 23,
    //     "minBayNo": 1,
    //     "maxBayNo": 50,
    //     "hiddenArr": [1,22]
    // },
        {
        "type": "rack",
        "id": "rack6",
        "top": 303,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 59,
        "hiddenArr": [1,59]
    },
    //     {
    //     "type": "rack",
    //     "id": "rack5",
    //     "top": 209,
    //     "left": 820,
    //     "width": 1050,
    //     "height": 23,
    //     "minBayNo": 1,
    //     "maxBayNo": 59,
    //     "hiddenArr": [1,59]
    // },
        {
        "type": "rack",
        "id": "rack4",
        "top": 232,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 59,
        "hiddenArr": [1,59]
    },
    //     {
    //     "type": "rack",
    //     "id": "rack3",
    //     "top": 182,
    //     "left": 820,
    //     "width": 1050,
    //     "height": 23,
    //     "minBayNo": 1,
    //     "maxBayNo": 59,
    //     "hiddenArr": [1,59]
    // },
        {
        "type": "rack",
        "id": "rack2",
        "top": 159,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 59,
        "hiddenArr": [1,59]
    },
        {
        "type": "rack",
        "id": "rack1",
        "top": 98,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 59,
        "hiddenArr": [1,59]
    },
    //     {
    //     "type": "rack",
    //     "id": "rack0",
    //     "top": 75,
    //     "left": 820,
    //     "width": 1050,
    //     "height": 23,
    //     "minBayNo": 1,
    //     "maxBayNo": 59,
    //     "hiddenArr": [1,59]
    // }
    ],
    "crns": [{
        "type": "crane",
        "id": "crn-2",
        "text": "2",
        "top": 268,
        "left": 855,
        "width": 93,
        "height": 22
    }, {
        "type": "crane",
        "id": "crn-1",
        "text": "1",
        "top": 132,
        "left": 855,
        "width": 93,
        "height": 22
    }, {
        "type": "track",
        "id": "lb_track2",
        "text": "",
        "top": 278,
        "left": 769,
        "width": 850,
        "height": 2
    }, {
        "type": "track",
        "id": "lb_track1",
        "text": "",
        "top": 143,
        "left": 769,
        "width": 850,
        "height": 2
    }],
    "areas": [{
        "type": "Control_floor",
        "id": "tabControl_floor1",
        "text": "楼层",
        "top": 66,
        "left": 580,
        "width": 334,
        "height": 714,
        "floors": [{
            "type": "floor",
            "id": "page_floor1",
            "text": "1F",
            "top": 4,
            "left": 422,
            "width": 308,
            "height": 706,
            "stns": [
            {
                            "type": "stn",
                            "id": "site-100",
                            "text": "2001",
                            "top": 40,
                            "left": 900,
                            "width": 62,
                            "height": 23
                        },
            {
                "type": "stn",
                "id": "site-100",
                "text": "2002",
                "top": 67,
                "left": 900,
                "width": 62,
                "height": 23
            },
            {
                            "type": "stn",
                            "id": "site-101",
                            "text": "2006",
                            "top": 57,
                            "left": 640,
                            "width": 62,
                            "height": 23
                        },
            {
                "type": "stn",
                "id": "site-101",
                "text": "2007",
                "top": 90,
                "left": 640,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-102",
                "text": "2008",
                "top": 125,
                "left": 640,
                "width": 62,
                "height": 23
            },
            /*{
                "type": "stn",
                "id": "site-103",
                "text": "1011",
                "top": 99,
                "left": 579,
                "width": 62,
                "height": 23
            },*/
                /*{
                    "type": "stn",
                    "id": "site-103",
                    "text": "1020",
                    "top": 70,
                    "left": 579,
                    "width": 62,
                    "height": 23
                },*/
               /* {
                    "type": "stn",
                    "id": "site-103",
                    "text": "",
                    "top": 70,
                    "left": 515,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-103",
                    "text": "",
                    "top": 70,
                    "left": 450,
                    "width": 62,
                    "height": 23
                },*/
            //     {
            //     "type": "stn",
            //     "id": "site-104",
            //     "text": "104",
            //     "top": 124,
            //     "left": 579,
            //     "width": 62,
            //     "height": 34
            // },
                {
                "type": "stn",
                "id": "site-125",
                "text": "2003",
                "top": 160,
                "left": 771,
                "width": 62,
                "height": 23
            },
            {
                            "type": "stn",
                            "id": "site-124",
                            "text": "2005",
                            "top": 160,
                            "left": 640,
                            "width": 62,
                            "height": 23
                        },
            {
                "type": "stn",
                "id": "site-124",
                "text": "2004",
                "top": 160,
                "left": 707,
                "width": 62,
                "height": 23
            },/*{
                "type": "stn",
                "id": "site-123",
                "text": "RGV小车",
                "top": 160,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-122",
            //     "text": "122",
            //     "top": 160,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },
            //     {
            //     "type": "stn",
            //     "id": "site-121",
            //     "text": "121",
            //     "top": 186,
            //     "left": 579,
            //     "width": 62,
            //     "height": 42
            // },
                {
                "type": "stn",
                "id": "site-120",
                "text": "2012",
                "top": 231,
                "left": 771,
                "width": 62,
                "height": 23
            },
            {
                                                    "type": "stn",
                                                    "id": "site-114",
                                                    "text": "2009",
                                                    "top": 195,
                                                    "left": 640,
                                                    "width": 62,
                                                    "height": 23
                                                },
            {
                                        "type": "stn",
                                        "id": "site-114",
                                        "text": "2010",
                                        "top": 231,
                                        "left": 640,
                                        "width": 62,
                                        "height": 23
                                    },
            {
                "type": "stn",
                "id": "site-119",
                "text": "2011",
                "top": 231,
                "left": 707,
                "width": 62,
                "height": 23
            },/*{
                "type": "stn",
                "id": "site-118",
                "text": "RGV小车",
                "top": 231,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-117",
            //     "text": "117",
            //     "top": 231,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-116",
            //     "text": "116",
            //     "top": 256,
            //     "left": 579,
            //     "width": 62,
            //     "height": 46
            // },
                {
                "type": "stn",
                "id": "site-115",
                "text": "2013",
                "top": 304,
                "left": 771,
                "width": 62,
                "height": 23
            },
            {
                            "type": "stn",
                            "id": "site-114",
                            "text": "2015",
                            "top": 304,
                            "left": 640,
                            "width": 62,
                            "height": 23
                        },
            {
                "type": "stn",
                "id": "site-114",
                "text": "2014",
                "top": 304,
                "left": 707,
                "width": 62,
                "height": 23
            },
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1016",
                    "top": 330,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1018",
                    "top": 356,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1019",
                    "top": 356,
                    "left": 772,
                    "width": 62,
                    "height": 23
                },*/
               /* {
                    "type": "stn",
                    "id": "site-114",
                    "text": "",
                    "top": 356,
                    "left": 837,
                    "width": 62,
                    "height": 23
                },*/
               /* {
                    "type": "stn",
                    "id": "site-114",
                    "text": "",
                    "top": 356,
                    "left": 902,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1017",
                    "top": 383,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },*//*{
                "type": "stn",
                "id": "site-113",
                "text": "RGV小车",
                "top": 304,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-112",
            //     "text": "112",
            //     "top": 304,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },
                {
                "type": "stn",
                "id": "site-105",
                "text": "2019",
                "top": 99,
                "left": 515,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-106",
                "text": "",
                "top": 135,
                "left": 515,
                "width": 62,
                "height": 34
            },{
                "type": "stn",
                "id": "site-107",
                "text": "2018",
                "top": 160,
                "left": 515,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-108",
                "text": "",
                "top": 190,
                "left": 515,
                "width": 62,
                "height": 42
            },{
                "type": "stn",
                "id": "site-109",
                "text": "2017",
                "top": 231,
                "left": 515,
                "width": 62,
                "height": 70
            },{
                "type": "stn",
                "id": "site-110",
                "text": "2016",
                "top": 304,
                "left": 574,
                "width": 62,
                "height": 23
            },/*{
                "type": "stn",
                "id": "site-111",
                "text": "1015",
                "top": 329,
                "left": 515,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-1001",
            //     "text": "1001",
            //     "top": 99,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },
            //     {
            //     "type": "stn",
            //     "id": "site-1002",
            //     "text": "1002",
            //     "top": 160,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-1003",
            //     "text": "1003",
            //     "top": 231,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-1004",
            //     "text": "1004",
            //     "top": 304,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // }
            ]
        }]
    }]
}
src/main/webapp/static/wcs/js/console3.map.js
New file
@@ -0,0 +1,528 @@
mapInfo = {
    "mapName": "scwcs",
    "rackCount": 13,
    "crnCount": 4,
    "stbCount": 4,
    "hpPosition": 0,
    "minBayNo": 1,
    "floors": 1,
    "racks": [
         {
         "type": "rack",
         "id": "rack7",
         "top": 326,
         "left": 820,
         "width": 1050,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 43,
         "hiddenArr": [1,43]
     },
        {
        "type": "rack",
        "id": "rack6",
        "top": 303,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 43,
        "hiddenArr": [1,43]
    },
         {
         "type": "rack",
         "id": "rack5",
         "top": 209,
         "left": 820,
         "width": 1050,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 43,
         "hiddenArr": [1,43]
     },
        {
        "type": "rack",
        "id": "rack4",
        "top": 232,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 43,
        "hiddenArr": [1,43]
    },
         /*{
         "type": "rack",
         "id": "rack3",
         "top": 182,
         "left": 820,
         "width": 1050,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 43,
         "hiddenArr": [1,43]
     },*/
        /*{
        "type": "rack",
        "id": "rack2",
        "top": 159,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 43,
        "hiddenArr": [1,43]
    },*/
        /*{
        "type": "rack",
        "id": "rack1",
        "top": 98,
        "left": 820,
        "width": 1050,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 43,
        "hiddenArr": [1,43]
    },*/
         /*{
         "type": "rack",
         "id": "rack0",
         "top": 75,
         "left": 820,
         "width": 1050,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 43,
         "hiddenArr": [1,43]
     }*/
    ],
    "crns": [
    {
        "type": "crane",
        "id": "crn-2",
        "text": "2",
        "top": 268,
        "left": 855,
        "width": 93,
        "height": 22
    },
    /*{
        "type": "crane",
        "id": "crn-1",
        "text": "1",
        "top": 132,
        "left": 855,
        "width": 93,
        "height": 22
    }, */
    {
        "type": "track",
        "id": "lb_track2",
        "text": "",
        "top": 278,
        "left": 769,
        "width": 850,
        "height": 2
    },
   /* {
        "type": "track",
        "id": "lb_track1",
        "text": "",
        "top": 143,
        "left": 769,
        "width": 850,
        "height": 2
    }*/
    ],
    "areas": [{
        "type": "Control_floor",
        "id": "tabControl_floor1",
        "text": "楼层",
        "top": 66,
        "left": 580,
        "width": 334,
        "height": 714,
        "floors": [{
            "type": "floor",
            "id": "page_floor1",
            "text": "1F",
            "top": 4,
            "left": 422,
            "width": 308,
            "height": 706,
            "stns": [
            {
                            "type": "stn",
                            "id": "site-100",
                            "text": "2052",
                            "top": 150,
                            "left": 1050,
                            "width": 62,
                            "height": 23
                        },
            {
                "type": "stn",
                "id": "site-100",
                "text": "2052",
                "top": 180,
                "left": 1050,
                "width": 62,
                "height": 23
            },
            {
                            "type": "stn",
                            "id": "site-101",
                            "text": "2051",
                            "top": 150,
                            "left": 1150,
                            "width": 62,
                            "height": 23
                        },
            {
                "type": "stn",
                "id": "site-101",
                "text": "2051",
                "top": 180,
                "left": 1150,
                "width": 62,
                "height": 23
            },/*{
                "type": "stn",
                "id": "site-102",
                "text": "RGV小车",
                "top": 99,
                "left": 643,
                "width": 62,
                "height": 23
            },*//*{
                "type": "stn",
                "id": "site-103",
                "text": "1011",
                "top": 99,
                "left": 579,
                "width": 62,
                "height": 23
            },*/
                /*{
                    "type": "stn",
                    "id": "site-103",
                    "text": "1020",
                    "top": 70,
                    "left": 579,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-103",
                    "text": "",
                    "top": 70,
                    "left": 515,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-103",
                    "text": "",
                    "top": 70,
                    "left": 450,
                    "width": 62,
                    "height": 23
                },*/
            //     {
            //     "type": "stn",
            //     "id": "site-104",
            //     "text": "104",
            //     "top": 124,
            //     "left": 579,
            //     "width": 62,
            //     "height": 34
            // },
            {
                            "type": "stn",
                            "id": "site-125",
                            "text": "2053",
                            "top": 150,
                            "left": 950,
                            "width": 62,
                            "height": 23
                        },
                {
                "type": "stn",
                "id": "site-125",
                "text": "2054",
                "top": 180,
                "left": 950,
                "width": 62,
                "height": 23
            },
            {
                            "type": "stn",
                            "id": "site-124",
                            "text": "2055",
                            "top": 150,
                            "left": 850,
                            "width": 62,
                            "height": 23
                        },
            {
                "type": "stn",
                "id": "site-124",
                "text": "2056",
                "top": 180,
                "left": 850,
                "width": 62,
                "height": 23
            },/*{
                "type": "stn",
                "id": "site-123",
                "text": "RGV小车",
                "top": 160,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-122",
            //     "text": "122",
            //     "top": 160,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },
            //     {
            //     "type": "stn",
            //     "id": "site-121",
            //     "text": "121",
            //     "top": 186,
            //     "left": 579,
            //     "width": 62,
            //     "height": 42
            // },
                {
                "type": "stn",
                "id": "site-120",
                "text": "2057",
                "top": 231,
                "left": 771,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-119",
                "text": "2057",
                "top": 231,
                "left": 707,
                "width": 62,
                "height": 23
            },/*{
                "type": "stn",
                "id": "site-118",
                "text": "RGV小车",
                "top": 231,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-117",
            //     "text": "117",
            //     "top": 231,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-116",
            //     "text": "116",
            //     "top": 256,
            //     "left": 579,
            //     "width": 62,
            //     "height": 46
            // },
                {
                "type": "stn",
                "id": "site-115",
                "text": "2058",
                "top": 304,
                "left": 771,
                "width": 62,
                "height": 23
            },{
                "type": "stn",
                "id": "site-114",
                "text": "2058",
                "top": 304,
                "left": 707,
                "width": 62,
                "height": 23
            },
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1016",
                    "top": 330,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1018",
                    "top": 356,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1019",
                    "top": 356,
                    "left": 772,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "",
                    "top": 356,
                    "left": 837,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "",
                    "top": 356,
                    "left": 902,
                    "width": 62,
                    "height": 23
                },*/
                /*{
                    "type": "stn",
                    "id": "site-114",
                    "text": "1017",
                    "top": 383,
                    "left": 707,
                    "width": 62,
                    "height": 23
                },*//*{
                "type": "stn",
                "id": "site-113",
                "text": "RGV小车",
                "top": 304,
                "left": 643,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-112",
            //     "text": "112",
            //     "top": 304,
            //     "left": 579,
            //     "width": 62,
            //     "height": 23
            // },
                /*{
                "type": "stn",
                "id": "site-105",
                "text": "1012",
                "top": 99,
                "left": 515,
                "width": 62,
                "height": 23
            },*//*{
                "type": "stn",
                "id": "site-106",
                "text": "1013",
                "top": 124,
                "left": 515,
                "width": 62,
                "height": 34
            },*//*{
                "type": "stn",
                "id": "site-107",
                "text": "1013",
                "top": 160,
                "left": 515,
                "width": 62,
                "height": 23
            },*//*{
                "type": "stn",
                "id": "site-108",
                "text": "1013",
                "top": 186,
                "left": 515,
                "width": 62,
                "height": 42
            },*//*{
                "type": "stn",
                "id": "site-109",
                "text": "1013",
                "top": 231,
                "left": 515,
                "width": 62,
                "height": 70
            },*//*{
                "type": "stn",
                "id": "site-110",
                "text": "1014",
                "top": 304,
                "left": 515,
                "width": 62,
                "height": 23
            },*//*{
                "type": "stn",
                "id": "site-111",
                "text": "1015",
                "top": 329,
                "left": 515,
                "width": 62,
                "height": 23
            },*/
            //     {
            //     "type": "stn",
            //     "id": "site-1001",
            //     "text": "1001",
            //     "top": 99,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },
            //     {
            //     "type": "stn",
            //     "id": "site-1002",
            //     "text": "1002",
            //     "top": 160,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-1003",
            //     "text": "1003",
            //     "top": 231,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // },{
            //     "type": "stn",
            //     "id": "site-1004",
            //     "text": "1004",
            //     "top": 304,
            //     "left": 451,
            //     "width": 62,
            //     "height": 23
            // }
            ]
        }]
    }]
}
src/main/webapp/views/realtimeWatch/console.html
@@ -31,6 +31,12 @@
                <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
            </div>
        </div>
        <select onchange="window.open(this.value)">
            <option value = "console1.html">--成品一楼--</option>
            <option value="console2.html" >-半成品二楼-</option>
            <option value="console3.html">-成品二楼-</option>
            <option value="console.html"selected ="selected">-半成品一楼-</option>
        </select>
        <!-- 货架 + 堆垛机 + 入库站点 -->
        <div class="main-part">
src/main/webapp/views/realtimeWatch/console1.html
New file
@@ -0,0 +1,853 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自动仓库wcs系统</title>
    <link rel="stylesheet" href="../../static/wcs/css/render.css">
    <link rel="stylesheet" href="../../static/wms/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/wms/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/wms/css/common.css" media="all">
    <script type="text/javascript" src="../../static/wms/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/wms/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/wms/js/common.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/wms/js/cool.js" charset="utf-8"></script>
    <!--地图json-->
    <script src="../../static/wcs/js/console1.map.js"></script>
    <script src="../../static/wcs/js/console.js"></script>
    <script src="../../static/wcs/js/common.js"></script>
</head>
<script type="text/html" id="errorTpl">
    {{# if( d.error === false ){ }}
    <span name="level" class="layui-badge layui-badge-green">正常</span>
    {{# } else { }}
    <span name="level" class="layui-badge layui-badge-red">异常</span>
    {{# } }}
</script>
<body>
    <div id="main">
        <div class="head">
            <div class="head-left">
                <h1>自动仓库WCS监控图</h1>
                <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
            </div>
        </div>
        <select onchange="window.open(this.value)">
            <option value = "console1.html">--成品一楼--</option>
            <option value="" >-半成品二楼-</option>
            <option value="">-成品二楼-</option>
            <option value="console.html"selected ="selected">-半成品一楼-</option>
        </select>
        <!-- 货架 + 堆垛机 + 入库站点 -->
        <div class="main-part">
        </div>
<!--        &lt;!&ndash;设备列表&ndash;&gt;-->
<!--        <div class="device-info">-->
<!--            <table class="layui-hide" id="deviceInfo" lay-filter="deviceInfo"></table>-->
<!--        </div>-->
        <div id="body">
            <!-- 总开关 -->
            <div class="system-state">
                <div class="body-head">总开关</div>
                <div class="switch">
                    <div id="system-icon" class="system-icon-open" onclick="systemSwitch()"></div>
                    <div class="switch_r">
                        <p>系统状态</p>
                        <p id="system-run-desc">系统运行中</p>
                    </div>
                </div>
            </div>
            <!-- 堆垛机状态 -->
            <div class="machine-status">
                <div class="body-head">堆垛机状态</div>
                <div class="state">
                    <span>堆垛机 1</span>
                    <span class="state-ss machine-put-flag    ">入库</span>
                </div>
                <div class="state">
                    <span>堆垛机 2</span>
                    <span class="state-ss machine-auto-flag    ">自动</span>
                </div>
                <div class="button"><span>所有状态</span></div>
                <div class="button item-group">
                    <span class="machine-put-flag">入库</span>
                    <span class="machine-take-flag">出库</span>
                    <span class="machine-stock-move-flag">库到库</span>
                    <span class="machine-site-move-flag">站到站</span>
                    <span class="machine-p-move-flag">PToP</span>
                    <span class="machine-error-flag">异常</span>
                    <span class="machine-auto-flag">自动</span>
                    <span class="machine-unauto-flag">非自动/手动</span>
                </div>
            </div>
            <div class="line-status">
                <div class="body-head">输送线状态</div>
                <div class="state states">
                    <span>运输线总数</span>
                    <span id="line-total" class="line-ss"></span>
                </div>
                <div class="button"><span>所有状态</span></div>
                <div class="button item-group">
                    <span class="site-auto-run-id">自动+有物+ID</span>
                    <span class="site-auto-run">自动+有物</span>
                    <span class="site-auto-id">自动+ID</span>
                    <span class="site-auto">自动</span>
                    <span class="site-unauto">非自动/手动</span>
                </div>
            </div>
            <div class="bar-code">
                <div class="body-head" id="code">条码扫描器</div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode1" class="table-body">
                    </div>
                </div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode2" class="table-body">
                    </div>
                </div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode3" class="table-body">
                    </div>
                </div>
            </div>
        </div>
        <!-- 堆垛机弹窗 -->
        <div id="crnWindow" style="display: none;" class="animate__animated animate__fadeIn">
            <div id="crnWindow-head">
                <div class='detailed'></div>
                <button></button>
            </div>
            <form>
                <!-- 堆垛机号 -->
                <div class="form-item">
                    <div class="form-item-label" style>
                        <span>堆垛机号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="crnNo" value="" id="crnNo">
                    </div>
                </div>
                <!-- 工作号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="workNo" value="">
                    </div>
                </div>
                <!-- 站源 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>站源:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceStaNo" value="">
                    </div>
                </div>
                <!-- 目标站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="staNo" value="">
                    </div>
                </div>
                <!-- 工作状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="wrkSts" value="">
                    </div>
                </div>
                <!-- 出入类型 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>出入类型:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="ioType" value="">
                    </div>
                </div>
                <!-- 源库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceLocNo" value="">
                    </div>
                </div>
                <!-- 目标库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="locNo" value="">
                    </div>
                </div>
                <!-- 堆垛机状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>堆垛机状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="crnStatus" value="">
                    </div>
                </div>
                <!-- 异常 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>异常:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="error" value="">
                    </div>
                </div>
                <!-- 操作按钮 -->
                <div class="form-item" style="display: flex;">
                    <div class="form-item-input">
                        <div>入库:开<input type="radio" name="pakIn" id="pakInY" value="1"> 关<input type="radio" name="pakIn" id="pakInN" value="0"/></div>
                        <div>出库:开<input type="radio" name="pakOut" id="pakOutY" value="1"> 关<input type="radio" name="pakOut" id="pakOutN" value="0"/></div>
                    </div>
                    <div><a id="crnCommand" class="layui-btn">下发命令</a></div>
                </div>
            </form>
        </div>
        <!-- 输送设备弹窗 -->
        <div id="siteWindow" style="display: none;" class="animate__animated animate__fadeIn">
            <!-- 表头 -->
            <div id="siteWindow-head">
                <div class='detailed'></div>
                <button></button>
            </div>
            <form>
                <!-- 设备号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>设备号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="siteId" value="" id="devpSiteId">
                    </div>
                </div>
                <!-- 工作号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="workNo" value="" id="devpWorkNo">
                    </div>
                </div>
                <!-- 工作状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="wrkSts" value="">
                    </div>
                </div>
                <!-- 自动 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>自动</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="autoing">
                    </div>
                </div>
                <!-- 有物 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>有物</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="loading">
                    </div>
                </div>
                <!-- 能入 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>能入</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="canining">
                    </div>
                </div>
                <!-- 能出 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>能出</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="canouting">
                    </div>
                </div>
                <!-- 出入类型 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>出入类型:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="ioType" value="">
                    </div>
                </div>
                <!-- 源站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceStaNo" value="">
                    </div>
                </div>
                <!-- 目标站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="staNo" value="" id="devpStaNo">
                    </div>
                </div>
                <!-- 源库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceLocNo" value="">
                    </div>
                </div>
                <!-- 目标库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="locNo" value="">
                    </div>
                </div>
                <!-- 操作按钮 -->
                <div class="form-item">
                    <a id="devpCommand" class="layui-btn">下发命令</a>
                </div>
            </form>
        </div>
    </div>
</body>
</html>
<script>
    getMap();
</script>
<script>
    setInterval(function () {
        getCodeData();
        renderBarCode();
    }, 1000)
    var tData = [],tData1 = [],tData2 = [],tData3 = [];
    function getCodeData() {
        $.ajax({
            url: baseUrl + '/console/barcode/output/site',
            method: 'GET',
            success: function (res) {
                // console.log(res)
                if (res.code === 200) {
                    tData = eval(res.data);
                    if (tData.length <= 5) {
                        tData1 = tData
                    } else if (tData.length <= 10) {
                        tData1 = tData.slice(0, 5)
                        tData.splice(0, 5)
                        tData2 = tData
                    } else if (tData.length <= 15) {
                        tData1 = tData.slice(0, 5)
                        tData2 = tData.slice(6, 10)
                        tData.splice(0, 10)
                        tData3 = tData
                    } else {
                        tData = tData.slice(-15)
                        tData1 = tData.slice(-15)
                        tData2 = tData.slice(-10)
                        tData3 = tData.slice(-5)
                    }
                }
            }
        })
    }
    function renderBarCode() {
        for (var i = 0; i < tData1.length; i++) {
            var str1 = '<li><span>' + tData1[i].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData1[i].time + '</span></li>'
            $('#scale1').append(str1)
        }
        for (var j = 0; j < tData2.length; j++) {
            var str2 = '<li><span>' + tData2[j].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData2[j].time + '</span></li>'
            $('#scale2').append(str2)
        }
        for (var k = 0; k < tData3.length; k++) {
            var str3 = '<li><span>' + tData3[k].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData3[k].time + '</span></li>'
            $('#scale3').append(str3)
        }
    }
</script>
<script type="text/javascript">
    // 弹窗站点信息
    $("body").on('click', '.site', function (e) {
        console.log(e)
        var id = this.id.split("-")[1];
        $("#siteWindow").attr("style", "display:block;");//显示div
        $("#crnWindow").attr("style", "display:none;");
        $(".detailed").empty();
        $('.detailed').append(id + '站点详细信息');
        $.ajax({
            url: baseUrl + "/console/site/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                siteId: id
            },
            method: 'post',
            success: 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');
                    }
                }
            }
        })
    });
    // 堆垛机信息
    $("body").on('click', '.machine', function () {
        var id = this.id.split("-")[1];
        $("#crnWindow").attr('style', 'display:block;');
        $("#siteWindow").attr("style", "display:none;");
        $('.detailed').empty();
        $('.detailed').append(id + '号堆垛机');
        $.ajax({
            url: baseUrl + "/console/crn/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                crnNo: id
            },
            method: 'post',
            success: function (res) {
                console.log(res)
                for (var val in res.data) {
                    if (val === "inEnable") {
                        if (res.data[val] === 'Y') {
                            $("#pakInY").prop("checked", true);
                        }else{
                            $("#pakInN").prop("checked", true);
                        }
                    }else if (val === "outEnable") {
                        if (res.data[val] === 'Y') {
                            $("#pakOutY").prop("checked", true);
                        }else{
                            $("#pakOutN").prop("checked", true);
                        }
                    }else {
                        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');
                        }
                    }
                }
            }
        })
    });
    // 弹窗关闭
    $('button').on('click', function () {
        $('#siteWindow').attr('style', 'display:none')
        $('#crnWindow').attr('style', 'display:none')
    })
    var crn1Position = 0;
    var crn2Position = 0;
    var crn3Position = 0;
    var crn4Position = 0;
    var crn5Position = 0;
    // 初始化
    getSitesInfo();
    getCrnInfo();
    getSystemRunningStatus();
    getBarcodeInfo();
    getScaleInfo();
    // 实时访问
    setInterval(function () {
        getCrnInfo();
        getSystemRunningStatus();
        getBarcodeInfo();
        getScaleInfo();
    }, 1000);
    setInterval(function () {
        getSitesInfo();
    }, 3000);
    // 系统运行开关
    function systemSwitch() {
        if (parent.systemRunning) {
            layer.prompt({title: '请输入口令,并停止 WCS 系统', formType: 1, shadeClose: true}, function (pass, idx) {
                layer.close(idx);
                doSwitch(0, pass); // 停止wcs系统
            });
        } else {
            doSwitch(1); // 启动wcs系统
        }
    }
    // 请求服务器控制wcs系统运行状态
    function doSwitch(operatorType, password) {
        // 加载tips
        var index = layer.load(1, {
            shade: [0.1, '#fff']
        });
        $.ajax({
            url: baseUrl + "/console/system/switch",
            headers: {'token': localStorage.getItem('token')},
            // async: false,
            data: {
                operatorType: operatorType,
                password: password
            },
            method: 'POST',
            success: function (res) {
                layer.close(index);
                if (res.code === 200) {
                    if (res.data.status) {
                        $('#system-icon').attr("class", "system-icon-open");
                        $('#system-run-desc').html("系统运行中...");
                        parent.systemRunning = true;
                    } else {
                        $('#system-icon').attr("class", "system-icon-close");
                        $('#system-run-desc').html("系统已停止!");
                        parent.systemRunning = false;
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 获取wcs系统运行状态
    function getSystemRunningStatus() {
        $.ajax({
            url: baseUrl + "/console/system/running/status",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    if (res.data.status) {
                        $('#system-icon').attr("class", "system-icon-open");
                        $('#system-run-desc').html("系统运行中...");
                        parent.systemRunning = true;
                    } else {
                        $('#system-icon').attr("class", "system-icon-close");
                        $('#system-run-desc').html("系统已停止!");
                        parent.systemRunning = false;
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 输送设备实时数据获取
    function getSitesInfo() {
        // carAnimate(112,4);
        $.ajax({
            url: baseUrl + "/console/latest/data/site",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var sites = res.data;
                    for (var i = 0; i < sites.length; i++) {
                        var siteEl = $("#site-" + sites[i].siteId);
                        siteEl.attr("class", "site " + sites[i].siteStatus);
                        if (sites[i].workNo != null && sites[i].workNo > 0) {
                            siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]");
                        } else {
                            siteEl.html(sites[i].siteId);
                        }
                        // RGV位置
                        if(sites[i].siteId === '112' || sites[i].siteId === '212'){
                            carAnimate(Number(sites[i].siteId), Number(sites[i].nearbySta));
                        }
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 堆垛机实时数据获取
    function getCrnInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/crn",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                // console.log(res)
                if (res.code === 200) {
                    var crns = res.data;
                    for (var i = 0; i < crns.length; i++) {
                        var crnEl = $("#crn-" + crns[i].crnId);
                        crnEl.attr("class", "machine " + crns[i].crnStatus);
                        var unit = 20.6;//($('.item').eq(0).width() + 13) / 2;
                        if (crns[i].bay < 0) {
                            crns[i].bay = 1;
                        }
                        // crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000);
                        // crns[i].bay = 1;
                        var offSet = 800;
                        // crns[i].bay = 41;
                        if(crns[i].bay === 1){
                            crnEl.animate({left: offSet + 'px'}, 1000);
                        } else {
                            crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 1000);
                        }
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 扫码器实时数据获取
    function getBarcodeInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/barcode",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var barcodes = res.data;
                    for (var i = 0; i < barcodes.length; i++) {
                        $("#code-decoder-data-" + barcodes[i].barcodeId).html(barcodes[i].codeValue);
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 磅秤实时数据获取
    function getScaleInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/scale",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var sclaes = res.data;
                    for (var i = 0; i < sclaes.length; i++) {
                        console.log(sclaes[i].scaleId + ":" + sclaes[i].value)
                        $("#scale-data-" + sclaes[i].scaleId).text(sclaes[i].value);
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 堆垛机偏移动画
    function crnAnimate(id, leftVal) {
        // console.log(crn1Position)
        switch (id) {
            case 1:
                $("#crn-1").animate({left: leftVal + 'px'}, 1000);
                crn1Position = leftVal;
                break;
            case 2:
                $("#crn-2").animate({left: leftVal + 'px'}, 1000);
                crn2Position = leftVal;
                break;
            case 3:
                $("#crn-3").animate({left: leftVal + 'px'}, 1000);
                crn3Position = leftVal;
                break;
            case 4:
                $("#crn-4").animate({left: leftVal + 'px'}, 1000);
                crn4Position = leftVal;
                break;
            case 5:
                $("#crn-5").animate({left: leftVal + 'px'}, 1000);
                crn5Position = leftVal;
                break;
            default:
                break
        }
    }
    // 小车偏移动画
    function carAnimate(id, target) {
        var targetTop = 0;
        if (id === 112) {
            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;
            }
        } 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;
            }
        } else {
            return;
        }
        $("#site-" + id).animate({top: targetTop + 'px'}, 1000);
    }
    //下发输送线命令
    $("#devpCommand").on("click", () => {
        let siteId = $("#devpSiteId").val()//设备id
        let wrkNo = $("#devpWorkNo").val()//工作号
        let staNo = $("#devpStaNo").val()//目标站
        $.ajax({
            url: baseUrl+"/site/detl/update",
            headers: {'token': localStorage.getItem('token')},
            data: {
                devNo: siteId,
                workNo: wrkNo,
                staNo: staNo,
            },
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                    layer.msg("下发成功",{icon: 1,});
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                    layer.msg(res.msg, {icon: 2});
                }
            }
        })
    });
    //下发堆垛机命令
    $("#crnCommand").on("click", () => {
        let crnNo = $("#crnNo").val()//设备id
        var pakIn = $('input[name="pakIn"]:checked').val();
        var pakOut = $('input[name="pakOut"]:checked').val();
        console.log(pakIn,pakOut)
        $.ajax({
            url: baseUrl + "/basCrnp/update/auth",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                crnNo: crnNo,
                inEnable: pakIn == 1 ? "Y" : "N",
                outEnable: pakOut == 1 ? "Y" : "N"
            },
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                    layer.msg("下发成功",{icon: 1,});
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                    layer.msg(res.msg, {icon: 2});
                }
            }
        });
    });
</script>
src/main/webapp/views/realtimeWatch/console2.html
New file
@@ -0,0 +1,853 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自动仓库wcs系统</title>
    <link rel="stylesheet" href="../../static/wcs/css/render.css">
    <link rel="stylesheet" href="../../static/wms/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/wms/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/wms/css/common.css" media="all">
    <script type="text/javascript" src="../../static/wms/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/wms/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/wms/js/common.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/wms/js/cool.js" charset="utf-8"></script>
    <!--地图json-->
    <script src="../../static/wcs/js/console2.map.js"></script>
    <script src="../../static/wcs/js/console.js"></script>
    <script src="../../static/wcs/js/common.js"></script>
</head>
<script type="text/html" id="errorTpl">
    {{# if( d.error === false ){ }}
    <span name="level" class="layui-badge layui-badge-green">正常</span>
    {{# } else { }}
    <span name="level" class="layui-badge layui-badge-red">异常</span>
    {{# } }}
</script>
<body>
    <div id="main">
        <div class="head">
            <div class="head-left">
                <h1>自动仓库WCS监控图</h1>
                <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
            </div>
        </div>
        <select onchange="window.open(this.value)">
            <option value = "console1.html">--成品一楼--</option>
            <option value="console2.html" >-半成品二楼-</option>
            <option value="console3.html">-成品二楼-</option>
            <option value="console.html"selected ="selected">-半成品一楼-</option>
        </select>
        <!-- 货架 + 堆垛机 + 入库站点 -->
        <div class="main-part">
        </div>
<!--        &lt;!&ndash;设备列表&ndash;&gt;-->
<!--        <div class="device-info">-->
<!--            <table class="layui-hide" id="deviceInfo" lay-filter="deviceInfo"></table>-->
<!--        </div>-->
        <div id="body">
            <!-- 总开关 -->
            <div class="system-state">
                <div class="body-head">总开关</div>
                <div class="switch">
                    <div id="system-icon" class="system-icon-open" onclick="systemSwitch()"></div>
                    <div class="switch_r">
                        <p>系统状态</p>
                        <p id="system-run-desc">系统运行中</p>
                    </div>
                </div>
            </div>
            <!-- 堆垛机状态 -->
            <div class="machine-status">
                <div class="body-head">堆垛机状态</div>
                <div class="state">
                    <span>堆垛机 1</span>
                    <span class="state-ss machine-put-flag    ">入库</span>
                </div>
                <div class="state">
                    <span>堆垛机 2</span>
                    <span class="state-ss machine-auto-flag    ">自动</span>
                </div>
                <div class="button"><span>所有状态</span></div>
                <div class="button item-group">
                    <span class="machine-put-flag">入库</span>
                    <span class="machine-take-flag">出库</span>
                    <span class="machine-stock-move-flag">库到库</span>
                    <span class="machine-site-move-flag">站到站</span>
                    <span class="machine-p-move-flag">PToP</span>
                    <span class="machine-error-flag">异常</span>
                    <span class="machine-auto-flag">自动</span>
                    <span class="machine-unauto-flag">非自动/手动</span>
                </div>
            </div>
            <div class="line-status">
                <div class="body-head">输送线状态</div>
                <div class="state states">
                    <span>运输线总数</span>
                    <span id="line-total" class="line-ss"></span>
                </div>
                <div class="button"><span>所有状态</span></div>
                <div class="button item-group">
                    <span class="site-auto-run-id">自动+有物+ID</span>
                    <span class="site-auto-run">自动+有物</span>
                    <span class="site-auto-id">自动+ID</span>
                    <span class="site-auto">自动</span>
                    <span class="site-unauto">非自动/手动</span>
                </div>
            </div>
            <div class="bar-code">
                <div class="body-head" id="code">条码扫描器</div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode1" class="table-body">
                    </div>
                </div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode2" class="table-body">
                    </div>
                </div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode3" class="table-body">
                    </div>
                </div>
            </div>
        </div>
        <!-- 堆垛机弹窗 -->
        <div id="crnWindow" style="display: none;" class="animate__animated animate__fadeIn">
            <div id="crnWindow-head">
                <div class='detailed'></div>
                <button></button>
            </div>
            <form>
                <!-- 堆垛机号 -->
                <div class="form-item">
                    <div class="form-item-label" style>
                        <span>堆垛机号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="crnNo" value="" id="crnNo">
                    </div>
                </div>
                <!-- 工作号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="workNo" value="">
                    </div>
                </div>
                <!-- 站源 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>站源:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceStaNo" value="">
                    </div>
                </div>
                <!-- 目标站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="staNo" value="">
                    </div>
                </div>
                <!-- 工作状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="wrkSts" value="">
                    </div>
                </div>
                <!-- 出入类型 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>出入类型:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="ioType" value="">
                    </div>
                </div>
                <!-- 源库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceLocNo" value="">
                    </div>
                </div>
                <!-- 目标库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="locNo" value="">
                    </div>
                </div>
                <!-- 堆垛机状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>堆垛机状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="crnStatus" value="">
                    </div>
                </div>
                <!-- 异常 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>异常:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="error" value="">
                    </div>
                </div>
                <!-- 操作按钮 -->
                <div class="form-item" style="display: flex;">
                    <div class="form-item-input">
                        <div>入库:开<input type="radio" name="pakIn" id="pakInY" value="1"> 关<input type="radio" name="pakIn" id="pakInN" value="0"/></div>
                        <div>出库:开<input type="radio" name="pakOut" id="pakOutY" value="1"> 关<input type="radio" name="pakOut" id="pakOutN" value="0"/></div>
                    </div>
                    <div><a id="crnCommand" class="layui-btn">下发命令</a></div>
                </div>
            </form>
        </div>
        <!-- 输送设备弹窗 -->
        <div id="siteWindow" style="display: none;" class="animate__animated animate__fadeIn">
            <!-- 表头 -->
            <div id="siteWindow-head">
                <div class='detailed'></div>
                <button></button>
            </div>
            <form>
                <!-- 设备号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>设备号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="siteId" value="" id="devpSiteId">
                    </div>
                </div>
                <!-- 工作号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="workNo" value="" id="devpWorkNo">
                    </div>
                </div>
                <!-- 工作状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="wrkSts" value="">
                    </div>
                </div>
                <!-- 自动 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>自动</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="autoing">
                    </div>
                </div>
                <!-- 有物 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>有物</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="loading">
                    </div>
                </div>
                <!-- 能入 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>能入</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="canining">
                    </div>
                </div>
                <!-- 能出 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>能出</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="canouting">
                    </div>
                </div>
                <!-- 出入类型 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>出入类型:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="ioType" value="">
                    </div>
                </div>
                <!-- 源站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceStaNo" value="">
                    </div>
                </div>
                <!-- 目标站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="staNo" value="" id="devpStaNo">
                    </div>
                </div>
                <!-- 源库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceLocNo" value="">
                    </div>
                </div>
                <!-- 目标库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="locNo" value="">
                    </div>
                </div>
                <!-- 操作按钮 -->
                <div class="form-item">
                    <a id="devpCommand" class="layui-btn">下发命令</a>
                </div>
            </form>
        </div>
    </div>
</body>
</html>
<script>
    getMap();
</script>
<script>
    setInterval(function () {
        getCodeData();
        renderBarCode();
    }, 1000)
    var tData = [],tData1 = [],tData2 = [],tData3 = [];
    function getCodeData() {
        $.ajax({
            url: baseUrl + '/console/barcode/output/site',
            method: 'GET',
            success: function (res) {
                // console.log(res)
                if (res.code === 200) {
                    tData = eval(res.data);
                    if (tData.length <= 5) {
                        tData1 = tData
                    } else if (tData.length <= 10) {
                        tData1 = tData.slice(0, 5)
                        tData.splice(0, 5)
                        tData2 = tData
                    } else if (tData.length <= 15) {
                        tData1 = tData.slice(0, 5)
                        tData2 = tData.slice(6, 10)
                        tData.splice(0, 10)
                        tData3 = tData
                    } else {
                        tData = tData.slice(-15)
                        tData1 = tData.slice(-15)
                        tData2 = tData.slice(-10)
                        tData3 = tData.slice(-5)
                    }
                }
            }
        })
    }
    function renderBarCode() {
        for (var i = 0; i < tData1.length; i++) {
            var str1 = '<li><span>' + tData1[i].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData1[i].time + '</span></li>'
            $('#scale1').append(str1)
        }
        for (var j = 0; j < tData2.length; j++) {
            var str2 = '<li><span>' + tData2[j].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData2[j].time + '</span></li>'
            $('#scale2').append(str2)
        }
        for (var k = 0; k < tData3.length; k++) {
            var str3 = '<li><span>' + tData3[k].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData3[k].time + '</span></li>'
            $('#scale3').append(str3)
        }
    }
</script>
<script type="text/javascript">
    // 弹窗站点信息
    $("body").on('click', '.site', function (e) {
        console.log(e)
        var id = this.id.split("-")[1];
        $("#siteWindow").attr("style", "display:block;");//显示div
        $("#crnWindow").attr("style", "display:none;");
        $(".detailed").empty();
        $('.detailed').append(id + '站点详细信息');
        $.ajax({
            url: baseUrl + "/console/site/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                siteId: id
            },
            method: 'post',
            success: 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');
                    }
                }
            }
        })
    });
    // 堆垛机信息
    $("body").on('click', '.machine', function () {
        var id = this.id.split("-")[1];
        $("#crnWindow").attr('style', 'display:block;');
        $("#siteWindow").attr("style", "display:none;");
        $('.detailed').empty();
        $('.detailed').append(id + '号堆垛机');
        $.ajax({
            url: baseUrl + "/console/crn/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                crnNo: id
            },
            method: 'post',
            success: function (res) {
                console.log(res)
                for (var val in res.data) {
                    if (val === "inEnable") {
                        if (res.data[val] === 'Y') {
                            $("#pakInY").prop("checked", true);
                        }else{
                            $("#pakInN").prop("checked", true);
                        }
                    }else if (val === "outEnable") {
                        if (res.data[val] === 'Y') {
                            $("#pakOutY").prop("checked", true);
                        }else{
                            $("#pakOutN").prop("checked", true);
                        }
                    }else {
                        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');
                        }
                    }
                }
            }
        })
    });
    // 弹窗关闭
    $('button').on('click', function () {
        $('#siteWindow').attr('style', 'display:none')
        $('#crnWindow').attr('style', 'display:none')
    })
    var crn1Position = 0;
    var crn2Position = 0;
    var crn3Position = 0;
    var crn4Position = 0;
    var crn5Position = 0;
    // 初始化
    getSitesInfo();
    getCrnInfo();
    getSystemRunningStatus();
    getBarcodeInfo();
    getScaleInfo();
    // 实时访问
    setInterval(function () {
        getCrnInfo();
        getSystemRunningStatus();
        getBarcodeInfo();
        getScaleInfo();
    }, 1000);
    setInterval(function () {
        getSitesInfo();
    }, 3000);
    // 系统运行开关
    function systemSwitch() {
        if (parent.systemRunning) {
            layer.prompt({title: '请输入口令,并停止 WCS 系统', formType: 1, shadeClose: true}, function (pass, idx) {
                layer.close(idx);
                doSwitch(0, pass); // 停止wcs系统
            });
        } else {
            doSwitch(1); // 启动wcs系统
        }
    }
    // 请求服务器控制wcs系统运行状态
    function doSwitch(operatorType, password) {
        // 加载tips
        var index = layer.load(1, {
            shade: [0.1, '#fff']
        });
        $.ajax({
            url: baseUrl + "/console/system/switch",
            headers: {'token': localStorage.getItem('token')},
            // async: false,
            data: {
                operatorType: operatorType,
                password: password
            },
            method: 'POST',
            success: function (res) {
                layer.close(index);
                if (res.code === 200) {
                    if (res.data.status) {
                        $('#system-icon').attr("class", "system-icon-open");
                        $('#system-run-desc').html("系统运行中...");
                        parent.systemRunning = true;
                    } else {
                        $('#system-icon').attr("class", "system-icon-close");
                        $('#system-run-desc').html("系统已停止!");
                        parent.systemRunning = false;
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 获取wcs系统运行状态
    function getSystemRunningStatus() {
        $.ajax({
            url: baseUrl + "/console/system/running/status",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    if (res.data.status) {
                        $('#system-icon').attr("class", "system-icon-open");
                        $('#system-run-desc').html("系统运行中...");
                        parent.systemRunning = true;
                    } else {
                        $('#system-icon').attr("class", "system-icon-close");
                        $('#system-run-desc').html("系统已停止!");
                        parent.systemRunning = false;
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 输送设备实时数据获取
    function getSitesInfo() {
        // carAnimate(112,4);
        $.ajax({
            url: baseUrl + "/console/latest/data/site",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var sites = res.data;
                    for (var i = 0; i < sites.length; i++) {
                        var siteEl = $("#site-" + sites[i].siteId);
                        siteEl.attr("class", "site " + sites[i].siteStatus);
                        if (sites[i].workNo != null && sites[i].workNo > 0) {
                            siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]");
                        } else {
                            siteEl.html(sites[i].siteId);
                        }
                        // RGV位置
                        if(sites[i].siteId === '112' || sites[i].siteId === '212'){
                            carAnimate(Number(sites[i].siteId), Number(sites[i].nearbySta));
                        }
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 堆垛机实时数据获取
    function getCrnInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/crn",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                // console.log(res)
                if (res.code === 200) {
                    var crns = res.data;
                    for (var i = 0; i < crns.length; i++) {
                        var crnEl = $("#crn-" + crns[i].crnId);
                        crnEl.attr("class", "machine " + crns[i].crnStatus);
                        var unit = 20.6;//($('.item').eq(0).width() + 13) / 2;
                        if (crns[i].bay < 0) {
                            crns[i].bay = 1;
                        }
                        // crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000);
                        // crns[i].bay = 1;
                        var offSet = 800;
                        // crns[i].bay = 41;
                        if(crns[i].bay === 1){
                            crnEl.animate({left: offSet + 'px'}, 1000);
                        } else {
                            crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 1000);
                        }
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 扫码器实时数据获取
    function getBarcodeInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/barcode",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var barcodes = res.data;
                    for (var i = 0; i < barcodes.length; i++) {
                        $("#code-decoder-data-" + barcodes[i].barcodeId).html(barcodes[i].codeValue);
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 磅秤实时数据获取
    function getScaleInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/scale",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var sclaes = res.data;
                    for (var i = 0; i < sclaes.length; i++) {
                        console.log(sclaes[i].scaleId + ":" + sclaes[i].value)
                        $("#scale-data-" + sclaes[i].scaleId).text(sclaes[i].value);
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 堆垛机偏移动画
    function crnAnimate(id, leftVal) {
        // console.log(crn1Position)
        switch (id) {
            case 1:
                $("#crn-1").animate({left: leftVal + 'px'}, 1000);
                crn1Position = leftVal;
                break;
            case 2:
                $("#crn-2").animate({left: leftVal + 'px'}, 1000);
                crn2Position = leftVal;
                break;
            case 3:
                $("#crn-3").animate({left: leftVal + 'px'}, 1000);
                crn3Position = leftVal;
                break;
            case 4:
                $("#crn-4").animate({left: leftVal + 'px'}, 1000);
                crn4Position = leftVal;
                break;
            case 5:
                $("#crn-5").animate({left: leftVal + 'px'}, 1000);
                crn5Position = leftVal;
                break;
            default:
                break
        }
    }
    // 小车偏移动画
    function carAnimate(id, target) {
        var targetTop = 0;
        if (id === 112) {
            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;
            }
        } 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;
            }
        } else {
            return;
        }
        $("#site-" + id).animate({top: targetTop + 'px'}, 1000);
    }
    //下发输送线命令
    $("#devpCommand").on("click", () => {
        let siteId = $("#devpSiteId").val()//设备id
        let wrkNo = $("#devpWorkNo").val()//工作号
        let staNo = $("#devpStaNo").val()//目标站
        $.ajax({
            url: baseUrl+"/site/detl/update",
            headers: {'token': localStorage.getItem('token')},
            data: {
                devNo: siteId,
                workNo: wrkNo,
                staNo: staNo,
            },
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                    layer.msg("下发成功",{icon: 1,});
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                    layer.msg(res.msg, {icon: 2});
                }
            }
        })
    });
    //下发堆垛机命令
    $("#crnCommand").on("click", () => {
        let crnNo = $("#crnNo").val()//设备id
        var pakIn = $('input[name="pakIn"]:checked').val();
        var pakOut = $('input[name="pakOut"]:checked').val();
        console.log(pakIn,pakOut)
        $.ajax({
            url: baseUrl + "/basCrnp/update/auth",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                crnNo: crnNo,
                inEnable: pakIn == 1 ? "Y" : "N",
                outEnable: pakOut == 1 ? "Y" : "N"
            },
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                    layer.msg("下发成功",{icon: 1,});
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                    layer.msg(res.msg, {icon: 2});
                }
            }
        });
    });
</script>
src/main/webapp/views/realtimeWatch/console3.html
New file
@@ -0,0 +1,853 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自动仓库wcs系统</title>
    <link rel="stylesheet" href="../../static/wcs/css/render.css">
    <link rel="stylesheet" href="../../static/wms/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/wms/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/wms/css/common.css" media="all">
    <script type="text/javascript" src="../../static/wms/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/wms/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/wms/js/common.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/wms/js/cool.js" charset="utf-8"></script>
    <!--地图json-->
    <script src="../../static/wcs/js/console3.map.js"></script>
    <script src="../../static/wcs/js/console.js"></script>
    <script src="../../static/wcs/js/common.js"></script>
</head>
<script type="text/html" id="errorTpl">
    {{# if( d.error === false ){ }}
    <span name="level" class="layui-badge layui-badge-green">正常</span>
    {{# } else { }}
    <span name="level" class="layui-badge layui-badge-red">异常</span>
    {{# } }}
</script>
<body>
    <div id="main">
        <div class="head">
            <div class="head-left">
                <h1>自动仓库WCS监控图</h1>
                <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
            </div>
        </div>
        <select onchange="window.open(this.value)">
            <option value = "console1.html">--成品一楼--</option>
            <option value="console2.html" >-半成品二楼-</option>
            <option value="console3.html">-成品二楼-</option>
            <option value="console.html"selected ="selected">-半成品一楼-</option>
        </select>
        <!-- 货架 + 堆垛机 + 入库站点 -->
        <div class="main-part">
        </div>
<!--        &lt;!&ndash;设备列表&ndash;&gt;-->
<!--        <div class="device-info">-->
<!--            <table class="layui-hide" id="deviceInfo" lay-filter="deviceInfo"></table>-->
<!--        </div>-->
        <div id="body">
            <!-- 总开关 -->
            <div class="system-state">
                <div class="body-head">总开关</div>
                <div class="switch">
                    <div id="system-icon" class="system-icon-open" onclick="systemSwitch()"></div>
                    <div class="switch_r">
                        <p>系统状态</p>
                        <p id="system-run-desc">系统运行中</p>
                    </div>
                </div>
            </div>
            <!-- 堆垛机状态 -->
            <div class="machine-status">
                <div class="body-head">堆垛机状态</div>
                <div class="state">
                    <span>堆垛机 1</span>
                    <span class="state-ss machine-put-flag    ">入库</span>
                </div>
                <div class="state">
                    <span>堆垛机 2</span>
                    <span class="state-ss machine-auto-flag    ">自动</span>
                </div>
                <div class="button"><span>所有状态</span></div>
                <div class="button item-group">
                    <span class="machine-put-flag">入库</span>
                    <span class="machine-take-flag">出库</span>
                    <span class="machine-stock-move-flag">库到库</span>
                    <span class="machine-site-move-flag">站到站</span>
                    <span class="machine-p-move-flag">PToP</span>
                    <span class="machine-error-flag">异常</span>
                    <span class="machine-auto-flag">自动</span>
                    <span class="machine-unauto-flag">非自动/手动</span>
                </div>
            </div>
            <div class="line-status">
                <div class="body-head">输送线状态</div>
                <div class="state states">
                    <span>运输线总数</span>
                    <span id="line-total" class="line-ss"></span>
                </div>
                <div class="button"><span>所有状态</span></div>
                <div class="button item-group">
                    <span class="site-auto-run-id">自动+有物+ID</span>
                    <span class="site-auto-run">自动+有物</span>
                    <span class="site-auto-id">自动+ID</span>
                    <span class="site-auto">自动</span>
                    <span class="site-unauto">非自动/手动</span>
                </div>
            </div>
            <div class="bar-code">
                <div class="body-head" id="code">条码扫描器</div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode1" class="table-body">
                    </div>
                </div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode2" class="table-body">
                    </div>
                </div>
                <div class="tablebox">
                    <div class="table-head">
                        <li><span>条码名称</span><span class="right">扫码时间</span></li>
                    </div>
                    <div id="barcode3" class="table-body">
                    </div>
                </div>
            </div>
        </div>
        <!-- 堆垛机弹窗 -->
        <div id="crnWindow" style="display: none;" class="animate__animated animate__fadeIn">
            <div id="crnWindow-head">
                <div class='detailed'></div>
                <button></button>
            </div>
            <form>
                <!-- 堆垛机号 -->
                <div class="form-item">
                    <div class="form-item-label" style>
                        <span>堆垛机号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="crnNo" value="" id="crnNo">
                    </div>
                </div>
                <!-- 工作号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="workNo" value="">
                    </div>
                </div>
                <!-- 站源 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>站源:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceStaNo" value="">
                    </div>
                </div>
                <!-- 目标站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="staNo" value="">
                    </div>
                </div>
                <!-- 工作状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="wrkSts" value="">
                    </div>
                </div>
                <!-- 出入类型 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>出入类型:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="ioType" value="">
                    </div>
                </div>
                <!-- 源库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceLocNo" value="">
                    </div>
                </div>
                <!-- 目标库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="locNo" value="">
                    </div>
                </div>
                <!-- 堆垛机状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>堆垛机状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="crnStatus" value="">
                    </div>
                </div>
                <!-- 异常 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>异常:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="error" value="">
                    </div>
                </div>
                <!-- 操作按钮 -->
                <div class="form-item" style="display: flex;">
                    <div class="form-item-input">
                        <div>入库:开<input type="radio" name="pakIn" id="pakInY" value="1"> 关<input type="radio" name="pakIn" id="pakInN" value="0"/></div>
                        <div>出库:开<input type="radio" name="pakOut" id="pakOutY" value="1"> 关<input type="radio" name="pakOut" id="pakOutN" value="0"/></div>
                    </div>
                    <div><a id="crnCommand" class="layui-btn">下发命令</a></div>
                </div>
            </form>
        </div>
        <!-- 输送设备弹窗 -->
        <div id="siteWindow" style="display: none;" class="animate__animated animate__fadeIn">
            <!-- 表头 -->
            <div id="siteWindow-head">
                <div class='detailed'></div>
                <button></button>
            </div>
            <form>
                <!-- 设备号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>设备号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="siteId" value="" id="devpSiteId">
                    </div>
                </div>
                <!-- 工作号 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作号:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="workNo" value="" id="devpWorkNo">
                    </div>
                </div>
                <!-- 工作状态 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>工作状态:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="wrkSts" value="">
                    </div>
                </div>
                <!-- 自动 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>自动</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="autoing">
                    </div>
                </div>
                <!-- 有物 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>有物</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="loading">
                    </div>
                </div>
                <!-- 能入 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>能入</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="canining">
                    </div>
                </div>
                <!-- 能出 -->
                <div class="form-item-checkbox">
                    <div class="form-item-label-checkbox">
                        <span>能出</span>
                    </div>
                    <div class="form-item-input-checkbox">
                        <input type="checkbox" name="canouting">
                    </div>
                </div>
                <!-- 出入类型 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>出入类型:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="ioType" value="">
                    </div>
                </div>
                <!-- 源站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceStaNo" value="">
                    </div>
                </div>
                <!-- 目标站 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标站:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="staNo" value="" id="devpStaNo">
                    </div>
                </div>
                <!-- 源库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>源库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="sourceLocNo" value="">
                    </div>
                </div>
                <!-- 目标库位 -->
                <div class="form-item">
                    <div class="form-item-label">
                        <span>目标库位:</span>
                    </div>
                    <div class="form-item-input">
                        <input type="text" name="locNo" value="">
                    </div>
                </div>
                <!-- 操作按钮 -->
                <div class="form-item">
                    <a id="devpCommand" class="layui-btn">下发命令</a>
                </div>
            </form>
        </div>
    </div>
</body>
</html>
<script>
    getMap();
</script>
<script>
    setInterval(function () {
        getCodeData();
        renderBarCode();
    }, 1000)
    var tData = [],tData1 = [],tData2 = [],tData3 = [];
    function getCodeData() {
        $.ajax({
            url: baseUrl + '/console/barcode/output/site',
            method: 'GET',
            success: function (res) {
                // console.log(res)
                if (res.code === 200) {
                    tData = eval(res.data);
                    if (tData.length <= 5) {
                        tData1 = tData
                    } else if (tData.length <= 10) {
                        tData1 = tData.slice(0, 5)
                        tData.splice(0, 5)
                        tData2 = tData
                    } else if (tData.length <= 15) {
                        tData1 = tData.slice(0, 5)
                        tData2 = tData.slice(6, 10)
                        tData.splice(0, 10)
                        tData3 = tData
                    } else {
                        tData = tData.slice(-15)
                        tData1 = tData.slice(-15)
                        tData2 = tData.slice(-10)
                        tData3 = tData.slice(-5)
                    }
                }
            }
        })
    }
    function renderBarCode() {
        for (var i = 0; i < tData1.length; i++) {
            var str1 = '<li><span>' + tData1[i].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData1[i].time + '</span></li>'
            $('#scale1').append(str1)
        }
        for (var j = 0; j < tData2.length; j++) {
            var str2 = '<li><span>' + tData2[j].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData2[j].time + '</span></li>'
            $('#scale2').append(str2)
        }
        for (var k = 0; k < tData3.length; k++) {
            var str3 = '<li><span>' + tData3[k].id +'-'+ tData1[i].scale +'kg'+ '</span><span class="right">' + tData3[k].time + '</span></li>'
            $('#scale3').append(str3)
        }
    }
</script>
<script type="text/javascript">
    // 弹窗站点信息
    $("body").on('click', '.site', function (e) {
        console.log(e)
        var id = this.id.split("-")[1];
        $("#siteWindow").attr("style", "display:block;");//显示div
        $("#crnWindow").attr("style", "display:none;");
        $(".detailed").empty();
        $('.detailed').append(id + '站点详细信息');
        $.ajax({
            url: baseUrl + "/console/site/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                siteId: id
            },
            method: 'post',
            success: 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');
                    }
                }
            }
        })
    });
    // 堆垛机信息
    $("body").on('click', '.machine', function () {
        var id = this.id.split("-")[1];
        $("#crnWindow").attr('style', 'display:block;');
        $("#siteWindow").attr("style", "display:none;");
        $('.detailed').empty();
        $('.detailed').append(id + '号堆垛机');
        $.ajax({
            url: baseUrl + "/console/crn/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                crnNo: id
            },
            method: 'post',
            success: function (res) {
                console.log(res)
                for (var val in res.data) {
                    if (val === "inEnable") {
                        if (res.data[val] === 'Y') {
                            $("#pakInY").prop("checked", true);
                        }else{
                            $("#pakInN").prop("checked", true);
                        }
                    }else if (val === "outEnable") {
                        if (res.data[val] === 'Y') {
                            $("#pakOutY").prop("checked", true);
                        }else{
                            $("#pakOutN").prop("checked", true);
                        }
                    }else {
                        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');
                        }
                    }
                }
            }
        })
    });
    // 弹窗关闭
    $('button').on('click', function () {
        $('#siteWindow').attr('style', 'display:none')
        $('#crnWindow').attr('style', 'display:none')
    })
    var crn1Position = 0;
    var crn2Position = 0;
    var crn3Position = 0;
    var crn4Position = 0;
    var crn5Position = 0;
    // 初始化
    getSitesInfo();
    getCrnInfo();
    getSystemRunningStatus();
    getBarcodeInfo();
    getScaleInfo();
    // 实时访问
    setInterval(function () {
        getCrnInfo();
        getSystemRunningStatus();
        getBarcodeInfo();
        getScaleInfo();
    }, 1000);
    setInterval(function () {
        getSitesInfo();
    }, 3000);
    // 系统运行开关
    function systemSwitch() {
        if (parent.systemRunning) {
            layer.prompt({title: '请输入口令,并停止 WCS 系统', formType: 1, shadeClose: true}, function (pass, idx) {
                layer.close(idx);
                doSwitch(0, pass); // 停止wcs系统
            });
        } else {
            doSwitch(1); // 启动wcs系统
        }
    }
    // 请求服务器控制wcs系统运行状态
    function doSwitch(operatorType, password) {
        // 加载tips
        var index = layer.load(1, {
            shade: [0.1, '#fff']
        });
        $.ajax({
            url: baseUrl + "/console/system/switch",
            headers: {'token': localStorage.getItem('token')},
            // async: false,
            data: {
                operatorType: operatorType,
                password: password
            },
            method: 'POST',
            success: function (res) {
                layer.close(index);
                if (res.code === 200) {
                    if (res.data.status) {
                        $('#system-icon').attr("class", "system-icon-open");
                        $('#system-run-desc').html("系统运行中...");
                        parent.systemRunning = true;
                    } else {
                        $('#system-icon').attr("class", "system-icon-close");
                        $('#system-run-desc').html("系统已停止!");
                        parent.systemRunning = false;
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 获取wcs系统运行状态
    function getSystemRunningStatus() {
        $.ajax({
            url: baseUrl + "/console/system/running/status",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    if (res.data.status) {
                        $('#system-icon').attr("class", "system-icon-open");
                        $('#system-run-desc').html("系统运行中...");
                        parent.systemRunning = true;
                    } else {
                        $('#system-icon').attr("class", "system-icon-close");
                        $('#system-run-desc').html("系统已停止!");
                        parent.systemRunning = false;
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 输送设备实时数据获取
    function getSitesInfo() {
        // carAnimate(112,4);
        $.ajax({
            url: baseUrl + "/console/latest/data/site",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var sites = res.data;
                    for (var i = 0; i < sites.length; i++) {
                        var siteEl = $("#site-" + sites[i].siteId);
                        siteEl.attr("class", "site " + sites[i].siteStatus);
                        if (sites[i].workNo != null && sites[i].workNo > 0) {
                            siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]");
                        } else {
                            siteEl.html(sites[i].siteId);
                        }
                        // RGV位置
                        if(sites[i].siteId === '112' || sites[i].siteId === '212'){
                            carAnimate(Number(sites[i].siteId), Number(sites[i].nearbySta));
                        }
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 堆垛机实时数据获取
    function getCrnInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/crn",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                // console.log(res)
                if (res.code === 200) {
                    var crns = res.data;
                    for (var i = 0; i < crns.length; i++) {
                        var crnEl = $("#crn-" + crns[i].crnId);
                        crnEl.attr("class", "machine " + crns[i].crnStatus);
                        var unit = 20.6;//($('.item').eq(0).width() + 13) / 2;
                        if (crns[i].bay < 0) {
                            crns[i].bay = 1;
                        }
                        // crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000);
                        // crns[i].bay = 1;
                        var offSet = 800;
                        // crns[i].bay = 41;
                        if(crns[i].bay === 1){
                            crnEl.animate({left: offSet + 'px'}, 1000);
                        } else {
                            crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 1000);
                        }
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 扫码器实时数据获取
    function getBarcodeInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/barcode",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var barcodes = res.data;
                    for (var i = 0; i < barcodes.length; i++) {
                        $("#code-decoder-data-" + barcodes[i].barcodeId).html(barcodes[i].codeValue);
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 磅秤实时数据获取
    function getScaleInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/scale",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200) {
                    var sclaes = res.data;
                    for (var i = 0; i < sclaes.length; i++) {
                        console.log(sclaes[i].scaleId + ":" + sclaes[i].value)
                        $("#scale-data-" + sclaes[i].scaleId).text(sclaes[i].value);
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 堆垛机偏移动画
    function crnAnimate(id, leftVal) {
        // console.log(crn1Position)
        switch (id) {
            case 1:
                $("#crn-1").animate({left: leftVal + 'px'}, 1000);
                crn1Position = leftVal;
                break;
            case 2:
                $("#crn-2").animate({left: leftVal + 'px'}, 1000);
                crn2Position = leftVal;
                break;
            case 3:
                $("#crn-3").animate({left: leftVal + 'px'}, 1000);
                crn3Position = leftVal;
                break;
            case 4:
                $("#crn-4").animate({left: leftVal + 'px'}, 1000);
                crn4Position = leftVal;
                break;
            case 5:
                $("#crn-5").animate({left: leftVal + 'px'}, 1000);
                crn5Position = leftVal;
                break;
            default:
                break
        }
    }
    // 小车偏移动画
    function carAnimate(id, target) {
        var targetTop = 0;
        if (id === 112) {
            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;
            }
        } 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;
            }
        } else {
            return;
        }
        $("#site-" + id).animate({top: targetTop + 'px'}, 1000);
    }
    //下发输送线命令
    $("#devpCommand").on("click", () => {
        let siteId = $("#devpSiteId").val()//设备id
        let wrkNo = $("#devpWorkNo").val()//工作号
        let staNo = $("#devpStaNo").val()//目标站
        $.ajax({
            url: baseUrl+"/site/detl/update",
            headers: {'token': localStorage.getItem('token')},
            data: {
                devNo: siteId,
                workNo: wrkNo,
                staNo: staNo,
            },
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                    layer.msg("下发成功",{icon: 1,});
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                    layer.msg(res.msg, {icon: 2});
                }
            }
        })
    });
    //下发堆垛机命令
    $("#crnCommand").on("click", () => {
        let crnNo = $("#crnNo").val()//设备id
        var pakIn = $('input[name="pakIn"]:checked').val();
        var pakOut = $('input[name="pakOut"]:checked').val();
        console.log(pakIn,pakOut)
        $.ajax({
            url: baseUrl + "/basCrnp/update/auth",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                crnNo: crnNo,
                inEnable: pakIn == 1 ? "Y" : "N",
                outEnable: pakOut == 1 ? "Y" : "N"
            },
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                    layer.msg("下发成功",{icon: 1,});
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                    layer.msg(res.msg, {icon: 2});
                }
            }
        });
    });
</script>