自动化立体仓库 - WCS系统
#
mrzhssss
2022-04-28 864e0c81c00683dff6d942d3f5ec7f838f125429
#
8个文件已修改
2136 ■■■■■ 已修改文件
src/main/java/com/zy/core/MainProcess.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/cache/MessageQueue.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/properties/SlaveProperties.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/StaDescMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/css/console.css 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/console.html 1938 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java
@@ -9,6 +9,7 @@
import org.springframework.stereotype.Component;
import javax.annotation.PreDestroy;
import java.util.ArrayList;
/**
 * WCS主流程
src/main/java/com/zy/core/cache/MessageQueue.java
@@ -127,6 +127,7 @@
    public static void clear(SlaveType type, Integer id){
        switch (type) {
            case Crn:
                CRN_EXCHANGE.get(id).clear();
                break;
            case Devp:
src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -13,6 +13,11 @@
/**
 * Created by vincent on 2020/8/4
 *
 */
/**
 * 该类整个就是一个通过配置文件来实体化对象类
 */
@Data
@Configuration
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -41,16 +41,10 @@
    private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
    private short heartBeatVal = 1;
    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
        add(100);add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);add(109);
        add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);add(109);
        add(110);add(111);add(112);add(113);add(114);add(115);add(116);add(117);add(118);add(119);
        add(120);add(121);add(122);add(123);add(124);add(125);add(126);add(127);add(128);add(129);
        add(130);add(131);add(132);add(133);add(134);add(135);add(136);add(137);add(138);add(139);
        add(140);add(141);add(142);add(143);add(144);add(145);add(146);add(147);add(148);add(149);
        add(150);add(151);add(152);add(153);add(154);add(155);add(156);add(157);add(158);add(159);
        add(160);add(161);add(162);add(163);add(164);add(165);add(166);add(167);add(168);add(169);
        add(170);add(171);add(172);add(173);add(174);add(175);add(176);add(177);add(178);add(179);
        add(180);add(181);add(182);
        add(183);add(184);add(185);add(186);add(187);add(188);add(189);add(190);add(191);add(192);
        add(130);add(131);add(132);add(133);add(134);add(135);add(136);
    }};
    public IoModeType ioMode = IoModeType.NONE;
@@ -121,9 +115,9 @@
    private void read() throws InterruptedException {
//        // 更新入出库模式
//        updateIoMode();
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 186);
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 144);
        if (result.IsSuccess) {
            for (int i = 0; i < 93; i++) {
            for (int i = 0; i < 36; i++) {
                Integer siteId = staNos.get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
@@ -131,27 +125,29 @@
                    staProtocol.setSiteId(siteId);
                    station.put(siteId, staProtocol);
                }
                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2));     // 工作号
                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4));     // 工作号
                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4 + 2));   // 目标站
            }
        }
//        Thread.sleep(200);
//        OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 186);
//        if (result0.IsSuccess) {
//            for (int i = 0; i < 93; i++) {
//                Integer siteId = staNos.get(i); // 站点编号
//                StaProtocol staProtocol = station.get(siteId);
//                if (null == staProtocol) {
//                    staProtocol = new StaProtocol();
//                    staProtocol.setSiteId(siteId);
//                    station.put(siteId, staProtocol);
//                }
//                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2));   // 目标站
//            }
//        }
        Thread.sleep(200);
        OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 186);
        if (result0.IsSuccess) {
            for (int i = 0; i < 93; i++) {
                Integer siteId = staNos.get(i); // 站点编号
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
                    staProtocol = new StaProtocol();
                    staProtocol.setSiteId(siteId);
                    station.put(siteId, staProtocol);
                }
                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2));   // 目标站
            }
        }
        Thread.sleep(200);
        OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.0", (short) 186);
        OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB150.0", (short) 72);
        if (result1.IsSuccess) {
            for (int i = 0; i < 93; i++) {
            for (int i = 0; i < 36; i++) {
                Integer siteId = staNos.get(i); // 站点编号
                boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1);
                StaProtocol staProtocol = station.get(siteId);
@@ -170,46 +166,12 @@
            }
        }
        Thread.sleep(200);
        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB300.0", (short) 10);
        if (result3.IsSuccess) {
//            Integer siteId = staNos.get(i); // 站点编号
            Integer siteId = 0;
            for (int i = 0; i < 5; i++) {
                switch (i){
                    case 0:
                        siteId = 100;
                        break;
                    case 1:
                        siteId = 102;
                        break;
                    case 2:
                        siteId = 104;
                        break;
                    case 3:
                        siteId = 106;
                        break;
                    case 4:
                        siteId = 108;
                        break;
                }
                StaProtocol staProtocol = station.get(siteId);
                if (null == staProtocol) {
                    staProtocol = new StaProtocol();
                    staProtocol.setSiteId(siteId);
                    station.put(siteId, staProtocol);
                }
                short value = siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2);
                staProtocol.setInQty(value);     // 入库暂存数
            }
        }
//        OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0");
//        if (result2.IsSuccess) {
//            this.ioMode = IoModeType.get(result2.Content);
//        }
        if (result.IsSuccess && result0.IsSuccess && result1.IsSuccess) {
        if (result.IsSuccess && result1.IsSuccess) {
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId()));
@@ -231,25 +193,6 @@
                log.error("更新数据库数据失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
            }
//            //出库到182站堆垛机任务数据发送给PLC
//            try{
//                WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
//                if(null != wrkMastService){
//                    int count = wrkMastService.getOutToStn182(182);
//                    if(count != PRE_COUNT){
//                        OperateResult write = siemensS7Net.Write("DB300.2",(short)count);
//                        if (write.IsSuccess) {
//                            PRE_COUNT = count;
//                        } else {
//                            log.error("更新堆垛机出库到182站任务数量错误,任务数量==>>" + count);
//                        }
//                    }
//                }
//            }catch (Exception e) {
//                e.printStackTrace();
//                log.error("更新堆垛机出库到182站任务数量失败");
//            }
        } else {
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】读取输送线plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
//            log.error("读取输送线plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
@@ -264,11 +207,16 @@
            return;
        }
        int index = staNos.indexOf(staProtocol.getSiteId());
        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 工作号
        Thread.sleep(500);
        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 目标站
        short[] array = new short[10];
        array[0] = staProtocol.getWorkNo();
        array[1] = staProtocol.getStaNo();
        OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
        if (!write.IsSuccess || !write1.IsSuccess) {
//        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 工作号
//        Thread.sleep(500);
//        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 目标站
        if (!write.IsSuccess) {
            staProtocol = station.get(staProtocol.getSiteId());
            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
                staProtocol.setPakMk(true);
src/main/resources/application.yml
@@ -11,7 +11,7 @@
    #    url: jdbc:sqlserver://47.97.1.152:51433;databasename=xgmasrs
    #    username: sa
    #    password: Zoneyung@zy56$
    url: jdbc:sqlserver://10.10.10.238:1433;databasename=xgmasrs
    url: jdbc:sqlserver://192.168.4.15:1433;databasename=xgmasrs
#    url: jdbc:sqlserver://localhost:1433;databasename=xgmasrs
    username: sa
    password: sa@123
@@ -38,7 +38,7 @@
  enable: false
wms:
  url: 10.10.10.238:8080/xgmwms
  url: localhost:8080/xgmwms
#  url: localhost:8082/xgmwms
#堆垛机没有执行中任务,输送有入库任务,叫回原点
@@ -50,7 +50,7 @@
  # 双深
  doubleDeep: true
  # 双深库位排号
  doubleLocs: 1,4,5,8,9,12,13,16,17,20
  doubleLocs: 1,4,5,8,9,12
  # 一个堆垛机负责的货架排数
  groupCount: 4
  # 堆垛机1
@@ -119,50 +119,7 @@
      row: 11
      bay: 1
      lev: 1
  # 堆垛机4
  crn[3]:
    id: 4
    ip: 10.10.10.19
    port: 8888
    # 偏移量,当堆垛机站点列号=1时,偏移量=2
    offset: 2
    demo: false
    # 堆垛机入库站点
    crnInStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 106
      row: 14
      bay: 1
      lev: 1
    # 堆垛机出库站点
    crnOutStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 107
      row: 15
      bay: 1
      lev: 1
  # 堆垛机5
  crn[4]:
    id: 5
    ip: 10.10.10.22
    port: 8888
    # 偏移量,当堆垛机站点列号=1时,偏移量=2
    offset: 2
    demo: false
    # 堆垛机入库站点
    crnInStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 108
      row: 18
      bay: 1
      lev: 1
    # 堆垛机出库站点
    crnOutStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 109
      row: 19
      bay: 1
      lev: 1
  # 输送线
  devp[0]:
    id: 1
src/main/resources/mapper/StaDescMapper.xml
@@ -19,4 +19,6 @@
    </resultMap>
</mapper>
src/main/webapp/static/css/console.css
@@ -287,8 +287,8 @@
}
/* 输送线第一列 */
.site-row-1 {
    top: 205px;
    left: 120px;
    top: 28px;
    left: 1270px;
}
.site-row-1 .site {
    width: 80px;
@@ -296,15 +296,15 @@
/* 输送线第二列 */
.site-row-2 {
    top: 205px;
    left: 202px;
    top: 28px;
    left: 1352px;
}
.site-row-2 .site {
    width: 80px;
}
.site-row-3 {
    top: 205px;
    left: 284px;
    top: 28px;
    left: 1434px;
    /*width: 164px;*/
}
.site-row-3 .site {
@@ -312,8 +312,8 @@
}
.site-row-4 {
    top: 71px;
    left: 448px;
    top: 109px;
    left: 1516px;
}
.site-row-4 .site {
    width: 80px;
@@ -338,7 +338,7 @@
.main-part {
    position: absolute;
    top: 20px;
    left: 694px;
    left: 300px;
}
.main-part .lane {
    margin-top: 30px;
@@ -373,6 +373,7 @@
    width: 100%;
    margin-top: 10px;
}
/* 堆垛机 */
.machine {
    margin-left: 30px;
@@ -385,6 +386,7 @@
    background-size:100% 100%;
    background-position: top center;
    cursor: pointer;
}
/* 入库 */
.machine-pakin {
src/main/webapp/views/console.html
@@ -22,85 +22,8 @@
            <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
        </div>
        <div class="head-right">
            <img src="../static/images/zy-logo.png" alt="中扬" height="44" width="80" >
            <img src="../static/images/zy-logo.png" alt="中扬" height="44" width="80">
        </div>
    </div>
    <!--第1列(宽度 70px) -->
    <div class="site-row site-row-1">
        <div class="site-k" style="height:39px;width:70px;"></div>
        <div id="site-173" class="site" style="height: 18px;line-height: 18px;margin-bottom: 85px">173</div>
    </div>
    <!--第2列(宽度 70px)-->
    <div class="site-row site-row-2">
        <div id="site-175" class="site" style="height: 18px;line-height: 18px;">175</div>
        <div id="site-174" class="site" style="height: 19px;line-height: 19px;">174</div>
        <div id="site-172" class="site" style="height: 18px;line-height: 18px;">172</div>
        <div class="site-k" style="height: 246px;width:70px;"></div>
        <div id="site-182" class="site" style="height: 18px;line-height: 18px;">182</div>
    </div>
    <!-- 第3列(宽度 70px) -->
    <div class="site-row site-row-3">
        <div id="site-176" class="site" style="height: 18px;line-height: 18px;width:162px;">176</div>
        <div class="site-k" style="height: 19px;width:162px;"></div>
        <div>
            <div id="site-171" class="site" style="height: 18px;line-height: 18px;position: absolute;clear: right">171</div>
            <div id="site-170" class="site" style="height: 18px;line-height: 18px;width:80px;float: right">170</div>
        </div>
        <div class="site-k" style="height: 246px;width:70px;"></div>
        <div>
            <div id="site-181" class="site" style="height: 18px;line-height: 18px;position: absolute;clear: right">181</div>
            <div id="site-180" class="site" style="height: 18px;line-height: 18px;width:80px;float: right">180</div>
        </div>
    </div>
    <!-- 第4列(宽度 70px 140px) -->
    <!--&lt;!&ndash; 第4列(宽度 70px) &ndash;&gt;-->
    <div class="site-row site-row-4">
        <div id="site-163" class="site" style="height: 28.5px;line-height: 28.5px">163</div>
        <div id="site-162" class="site" style="height: 28.5px;line-height: 28.5px">162</div>
        <div id="site-161" class="site" style="height: 71px;line-height: 71px">161</div>
        <div id="site-160" class="site" style="height: 28.5px;line-height: 28.5px">160</div>
        <div id="site-159" class="site" style="height: 28.5px;line-height: 28.5px">159</div>
        <div id="site-158" class="site" style="height: 71px;line-height: 71px">158</div>
        <div id="site-157" class="site" style="height: 28.5px;line-height: 28.5px">157</div>
        <div id="site-156" class="site" style="height: 28.5px;line-height: 28.5px">156</div>
        <div id="site-155" class="site" style="height: 71px;line-height: 71px">155</div>
        <div id="site-154" class="site" style="height: 28.5px;line-height: 28.5px">154</div>
        <div id="site-153" class="site" style="height: 28.5px;line-height: 28.5px">153</div>
        <div id="site-152" class="site" style="height: 71px;line-height: 71px">152</div>
        <div id="site-151" class="site" style="height: 28.5px;line-height: 28.5px">151</div>
        <div id="site-150" class="site" style="height: 28.5px;line-height: 28.5px">150</div>
    </div>
    <!--&lt;!&ndash; 第5列(宽度 70px) &ndash;&gt;-->
    <div class="site-row site-row-5">
        <div id="site-120" class="site" style="height: 28.5px;line-height: 28.5px">120</div>
        <div id="site-121" class="site" style="height: 28.5px;line-height: 28.5px">121</div>
        <div id="site-122" class="site" style="height: 71px;line-height: 71px">122</div>
        <div id="site-123" class="site" style="height: 28.5px;line-height: 28.5px">123</div>
        <div id="site-124" class="site" style="height: 28.5px;line-height: 28.5px">124</div>
        <div id="site-125" class="site" style="height: 71px;line-height: 71px">125</div>
        <div id="site-126" class="site" style="height: 28.5px;line-height: 28.5px">126</div>
        <div id="site-127" class="site" style="height: 28.5px;line-height: 28.5px">127</div>
        <div id="site-128" class="site" style="height: 71px;line-height: 71px">128</div>
        <div id="site-129" class="site" style="height: 28.5px;line-height: 28.5px">129</div>
        <div id="site-130" class="site" style="height: 28.5px;line-height: 28.5px">130</div>
        <div id="site-131" class="site" style="height: 71px;line-height: 71px">131</div>
        <div id="site-132" class="site" style="height: 28.5px;line-height: 28.5px">132</div>
        <div id="site-133" class="site" style="height: 28.5px;line-height: 28.5px">133</div>
    </div>
    <!--&lt;!&ndash; 第6列(宽度 70px) &ndash;&gt;-->
    <div class="site-row site-row-6">
        <div id="site-183" class="site">183</div>
        <div id="site-184" class="site" style="margin-top: 21px">184</div>
        <div id="site-185" class="site" style="margin-top: 73px">185</div>
        <div id="site-186" class="site" style="margin-top: 21px">186</div>
        <div id="site-187" class="site" style="margin-top: 73px">187</div>
        <div id="site-188" class="site" style="margin-top: 21px">188</div>
        <div id="site-189" class="site" style="margin-top: 73px">189</div>
        <div id="site-190" class="site" style="margin-top: 21px">190</div>
        <div id="site-191" class="site" style="margin-top: 73px">191</div>
        <div id="site-192" class="site" style="margin-top: 21px">192</div>
    </div>
    <!-- 货架 + 堆垛机 + 入库站点 -->
@@ -109,81 +32,72 @@
        <div class="lane">
            <!-- 货架 -->
            <div class="stock-group">
                <button class="item" style="margin-left: 82px">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item" style="margin-left: 82px">60</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">1#</span>
                <button class="item">56</button>
                <button class="item">54</button>
                <button class="item">52</button>
                <button class="item">50</button>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
            </div>
            <div class="stock-group">
                <div id="site-100" class="site" style="">100</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item" style="margin-left: 82px">60</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">2#</span>
                <button class="item">56</button>
                <button class="item">54</button>
                <button class="item">52</button>
                <button class="item">50</button>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
                <div id="site-101" class="site" style="">101</div>
            </div>
            <!-- 堆垛机 -->
            <div class="crn">
@@ -192,81 +106,70 @@
            </div>
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-101" class="site" style="">101</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item" style="margin-left: 82px">60</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">3#</span>
                <button class="item">56</button>
                <button class="item">54</button>
                <button class="item">52</button>
                <button class="item">50</button>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
                <div id="site-106" class="site" style="">106</div>
            </div>
            <div class="stock-group">
                <button class="item" style="margin-left: 82px">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item" style="margin-left: 82px">60</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">4#</span>
                <button class="item">56</button>
                <button class="item">54</button>
                <button class="item">52</button>
                <button class="item">50</button>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
            </div>
        </div>
        <!-- 第二组 -->
@@ -274,166 +177,127 @@
            <span class="row-no"></span>
            <!-- 货架 -->
            <div class="stock-group">
                <div class="site" style="background-color: rgb(108,167,168)"></div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item" style="margin-left: 193px">52</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">5#</span>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
            </div>
            <div class="stock-group">
                <div id="site-102" class="site" style="">102</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item" style="margin-left: 193px">52</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">6#</span>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
                <div id="site-113" class="site" style="">113</div>
            </div>
            <!-- 堆垛机 -->
            <div class="crn">
            <div class="crn" style="margin-left: 108px">
                <hr class="pathway">
                <div id="crn-2" class="machine"></div>
            </div>
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-103" class="site" style="">103</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item" style="margin-left: 193px">52</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">7#</span>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
                <div id="site-120" class="site" style="">120</div>
            </div>
            <div class="stock-group">
                <div class="site" style="background-color: rgb(108,167,168)"></div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item" style="margin-left: 193px">52</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">8#</span>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
            </div>
        </div>
        <!--第三组-->
@@ -441,795 +305,470 @@
            <span class="row-no"></span>
            <!-- 货架 -->
            <div class="stock-group">
                <button class="item" style="margin-left: 82px">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item" style="margin-left: 193px">52</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">9#</span>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
            </div>
            <div class="stock-group">
                <div id="site-104" class="site" style="">104</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item" style="margin-left: 193px">52</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">10#</span>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
                <div id="site-127" class="site" style="">127</div>
            </div>
            <!-- 堆垛机 -->
            <div class="crn">
            <div class="crn" style="margin-left: 108px">
                <hr class="pathway">
                <div id="crn-3" class="machine"></div>
            </div>
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-105" class="site" style="">105</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item" style="margin-left: 193px">52</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">11#</span>
                <button class="item">48</button>
                <button class="item">46</button>
                <button class="item">44</button>
                <button class="item">42</button>
                <button class="item">40</button>
                <button class="item">38</button>
                <button class="item">36</button>
                <button class="item">34</button>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
                <div id="site-133" class="site" style="">133</div>
            </div>
            <div class="stock-group">
                <button class="item" style="margin-left: 82px">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item" style="margin-left: 193px">52</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">12#</span>
            </div>
        </div>
        <!--第四组-->
        <div class="lane">
            <span class="row-no"></span>
            <!-- 货架 -->
            <div class="stock-group">
                <button class="item" style="margin-left: 82px">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">13#</span>
            </div>
            <div class="stock-group">
                <div id="site-106" class="site" style="">106</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">14#</span>
            </div>
            <!-- 堆垛机 -->
            <div class="crn">
                <hr class="pathway">
                <div id="crn-4" class="machine"></div>
            </div>
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-107" class="site" style="">107</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">15#</span>
            </div>
            <div class="stock-group">
                <button class="item" style="margin-left: 82px">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">16#</span>
            </div>
        </div>
        <!--第五组-->
        <div class="lane">
            <span class="row-no"></span>
            <!-- 货架 -->
            <div class="stock-group">
                <button class="item" style="margin-left: 82px">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">17#</span>
            </div>
            <div class="stock-group">
                <div id="site-108" class="site" style="">108</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">18#</span>
            </div>
            <!-- 堆垛机 -->
            <div class="crn">
                <hr class="pathway">
                <div id="crn-5" class="machine"></div>
            </div>
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-109" class="site" style="">109</div>
                <button class="item">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">19#</span>
            </div>
            <div class="stock-group">
                <button class="item" style="margin-left: 82px">&nbsp2&nbsp</button>
                <button class="item">&nbsp4&nbsp</button>
                <button class="item">&nbsp6&nbsp</button>
                <button class="item">&nbsp8&nbsp</button>
                <button class="item">10</button>
                <button class="item">12</button>
                <button class="item">14</button>
                <button class="item">16</button>
                <button class="item">18</button>
                <button class="item">20</button>
                <button class="item">22</button>
                <button class="item">24</button>
                <button class="item">26</button>
                <button class="item">28</button>
                <button class="item">30</button>
                <button class="item">32</button>
                <button class="item">34</button>
                <button class="item">36</button>
                <button class="item">38</button>
                <button class="item">40</button>
                <button class="item">42</button>
                <button class="item">44</button>
                <button class="item">46</button>
                <button class="item">48</button>
                <button class="item">50</button>
                <button class="item">52</button>
                <button class="item">54</button>
                <button class="item">56</button>
                <button class="item">58</button>
                <button class="item">60</button>
                <button class="item">62</button>
                <button class="item">64</button>
                <button class="item">66</button>
                <button class="item">68</button>
                <button class="item">70</button>
                <span class="row-no">20#</span>
                <button class="item">32</button>
                <button class="item">30</button>
                <button class="item">28</button>
                <button class="item">26</button>
                <button class="item">24</button>
                <button class="item">22</button>
                <button class="item">20</button>
                <button class="item">18</button>
                <button class="item">16</button>
                <button class="item">14</button>
                <button class="item">12</button>
                <button class="item">10</button>
                <button class="item">8</button>
                <button class="item">6</button>
                <button class="item">4</button>
                <button class="item">2</button>
            </div>
        </div>
    </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>
    <!--第1列(宽度 70px) -->
    <div class="site-row site-row-1">
        <div class="site-k" style="height:39px;width:70px;"></div>
        <div id="site-102" class="site" style="height: 18px;line-height: 18px;">102</div>
        <div id="site-107" class="site" style="height: 18px;line-height: 18px;margin-top: 20px">107</div>
        <div id="site-114" class="site" style="height: 18px;line-height: 18px;margin-top: 68px">114</div>
        <div id="site-121" class="site" style="height: 18px;line-height: 18px;margin-top: 20px">121</div>
        <div id="site-128" class="site" style="height: 18px;line-height: 18px;margin-top: 68px">128</div>
        <div id="site-134" class="site" style="height: 18px;line-height: 18px;margin-top: 20px">134</div>
    </div>
    <div class="site-row site-row-2">
        <div class="site-k" style="height:39px;width:70px;"></div>
        <div id="site-103" class="site" style="height: 18px;line-height: 18px;">103</div>
        <div id="site-105" class="site" style="height: 18px;line-height: 18px">105</div>
        <div id="site-108" class="site" style="height: 18px;line-height: 18px">108</div>
        <div id="site-111" class="site" style="height: 66px;line-height: 66px">111</div>
        <div id="site-115" class="site" style="height: 18px;line-height: 18px">115</div>
        <div id="site-118" class="site" style="height: 18px;line-height: 18px">118</div>
        <div id="site-122" class="site" style="height: 18px;line-height: 18px">122</div>
        <div id="site-125" class="site" style="height: 66px;line-height: 66px">125</div>
        <div id="site-129" class="site" style="height: 18px;line-height: 18px">129</div>
        <div id="site-132" class="site" style="height: 18px;line-height: 18px">132</div>
        <div id="site-135" class="site" style="height: 18px;line-height: 18px">135</div>
    </div>
    <div class="site-row site-row-3">
        <div class="site-k" style="height:39px;width:70px;"></div>
        <div id="site-104" class="site" style="height: 18px;line-height: 18px;width:162px;">104</div>
        <div id="site-109" class="site" style="height: 18px;line-height: 18px; margin-top: 20px">109</div>
        <div id="site-112" class="site" style="height: 66px;line-height: 68px">112</div>
        <div id="site-116" class="site" style="height: 18px;line-height: 18px;">116</div>
        <div id="site-119" class="site" style="height: 18px;line-height: 18px">119</div>
        <div id="site-123" class="site" style="height: 18px;line-height: 18px">123</div>
        <div id="site-126" class="site" style="height: 66px;line-height: 68px">126</div>
        <div id="site-130" class="site" style="height: 18px;line-height: 18px">130</div>
        <div id="site-136" class="site" style="height: 18px;line-height: 18px;width:162px; margin-top: 20px">136</div>
    </div>
    <div class="site-row site-row-4">
        <div id="site-110" class="site" style="height: 18px;line-height: 18px;">110</div>
        <div id="site-117" class="site" style="height: 18px;line-height: 18px; margin-top: 68px">117</div>
        <div id="site-124" class="site" style="height: 18px;line-height: 18px; margin-top: 20px">124</div>
        <div id="site-131" class="site" style="height: 18px;line-height: 18px; margin-top: 68px">131</div>
    </div>
</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 class="line-ss">58</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="">
            </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="machine-status">
            <div class="body-head">堆垛机状态</div>
            <div class="state">
                <span>堆垛机 1</span>
                <span class="state-ss machine-put-flag    ">入库</span>
        <div class="form-item">
            <div class="form-item-label">
                <span>堆垛机状态:</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 class="form-item-input">
                <input type="text" name="crnStatus" value="">
            </div>
        </div>
        <div class="line-status">
            <div class="body-head">输送线状态</div>
            <div class="state states">
                <span>运输线总数</span>
                <span class="line-ss">58</span>
        <!-- 异常 -->
        <div class="form-item">
            <div class="form-item-label">
                <span>异常:</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 class="form-item-input">
                <input type="text" name="error" value="">
            </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>
    </form>
</div>
<!-- 输送设备弹窗 -->
<div id="siteWindow" style="display: none;" class="animate__animated animate__fadeIn">
    <!-- 表头 -->
    <div id="siteWindow-head">
        <div class='detailed'></div>
        <button></button>
    </div>
    <!-- 堆垛机弹窗 -->
    <div id="crnWindow" style="display: none;" class="animate__animated animate__fadeIn">
        <div id="crnWindow-head">
            <div class='detailed'></div>
            <button></button>
    <form>
        <!-- 设备号 -->
        <div class="form-item">
            <div class="form-item-label">
                <span>设备号:</span>
            </div>
            <div class="form-item-input">
                <input type="text" name="siteId" value="">
            </div>
        </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="">
                </div>
        <!-- 工作号 -->
        <div class="form-item">
            <div class="form-item-label">
                <span>工作号:</span>
            </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 class="form-item-input">
                <input type="text" name="workNo" value="">
            </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>
        </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="">
                </div>
        <!-- 工作状态 -->
        <div class="form-item">
            <div class="form-item-label">
                <span>工作状态:</span>
            </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 class="form-item-input">
                <input type="text" name="wrkSts" value="">
            </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-checkbox">
                <div class="form-item-label-checkbox">
                    <span>自动</span>
                </div>
                <div class="form-item-input-checkbox">
                    <input type="checkbox" name="autoing">
                </div>
            <div class="form-item-input-checkbox">
                <input type="checkbox" name="autoing">
            </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-checkbox">
                <div class="form-item-label-checkbox">
                    <span>能入</span>
                </div>
                <div class="form-item-input-checkbox">
                    <input type="checkbox" name="canining">
                </div>
            <div class="form-item-input-checkbox">
                <input type="checkbox" name="loading">
            </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-checkbox">
            <div class="form-item-label-checkbox">
                <span>能入</span>
            </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 class="form-item-input-checkbox">
                <input type="checkbox" name="canining">
            </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-checkbox">
            <div class="form-item-label-checkbox">
                <span>能出</span>
            </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 class="form-item-input-checkbox">
                <input type="checkbox" name="canouting">
            </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">
                <div class="form-item-label">
                    <span>目标库位:</span>
                </div>
                <div class="form-item-input">
                    <input type="text" name="locNo" value="">
                </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="">
            </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>
        </form>
    </div>
    </form>
</div>
</div>
@@ -1241,23 +780,24 @@
    var tData1 = []
    var tData2 = []
    var tData3 = []
    function getCodeData(){
    function getCodeData() {
        $.ajax({
            url:baseUrl +'/console/barcode/output/site',
            method:'GET',
            success:function (res) {
                if(res.code === 200){
            url: baseUrl + '/console/barcode/output/site',
            method: 'GET',
            success: function (res) {
                if (res.code === 200) {
                    tData = eval(res.data);
                    if(tData.length<=5){
                    if (tData.length <= 5) {
                        tData1 = tData
                    } else if (tData.length<=10){
                        tData1 = tData.slice(0,5)
                        tData.splice(0,5)
                    } 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)
                    } 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)
@@ -1270,24 +810,23 @@
            }
        })
    }
    setInterval(function () {
        getCodeData();
        renderBarCode();
    }, 1000)
    function renderBarCode() {
        for (var i = 0;i<tData1.length;i++){
        for (var i = 0; i < tData1.length; i++) {
            var str1 = '<li><span>' + tData1[i].barcode + '</span><span class="right">' + tData1[i].time + '</span></li>'
            $('#barcode1').append(str1)
        }
        for(var j = 0;j<tData2.length;j++){
        for (var j = 0; j < tData2.length; j++) {
            var str2 = '<li><span>' + tData2[j].barcode + '</span><span class="right">' + tData2[j].time + '</span></li>'
            $('#barcode2').append(str2)
        }
        for(var k = 0;k<tData3.length;k++){
        for (var k = 0; k < tData3.length; k++) {
            var str3 = '<li><span>' + tData3[k].barcode + '</span><span class="right">' + tData3[k].time + '</span></li>'
            $('#barcode3').append(str3)
        }
@@ -1295,25 +834,25 @@
</script>
<script type="text/javascript">
    // 弹窗站点信息
    $('.site').on('click',function(){
    $('.site').on('click', function () {
        var id = this.id.split("-")[1];
        $("#siteWindow").attr("style","display:block;");//显示div
        $("#crnWindow").attr("style","display:none;");
        $("#siteWindow").attr("style", "display:block;");//显示div
        $("#crnWindow").attr("style", "display:none;");
        $(".detailed").empty();
        $('.detailed').append(id+'站点详细信息');
        $('.detailed').append(id + '站点详细信息');
        $.ajax({
            url:baseUrl+"/console/site/detail",
            headers:{
            url: baseUrl + "/console/site/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data:{
            data: {
                siteId: id
            },
            method:'post',
            success:function (res) {
            method: 'post',
            success: function (res) {
                for (var val in res.data) {
                    var find = $("#siteWindow").find(":input[name='" + val + "']");
                    if (find[0].type==='text') {
                    if (find[0].type === 'text') {
                        find.val(res.data[val]);
                    } else if (find[0].type === 'checkbox') {
                        find.attr("checked", res.data[val] === 'Y');
@@ -1325,25 +864,25 @@
    });
    // 堆垛机信息
    $('.machine').on('click',function(){
    $('.machine').on('click', function () {
        var id = this.id.split("-")[1];
        $("#crnWindow").attr('style','display:block;');
        $("#siteWindow").attr("style","display:none;");
        $("#crnWindow").attr('style', 'display:block;');
        $("#siteWindow").attr("style", "display:none;");
        $('.detailed').empty();
        $('.detailed').append(id+'号堆垛机');
        $('.detailed').append(id + '号堆垛机');
        $.ajax({
            url:baseUrl+"/console/crn/detail",
            headers:{
            url: baseUrl + "/console/crn/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data:{
            data: {
                crnNo: id
            },
            method:'post',
            success:function (res) {
            method: 'post',
            success: function (res) {
                for (var val in res.data) {
                    var find = $("#crnWindow").find(":input[name='" + val + "']");
                    if (find[0].type==='text') {
                    if (find[0].type === 'text') {
                        find.val(res.data[val]);
                    } else if (find[0].type === 'checkbox') {
                        find.attr("checked", res.data[val] === 'Y');
@@ -1355,11 +894,10 @@
    })
    // 弹窗关闭
    $('button').on('click',function(){
        $('#siteWindow').attr('style','display:none')
        $('#crnWindow').attr('style','display:none')
    $('button').on('click', function () {
        $('#siteWindow').attr('style', 'display:none')
        $('#crnWindow').attr('style', 'display:none')
    })
    var crn1Position = 0;
@@ -1387,8 +925,8 @@
    // 系统运行开关
    function systemSwitch() {
        if (parent.systemRunning){
            layer.prompt({title: '请输入口令,并停止 WCS 系统', formType: 1,   shadeClose: true}, function(pass, idx){
        if (parent.systemRunning) {
            layer.prompt({title: '请输入口令,并停止 WCS 系统', formType: 1, shadeClose: true}, function (pass, idx) {
                layer.close(idx);
                doSwitch(0, pass); // 停止wcs系统
            });
@@ -1401,10 +939,10 @@
    function doSwitch(operatorType, password) {
        // 加载tips
        var index = layer.load(1, {
            shade: [0.1,'#fff']
            shade: [0.1, '#fff']
        });
        $.ajax({
            url: baseUrl+ "/console/system/switch",
            url: baseUrl + "/console/system/switch",
            headers: {'token': localStorage.getItem('token')},
            // async: false,
            data: {
@@ -1414,7 +952,7 @@
            method: 'POST',
            success: function (res) {
                layer.close(index);
                if (res.code === 200){
                if (res.code === 200) {
                    if (res.data.status) {
                        $('#system-icon').attr("class", "system-icon-open");
                        $('#system-run-desc').html("系统运行中...");
@@ -1424,9 +962,9 @@
                        $('#system-run-desc').html("系统已停止!");
                        parent.systemRunning = false;
                    }
                } else if (res.code === 403){
                    parent.location.href = baseUrl+"/login";
                }  else {
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
@@ -1438,11 +976,11 @@
    // 获取wcs系统运行状态
    function getSystemRunningStatus() {
        $.ajax({
            url: baseUrl+ "/console/system/running/status",
            url: baseUrl + "/console/system/running/status",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                if (res.code === 200) {
                    if (res.data.status) {
                        $('#system-icon').attr("class", "system-icon-open");
                        $('#system-run-desc').html("系统运行中...");
@@ -1452,9 +990,9 @@
                        $('#system-run-desc').html("系统已停止!");
                        parent.systemRunning = false;
                    }
                } else if (res.code === 403){
                    parent.location.href = baseUrl+"/login";
                }  else {
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
@@ -1462,29 +1000,29 @@
    }
    // 输送设备实时数据获取
    function getSitesInfo(){
    function getSitesInfo() {
        $.ajax({
            url: baseUrl+ "/console/latest/data/site",
            url: baseUrl + "/console/latest/data/site",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                if (res.code === 200) {
                    var sites = res.data;
                    for (var i = 0; i < sites.length; i++){
                        var siteEl = $("#site-"+sites[i].siteId);
                    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) {
                        if (sites[i].workNo != null && sites[i].workNo > 0) {
                            siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]");
                        } else {
                            siteEl.html(sites[i].siteId);
                        }
                        if (i+1===8) {
                            carAnimate(i+1, Number(sites[i].nearbySta));
                        if (i + 1 === 8) {
                            carAnimate(i + 1, Number(sites[i].nearbySta));
                        }
                    }
                } else if (res.code === 403){
                    parent.location.href = baseUrl+"/login";
                }  else {
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
@@ -1492,46 +1030,47 @@
    }
    // 堆垛机实时数据获取
    function getCrnInfo(){
    function getCrnInfo() {
        $.ajax({
            url: baseUrl+ "/console/latest/data/crn",
            url: baseUrl + "/console/latest/data/crn",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                if (res.code === 200) {
                    var crns = res.data;
                    for (var i = 0; i < crns.length; i++){
                        var crnEl = $("#crn-"+crns[i].crnId);
                    for (var i = 0; i < crns.length; i++) {
                        var crnEl = $("#crn-" + crns[i].crnId);
                        crnEl.attr("class", "machine " + crns[i].crnStatus);
                        var unit = ($('.item').eq(0).width()+13)/2;
                        var unit = ($('.item').eq(0).width() + 13) / 2;
                        if (crns[i].bay < 0) {
                            crns[i].bay = 0
                        }
                        crnEl.animate({left: (crns[i].bay * unit) +'px'}, 1000);
                        crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000);
                    }
                } else if (res.code === 403){
                    parent.location.href = baseUrl+"/login";
                }  else {
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 扫码器实时数据获取
    function getBarcodeInfo(){
    function getBarcodeInfo() {
        $.ajax({
            url: baseUrl+ "/console/latest/data/barcode",
            url: baseUrl + "/console/latest/data/barcode",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                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);
                    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 {
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
@@ -1539,22 +1078,22 @@
    }
    // 磅秤实时数据获取
    function getScaleInfo(){
    function getScaleInfo() {
        $.ajax({
            url: baseUrl+ "/console/latest/data/scale",
            url: baseUrl + "/console/latest/data/scale",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                if (res.code === 200) {
                    var sclaes = res.data;
                    for (var i = 0; i < sclaes.length; i++){
                    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);
                        $("#scale-data-" + sclaes[i].scaleId).text(sclaes[i].value);
                    }
                } else if (res.code === 403){
                    parent.location.href = baseUrl+"/login";
                }  else {
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
                } else {
                    console.log(res.msg);
                }
            }
@@ -1565,23 +1104,23 @@
    function crnAnimate(id, leftVal) {
        switch (id) {
            case 1:
                $("#crn-1").animate({left: leftVal+'px'}, 1000);
                $("#crn-1").animate({left: leftVal + 'px'}, 1000);
                crn1Position = leftVal;
                break;
            case 2:
                $("#crn-2").animate({left: leftVal+'px'}, 1000);
                $("#crn-2").animate({left: leftVal + 'px'}, 1000);
                crn2Position = leftVal;
                break;
            case 3:
                $("#crn-3").animate({left: leftVal+'px'}, 1000);
                $("#crn-3").animate({left: leftVal + 'px'}, 1000);
                crn3Position = leftVal;
                break;
            case 4:
                $("#crn-4").animate({left: leftVal+'px'}, 1000);
                $("#crn-4").animate({left: leftVal + 'px'}, 1000);
                crn4Position = leftVal;
                break;
            case 5:
                $("#crn-5").animate({left: leftVal+'px'}, 1000);
                $("#crn-5").animate({left: leftVal + 'px'}, 1000);
                crn5Position = leftVal;
                break;
            default:
@@ -1683,9 +1222,8 @@
        } else {
            return;
        }
        $("#site-" + id).animate({top: targetTop+'px'}, 1000);
        $("#site-" + id).animate({top: targetTop + 'px'}, 1000);
    }
</script>