野心家
2024-12-05 231e55d38511146988fac0d1b09432d8742d5656
初始化程序
13个文件已修改
927 ■■■■■ 已修改文件
pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 235 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/MatDto.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/DevpSlave.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/command/LedCommand.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/StaProtocol.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/console.map.js 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/console.html 266 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/crn.html 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -185,7 +185,7 @@
    </dependencies>
    <build>
        <finalName>fnwcs</finalName>
        <finalName>tlfwcs</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -25,6 +25,7 @@
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
import com.zy.core.enums.DevpType.DevpWorkType;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.LedSlave;
@@ -112,35 +113,74 @@
            for (DevpSlave.Sta inSta : devp.getInSta()) {
                // 获取条码扫描仪信息
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
                if (barcodeThread == null) {
                    continue;
                }
                String barcode = barcodeThread.getBarcode();
//                barcode="ILY0127 0001";
                if(!Cools.isEmpty(barcode)) {
                    log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
                        continue;
                    }
                } else {
                    continue;
                }
                // 获取入库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                //staProtocol.setPakMk(true);
//                // 入出库模式判断
//                if ( inSta.getStaNo()==180 && devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
                // 判断是否满足入库条件
                Short workNo = staProtocol.getWorkNo();
                // 尺寸检测异常
                boolean back = false;
                String errMsg = "异常:";
                if (staProtocol.isFrontErr()) {
                    errMsg = errMsg+"前超限;";
                    back = true;
                }
                if (staProtocol.isBackErr()) {
                    errMsg = errMsg+"后超限";
                    back = true;
                }
                if (staProtocol.isHighErr()) {
                    errMsg = errMsg+"高超限";
                    back = true;
                }
                if (staProtocol.isLeftErr()) {
                    errMsg = errMsg+"左超限";
                    back = true;
                }
                if (staProtocol.isRightErr()) {
                    errMsg = errMsg+"右超限";
                    back = true;
                }
                if (staProtocol.isWeightErr()) {
                    errMsg = errMsg+"超重";
                    back = true;
                }
                if (staProtocol.isBarcodeErr()) {
                    errMsg = errMsg+"扫码失败";
                    back = true;
                }
                // 退回
                if (back) {
                    // led 异常显示
                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
                    if (ledThread != null) {
                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                    }
                    continue;
                }
                String barcode = barcodeThread.getBarcode();
                if (!Cools.isEmpty(barcode)&&!barcode.equals("00000000")) {
                    log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
                        continue;
                    }
                } else {
                    // led 异常显示
//                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
//                    if (ledThread != null) {
//                        String errorMsg = "扫码失败,请重试";
//                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
//                    }
                    continue;
                }
                if (staProtocol.isAutoing() && staProtocol.isLoading()
                        && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9992 && staProtocol.getWorkNo() <= 9999)
                        && staProtocol.isPakMk()){// && !Cools.isEmpty(barcode)) {
//                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
@@ -157,33 +197,19 @@
//                    }
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode.substring(0,6));
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                    if (wrkMast != null) {
                        News.error("工作档中已存在该站状态为( 2.设备上走 )的数据,工作号={}", wrkMast.getWrkNo());
                        continue;
                    }
//                    // 获取入库通知档
//                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
//                    if (waitPakins.isEmpty()) {
//                        log.error("无此入库条码数据。条码号={}", barcode);
//                        continue;
//                    }
                    // 获取入库通知档
                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
                    if (waitPakins.isEmpty()) {
                        log.error("无此入库条码数据。条码号={}", barcode);
                        continue;
                    }
                    try {
                        String pack =null;//pack码
                        if(barcode.length()>6){
                            pack=barcode.substring(6);
                            if(pack.equals("00000000000000000000")){
                                News.error("没有获得Pack码",pack);
                                continue;
                            }
                        }
                        //String pack="MJY0136 0400";
                        barcode=barcode.substring(0,6);//托盘码
                        if(barcode.equals("000000")){
                            News.error("没有获得条码",barcode);
                            continue;
                        }
                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
                        locTypeDto.setLocType1((short)1);
                        SearchLocParam param = new SearchLocParam();
@@ -191,7 +217,7 @@
                        param.setIoType(1);
                        param.setSourceStaNo(inSta.getStaNo());
                        param.setLocType1(locTypeDto.getLocType1());
                        param.setPackNo(pack);
//                        param.setPackNo(pack);
                        String response = new HttpHandler.Builder()
                                .setUri(wmsUrl)
                                .setPath("/rpc/pakin/loc/v1")
@@ -213,79 +239,20 @@
                        } else if (jsonObject.getInteger("code").equals(700) && (!barcodeThread.getBarcode().equals("NG"))){
                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                            barcodeThread.setBarcode("");
                            staProtocol.setWorkNo((short)9999);
                            staProtocol.setStaNo((short)201);
                            staProtocol.setWorkNo((short)9991);
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), true);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            News.error("url:{};request:{};response:{}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                        }else {
                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                            barcodeThread.setBarcode("");
                            staProtocol.setWorkNo((short)9999);
                            staProtocol.setStaNo((short)201);
                            staProtocol.setWorkNo((short)9991);
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), true);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            News.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                        }
//                        // 检索库位
//                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
//                        List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
//                        StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos, locTypeDto, 0);
//                        // 工作号
//                        int workNo = startupDto.getWorkNo();
//                        // 插入工作明细档
//                        wrkDetlService.createWorkDetail(workNo, waitPakins, barcode);
//
//                        // 插入工作主档
//                        wrkMast = new WrkMast();
//                        wrkMast.setWrkNo(workNo);
//                        wrkMast.setIoTime(new Date());
//                        wrkMast.setWrkSts(2L); // 工作状态:2.设备上走
//                        wrkMast.setIoType(1); // 入出库状态:1.入库
//                        wrkMast.setIoPri(10D); // 优先级:10
//                        wrkMast.setCrnNo(startupDto.getCrnNo());
//                        wrkMast.setSourceStaNo(startupDto.getSourceStaNo());
//                        wrkMast.setStaNo(startupDto.getStaNo());
//                        wrkMast.setLocNo(startupDto.getLocNo());
//                        wrkMast.setBarcode(barcode); // 托盘码
//                        wrkMast.setFullPlt("Y"); // 满板:Y
//                        wrkMast.setPicking("N"); // 拣料
//                        wrkMast.setExitMk("N"); // 退出
//                        wrkMast.setEmptyMk("N"); // 空板
//                        wrkMast.setLinkMis("N");
//                        // 操作人员数据
//                        wrkMast.setAppeTime(new Date());
//                        wrkMast.setModiTime(new Date());
//                        Integer insert = wrkMastMapper.insert(wrkMast);
//                        if (insert == 0) {
//                            throw new CoolException("保存工作档失败");
//                        }
//                        // 更新目标库位状态
//                        LocMast locMast = locMastService.selectById(startupDto.getLocNo());
//                        locMast.setLocSts("S"); // S.入库预约
//                        locMast.setModiTime(new Date());
//                        if (!locMastService.updateById(locMast)){
//                            throw new CoolException("改变库位状态失败");
//                        }
//                        // 将入库通知档修改为已启动
//                        if (wrkMastMapper.updateWaitPakInStep1(barcode) == 0) {
//                            throw new CoolException("修改入库通知档状态为已启动失败");
//                        }
//
//                        // 命令下发区 --------------------------------------------------------------------------
//
//                        // 更新站点信息 且 下发plc命令
//                        barcodeThread.setBarcode("");
//                        staProtocol.setWorkNo((short) workNo);
//                        staProtocol.setStaNo(startupDto.getStaNo().shortValue());
//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                        if (!result) {
//                            throw new CoolException("更新plc站点信息失败");
//                        }
                    } catch (Exception e) {
                        News.error("扫码入库报错,错误信息",e);
                        e.printStackTrace();
@@ -1116,7 +1083,7 @@
     * 库位移转
     */
    public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){
        log.info("开始移库任务程序");
//        log.info("开始移库任务程序");
        //获取所有移库任务
        List<WrkMast> wrkMasts=wrkMastMapper.selectLocMoves(slave.getId());
        // 获取工作档信息
@@ -1507,7 +1474,7 @@
     * 出库  ===>> 工作档信息写入led显示器
     */
    @Async
    public void ledExecute() {
    public synchronized void ledExecute() {
        for (LedSlave led : slaveProperties.getLed()) {
            // 获取输送线plc线程
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
@@ -1518,20 +1485,27 @@
            for (Integer staNo : led.getStaArr()) {
                // 获取叉车站点
                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
                if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo()) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                // 获取工作档数据
                WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
                if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
                if (null == wrkMast) { continue; }
                wrkMasts.add(wrkMast);
                // 组装命令
                LedCommand ledCommand = new LedCommand();
                ledCommand.setWorkNo(wrkMast.getWrkNo());
                ledCommand.setIoType(wrkMast.getIoType());
                // 出库模式
                switch (wrkMast.getIoType()) {
                    case 1:
                        ledCommand.setTitle("全板入库");
                        break;
                    case 10:
                        ledCommand.setTitle("空板入库");
                        break;
                    case 101:
                        ledCommand.setTitle("全板出库");
                        break;
@@ -1549,16 +1523,39 @@
                        ledCommand.setEmptyMk(true);
                        break;
                    default:
                        log.error("任务入出库类型错误!!![工作号:{}] [入出库类型:{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
                        News.error("任务入出库类型错误!!![工作号:{}] [入出库类型:{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
                        break;
                }
                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                ledCommand.setStaNo(wrkMast.getStaNo());
                if (wrkMast.getIoType() != 110) {
                ledCommand.setBarcode(wrkMast.getBarcode());
                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
                    wrkDetls.forEach(wrkDetl -> {
                        Double total = 0.0;
                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
                        if (Cools.isEmpty(locDetl)) {
                            total = wrkDetl.getAnfme();
                        } else {
                            total = locDetl.getAnfme();
                        }
                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
                        }
                        if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
                        }
                        if (wrkMast.getIoType() == 107 || wrkMast.getIoType() == 104) {
                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
                        }
                    });
                }
                commands.add(ledCommand);
            }
            if(Cools.isEmpty(wrkMasts)){
                continue;
            }
            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
            // 获取LED线程
@@ -1570,10 +1567,8 @@
            // 命令下发 -------------------------------------------------------------------------------
            if (!commands.isEmpty()) {
                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
                    log.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                    News.error("{}号LED显示内容命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                    continue;
                } else {
                    ledThread.setLedMk(false);
                }
            }
@@ -1649,12 +1644,12 @@
            // 获取led线程
            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
            // led显示默认内容
            if (reset && !ledThread.isLedMk()) {
                ledThread.setLedMk(true);
            if (reset) {
                if (ledThread == null) {
                    continue;
                }
                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
                    log.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                } else {
                    News.error("{}号LED显示默认命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                }
            }
        }
src/main/java/com/zy/common/model/MatDto.java
@@ -9,20 +9,55 @@
public class MatDto {
    // 物料编号
    private String matNo;
    private String matnr;
    // 物料名称
    private String maknx;
    private String batch;
    private String specs;
    // 客户信息
    private String manu;
    // 备注
    private String memo;
    // 物料数量
    private Double count;
    private Double total;
    public MatDto() {
    }
    public MatDto(String matnr, String maknx, String batch, String specs, String manu, String memo, Double count, Double total) {
        this.matnr = matnr;
        this.maknx = maknx;
        this.batch = batch;
        this.specs = specs;
        this.manu = manu;
        this.memo = memo;
        this.count = count;
        this.total = total;
    }
    public MatDto(String matNo, String maknx, Double count) {
        this.matNo = matNo;
        this.matnr = matNo;
        this.maknx = maknx;
        this.count = count;
    }
    public MatDto(String matNo, String maknx, Double count,String specs) {
        this.specs = specs;
        this.matnr = matNo;
        this.maknx = maknx;
        this.count = count;
    }
    public MatDto(String matNo, String maknx, Double count,Double total,String specs) {
        this.specs = specs;
        this.matnr = matNo;
        this.maknx = maknx;
        this.count = count;
        this.total = total;
    }
}
src/main/java/com/zy/core/MainProcess.java
@@ -61,18 +61,18 @@
                    // 入库  ===>> 空栈板初始化入库,叉车入库站放货
                    mainService.storeEmptyPlt();
                    // 出库  ===>> 工作档信息写入led显示器
//                    mainService.ledExecute();
                    mainService.ledExecute();
                    // 其他  ===>> LED显示器复位,显示默认信息
//                    mainService.ledReset();
                    mainService.ledReset();
//                    mainService.outOfDevp();
                    //启动、完成、暂停测试系统测试
                    mainService.packTest1();
//                    mainService.packTest1();
//                    //火警,给堆垛机发送火警警报
                    mainService.fierCrn();
//                    mainService.fierCrn();
                    //103站点有物下发pack码
                    mainService.packDevp();
//                    mainService.packDevp();
                } catch (Exception e) {
                    e.printStackTrace();
src/main/java/com/zy/core/model/DevpSlave.java
@@ -34,6 +34,10 @@
        private Integer barcode;
        private Integer backSta;
        private Integer led;
    }
}
src/main/java/com/zy/core/model/command/LedCommand.java
@@ -29,4 +29,7 @@
    private boolean emptyMk = false;
    private Integer ioType;
    private String barcode;
}
src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -52,6 +52,32 @@
    // 入库暂存数
    private Short inQty;
    // 外形检测 ------------------------------------------------------------------------
    // 前超限
    private boolean frontErr;
    // 后超限
    private boolean backErr;
    // 高超限
    private boolean highErr;
    // 左超限
    private boolean leftErr;
    // 右超限
    private boolean rightErr;
    // 超重
    private boolean weightErr;
    // 扫码失败
    private boolean barcodeErr;
    //出入库模式
    private Short outInModel;
    public BasDevp toSqlModel(){
        BasDevp basDevp = new BasDevp();
        basDevp.setDevNo(siteId);
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -42,16 +42,22 @@
    private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
    private short heartBeatVal = 1;
    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
        add(101);add(102);add(103);add(104);
        add(201);add(202);add(203);add(204);add(205);add(206);
        add(207);add(208);add(209);add(210);add(211);add(212);
        add(213);add(105);add(1000);
        add(101);
        add(102);
        add(103);
        add(104);
        add(201);
        add(202);
        add(203);
        add(204);
        add(205);
        add(206);
    }};
    /**
     * 条码数量
     */
    private int barcodeSize = 2;
    private int barcodeSize = 1;
    public IoModeType ioMode = IoModeType.NONE;
    public int[][] startSignal = new int[48][3];
@@ -81,25 +87,25 @@
                        write((StaProtocol)task.getData());
                        break;
                    // 写数据 103站点写入PACK码
                    case 4:
                        write103((String)task.getData());
                        break;
//                    case 4:
//                        write103((String)task.getData());
//                        break;
                    // 火警信号
                    case 5:
                        StaProtocol staProtocol2 = (StaProtocol)task.getData();
                        siemensS7Net.Write("DB108.0" + staProtocol2.getSiteId(), staProtocol2.getStaNo()==1);
                        break;
//                    case 5:
//                        StaProtocol staProtocol2 = (StaProtocol)task.getData();
//                        siemensS7Net.Write("DB108.0" + staProtocol2.getSiteId(), staProtocol2.getStaNo()==1);
//                        break;
                    //测试库出库,库位状态改为8
                    case 6:
                        String data = task.getData()+"";
                        Byte coun=8;
                        siemensS7Net.Write("DB38.0" + data, coun);
                        break;
//                    case 6:
//                        String data = task.getData()+"";
//                        Byte coun=8;
//                        siemensS7Net.Write("DB38.0" + data, coun);
//                        break;
                    //复位测试信号
                    case 3:
                        StaProtocol staProtocol = (StaProtocol) task.getData();
                        siemensS7Net.Write("DB102.0" + staProtocol.getSiteId(), staProtocol.getStaNo());
                        break;
//                    case 3:
//                        StaProtocol staProtocol = (StaProtocol) task.getData();
//                        siemensS7Net.Write("DB102.0" + staProtocol.getSiteId(), staProtocol.getStaNo());
//                        break;
                    default:
                        break;
    }
@@ -191,24 +197,24 @@
        }
        Thread.sleep(200);
        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.190",(short)(26));
        OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB100.216",(short)(6));
        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.190", (short) 8);
//        OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB100.216",(short)(6));
        if (result2.IsSuccess) {
                String barcode =siemensS7Net.getByteTransform().TransString(result2.Content,0,26, "UTF-8");
            String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, 0, 8, "UTF-8");
//                String barcode=new String(result2.Content,i*12,12);
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 1);
                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                    barcodeThread.setBarcode(barcode);
                }
        }
        if (result5.IsSuccess) {
            String barcode =siemensS7Net.getByteTransform().TransString(result5.Content,0,6, "UTF-8");
//                String barcode=new String(result2.Content,i*12,12);
            BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode,  2);
            if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                barcodeThread.setBarcode(barcode);
            }
        }
//        if (result5.IsSuccess) {
//            String barcode =siemensS7Net.getByteTransform().TransString(result5.Content,0,6, "UTF-8");
////                String barcode=new String(result2.Content,i*12,12);
//            BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode,  2);
//            if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
//                barcodeThread.setBarcode(barcode);
//            }
//        }
        Thread.sleep(200);
        //测试柜状态获取
@@ -228,6 +234,19 @@
//        if (result2.IsSuccess) {
//            this.ioMode = IoModeType.get(result2.Content);
//        }
        OperateResultExOne<byte[]> result202 = siemensS7Net.Read("DB101.806", (short) 8);
        if (result202.IsSuccess) {
            //出入库模式
            boolean[] status = siemensS7Net.getByteTransform().TransBool(result202.Content, 0, 1);
            StaProtocol staProtocol = station.get(202);
            staProtocol.setFrontErr(status[0]);
            staProtocol.setBackErr(status[1]);
            staProtocol.setHighErr(status[2]);
            staProtocol.setLeftErr(status[3]);
            staProtocol.setRightErr(status[4]);
            staProtocol.setWeightErr(status[5]);
            staProtocol.setBarcodeErr(status[6]);
        }
        if (result.IsSuccess && result1.IsSuccess) {
src/main/resources/application.yml
@@ -8,8 +8,8 @@
    name: @pom.build.finalName@
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs
    #url: jdbc:sqlserver://127.0.0.1:1433;databasename=zjfnasrs
#    url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxtlfasrs
    username: sa
    password: sa@123
  mvc:
@@ -76,30 +76,6 @@
      row: 2
      bay: 0
      lev: 1
  # 堆垛机2
  crn[1]:
    id: 2
    ip: 10.12.55.60
    port: 8888
    rack: 0
    slot: 0
    # 偏移量,当堆垛机站点列号=1时,偏移量=2
    offset: 2
    demo: false
    # 堆垛机入库站点
    crnInStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 209
      row: 3
      bay: 0
      lev: 1
    # 堆垛机出库站点
    crnOutStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 210
      row: 4
      bay: 0
      lev: 1
  # 输送线
  devp[0]:
@@ -110,12 +86,10 @@
    slot: 0
    # 入库口1
    inSta[0]:
      staNo: 201
      staNo: 101
      barcode: ${wcs-slave.barcode[0].id}
    # 入库口2
    inSta[1]:
      staNo: 206
      barcode: ${wcs-slave.barcode[1].id}
      backSta: 100
      led: ${wcs-slave.led[0].id}
    # 空板入库口1
    emptyInSta[0]:
      staNo: 201
@@ -139,18 +113,25 @@
    id: 1
    ip: 172.28.15.235
    port: 51236
  # 条码扫描仪2
  barcode[1]:
    id: 2
    ip: 172.28.15.235
    port: 51236
#   # LED1
#  led[0]:
#    id: 1
#    ip: 10.10.10.60
#    port: 5005
#    devpPlcId: ${wcs-slave.devp[0].id}
#    staArr: 110
#  # 条码扫描仪2
#  barcode[1]:
#    id: 2
#    ip: 172.28.15.235
#    port: 51236
   # LED1
  led[0]:
    id: 1
    ip: 10.10.10.60
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 101
    # LED2
  led[1]:
    id: 1
    ip: 10.10.10.60
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 110
#
#  #socket
#  socket[0]:
src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
var baseUrl = "/fnwcs";
var baseUrl = "/tlfwcs";
// 赋值
function setVal(el, val) {
src/main/webapp/static/js/console.map.js
@@ -8,46 +8,37 @@
    "floors": 1,
    "racks": [{
        "type": "rack",
        "id": "rack4",
        "top": 260,
        "left": 196,
        "width": 765,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 24
    }, {
        "type": "rack",
        "id": "rack1",
        "top": 95,
        "top": 260,
        "left": 167,
        "width": 794,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 25
        "maxBayNo": 14
    }, {
        "type": "rack",
        "id": "rack2",
        "top": 152,
        "left": 167,
        "width": 794,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 25
    }, {
        "type": "rack",
        "id": "rack3",
        "top": 200,
        "left": 167,
        "width": 794,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 25
    }],
        "maxBayNo": 14
    },{
        "type": "rack",
        "id": "rack3",
        "top": 177,
        "left": 167,
        "width": 794,
        "height": 23,
        "minBayNo": 1,
        "maxBayNo": 14
    },],
    "rackDescs": [{
        "type": "rackDescs",
        "id": "lb_desc1",
        "text": "#4",
        "top": 93,
        "text": "#3",
        "top": 177,
        "left": 129,
        "width": 30,
        "height": 23
@@ -58,14 +49,6 @@
        "top": 259,
        "left": 129,
        "width": 33,
        "height": 23
    }, {
        "type": "rackDescs",
        "id": "lb_desc16",
        "text": "#一楼机械臂位置==》",
        "top": 40,
        "left": 750,
        "width": 270,
        "height": 23
    }],
    "crns": [{
@@ -78,28 +61,12 @@
        "height": 22
    }, {
        "type": "track",
        "id": "lb_track4",
        "text": "",
        "top": 136,
        "left": 180,
        "width": 830,
        "height": 2
    }, {
        "type": "track",
        "id": "lb_track5",
        "text": "",
        "top": 243,
        "left": 180,
        "width": 830,
        "height": 2
    }, {
        "type": "crane",
        "id": "crn-2",
        "text": "2",
        "top": 127,
        "left": 441,
        "width": 93,
        "height": 22
    }],
    "areas": [{
        "type": "Control_floor",
@@ -118,70 +85,6 @@
            "width": 1412,
            "height": 505,
            "stns": [{
                "type": "stn",
                "id": "site-212",
                "text": "212",
                "top": 119,
                "left": 1122,
                "width": 65,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-105",
                "text": "105",
                "top": 47,
                "left": 1188,
                "width": 65,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-0",
                "text": "升降",
                "top": 70,
                "left": 1203,
                "width": 35,
                "height": 49,
            }, {
                "type": "stn",
                "id": "site-101",
                "text": "101",
                "top": 119,
                "left": 1188,
                "width": 65,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-211",
                "text": "211",
                "top": 95,
                "left": 1122,
                "width": 60,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-207",
                "text": "207",
                "top": 119,
                "left": 1041,
                "width": 80,
                "height": 32
            }, {
                "type": "stn",
                "id": "site-205",
                "text": "205",
                "top": 176,
                "left": 1041,
                "width": 80,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-206",
                "text": "206",
                "top": 152,
                "left": 1041,
                "width": 80,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-202",
                "text": "202",
@@ -212,62 +115,6 @@
                "top": 200,
                "left": 1041,
                "width": 80,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-209",
                "text": "209",
                "top": 152,
                "left": 960,
                "width": 80,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-210",
                "text": "210",
                "top": 95,
                "left": 960,
                "width": 80,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-208",
                "text": "208",
                "top": 95,
                "left": 1041,
                "width": 80,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-213",
                "text": "213",
                "top": 119,
                "left": 1254,
                "width": 65,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-104",
                "text": "104",
                "top": 23,
                "left": 1122,
                "width": 65,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-102",
                "text": "102",
                "top": 47,
                "left": 1122,
                "width": 65,
                "height": 23
            }, {
                "type": "stn",
                "id": "site-103",
                "text": "103",
                "top": 47,
                "left": 1056,
                "width": 65,
                "height": 23
            }]
        }]
src/main/webapp/views/console.html
@@ -27,147 +27,147 @@
    <!-- 货架 + 堆垛机 + 入库站点 -->
    <div class="main-part">
    </div>
    <div class="" >
        <div id="loc-0100105" class="loc" style="top:400px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-5</div>
        <div id="loc-0100205" class="loc" style="top:400px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-5</div>
        <div id="loc-0100305" class="loc" style="top:400px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-5</div>
        <div id="loc-0100405" class="loc" style="top:400px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-5</div>
        <div id="loc-0100505" class="loc" style="top:400px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-5</div>
        <div id="loc-0100605" class="loc" style="top:400px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-5</div>
        <div id="loc-0100705" class="loc" style="top:400px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-5</div>
        <div id="loc-0100805" class="loc" style="top:400px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-5</div>
        <div id="loc-0100905" class="loc" style="top:400px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-5</div>
        <div id="loc-0101005" class="loc" style="top:400px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-5</div>
        <div id="loc-0101105" class="loc" style="top:400px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-5</div>
        <div id="loc-0101205" class="loc" style="top:400px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-5</div>
        <div id="loc-0101305" class="loc" style="top:400px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-5</div>
        <div id="loc-0101405" class="loc" style="top:400px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-5</div>
        <div id="loc-0101505" class="loc" style="top:400px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-5</div>
        <div id="loc-0101605" class="loc" style="top:400px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-5</div>
        <div id="loc-0101705" class="loc" style="top:400px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-5</div>
        <div id="loc-0101805" class="loc" style="top:400px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-5</div>
        <div id="loc-0101905" class="loc" style="top:400px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-5</div>
        <div id="loc-0102005" class="loc" style="top:400px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-5</div>
        <div id="loc-0102105" class="loc" style="top:400px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-5</div>
        <div id="loc-0102205" class="loc" style="top:400px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-5</div>
        <div id="loc-0102305" class="loc" style="top:400px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-5</div>
        <div id="loc-0102405" class="loc" style="top:400px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-5</div>
    </div>
<!--    <div class="" >-->
<!--        <div id="loc-0100105" class="loc" style="top:400px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-5</div>-->
<!--        <div id="loc-0100205" class="loc" style="top:400px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-5</div>-->
<!--        <div id="loc-0100305" class="loc" style="top:400px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-5</div>-->
<!--        <div id="loc-0100405" class="loc" style="top:400px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-5</div>-->
<!--        <div id="loc-0100505" class="loc" style="top:400px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-5</div>-->
<!--        <div id="loc-0100605" class="loc" style="top:400px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-5</div>-->
<!--        <div id="loc-0100705" class="loc" style="top:400px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-5</div>-->
<!--        <div id="loc-0100805" class="loc" style="top:400px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-5</div>-->
<!--        <div id="loc-0100905" class="loc" style="top:400px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-5</div>-->
<!--        <div id="loc-0101005" class="loc" style="top:400px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-5</div>-->
<!--        <div id="loc-0101105" class="loc" style="top:400px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-5</div>-->
<!--        <div id="loc-0101205" class="loc" style="top:400px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-5</div>-->
<!--        <div id="loc-0101305" class="loc" style="top:400px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-5</div>-->
<!--        <div id="loc-0101405" class="loc" style="top:400px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-5</div>-->
<!--        <div id="loc-0101505" class="loc" style="top:400px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-5</div>-->
<!--        <div id="loc-0101605" class="loc" style="top:400px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-5</div>-->
<!--        <div id="loc-0101705" class="loc" style="top:400px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-5</div>-->
<!--        <div id="loc-0101805" class="loc" style="top:400px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-5</div>-->
<!--        <div id="loc-0101905" class="loc" style="top:400px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-5</div>-->
<!--        <div id="loc-0102005" class="loc" style="top:400px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-5</div>-->
<!--        <div id="loc-0102105" class="loc" style="top:400px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-5</div>-->
<!--        <div id="loc-0102205" class="loc" style="top:400px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-5</div>-->
<!--        <div id="loc-0102305" class="loc" style="top:400px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-5</div>-->
<!--        <div id="loc-0102405" class="loc" style="top:400px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-5</div>-->
<!--    </div>-->
<!--    <div class="">-->
<!--        <div id="loc-0100104" class="loc" style="top:424px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-4</div>-->
<!--        <div id="loc-0100204" class="loc" style="top:424px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-4</div>-->
<!--        <div id="loc-0100304" class="loc" style="top:424px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-4</div>-->
<!--        <div id="loc-0100404" class="loc" style="top:424px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-4</div>-->
<!--        <div id="loc-0100504" class="loc" style="top:424px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-4</div>-->
<!--        <div id="loc-0100604" class="loc" style="top:424px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-4</div>-->
<!--        <div id="loc-0100704" class="loc" style="top:424px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-4</div>-->
<!--        <div id="loc-0100804" class="loc" style="top:424px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-4</div>-->
<!--        <div id="loc-0100904" class="loc" style="top:424px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-4</div>-->
<!--        <div id="loc-0101004" class="loc" style="top:424px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-4</div>-->
<!--        <div id="loc-0101104" class="loc" style="top:424px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-4</div>-->
<!--        <div id="loc-0101204" class="loc" style="top:424px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-4</div>-->
<!--        <div id="loc-0101304" class="loc" style="top:424px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-4</div>-->
<!--        <div id="loc-0101404" class="loc" style="top:424px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-4</div>-->
<!--        <div id="loc-0101504" class="loc" style="top:424px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-4</div>-->
<!--        <div id="loc-0101604" class="loc" style="top:424px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-4</div>-->
<!--        <div id="loc-0101704" class="loc" style="top:424px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-4</div>-->
<!--        <div id="loc-0101804" class="loc" style="top:424px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-4</div>-->
<!--        <div id="loc-0101904" class="loc" style="top:424px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-4</div>-->
<!--        <div id="loc-0102004" class="loc" style="top:424px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-4</div>-->
<!--        <div id="loc-0102104" class="loc" style="top:424px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-4</div>-->
<!--        <div id="loc-0102204" class="loc" style="top:424px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-4</div>-->
<!--        <div id="loc-0102304" class="loc" style="top:424px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-4</div>-->
<!--        <div id="loc-0102404" class="loc" style="top:424px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-4</div>-->
<!--    </div>-->
<!--    <div class="">-->
<!--        <div id="loc-0100103" class="loc" style="top:448px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-3</div>-->
<!--        <div id="loc-0100203" class="loc" style="top:448px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-3</div>-->
<!--        <div id="loc-0100303" class="loc" style="top:448px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-3</div>-->
<!--        <div id="loc-0100403" class="loc" style="top:448px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-3</div>-->
<!--        <div id="loc-0100503" class="loc" style="top:448px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-3</div>-->
<!--        <div id="loc-0100603" class="loc" style="top:448px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-3</div>-->
<!--        <div id="loc-0100703" class="loc" style="top:448px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-3</div>-->
<!--        <div id="loc-0100803" class="loc" style="top:448px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-3</div>-->
<!--        <div id="loc-0100903" class="loc" style="top:448px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-3</div>-->
<!--        <div id="loc-0101003" class="loc" style="top:448px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-3</div>-->
<!--        <div id="loc-0101103" class="loc" style="top:448px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-3</div>-->
<!--        <div id="loc-0101203" class="loc" style="top:448px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-3</div>-->
<!--        <div id="loc-0101303" class="loc" style="top:448px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-3</div>-->
<!--        <div id="loc-0101403" class="loc" style="top:448px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-3</div>-->
<!--        <div id="loc-0101503" class="loc" style="top:448px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-3</div>-->
<!--        <div id="loc-0101603" class="loc" style="top:448px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-3</div>-->
<!--        <div id="loc-0101703" class="loc" style="top:448px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-3</div>-->
<!--        <div id="loc-0101803" class="loc" style="top:448px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-3</div>-->
<!--        <div id="loc-0101903" class="loc" style="top:448px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-3</div>-->
<!--        <div id="loc-0102003" class="loc" style="top:448px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-3</div>-->
<!--        <div id="loc-0102103" class="loc" style="top:448px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-3</div>-->
<!--        <div id="loc-0102203" class="loc" style="top:448px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-3</div>-->
<!--        <div id="loc-0102303" class="loc" style="top:448px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-3</div>-->
<!--        <div id="loc-0102403" class="loc" style="top:448px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-3</div>-->
<!--    </div>-->
    <div class="">
        <div id="loc-0100104" class="loc" style="top:424px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-4</div>
        <div id="loc-0100204" class="loc" style="top:424px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-4</div>
        <div id="loc-0100304" class="loc" style="top:424px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-4</div>
        <div id="loc-0100404" class="loc" style="top:424px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-4</div>
        <div id="loc-0100504" class="loc" style="top:424px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-4</div>
        <div id="loc-0100604" class="loc" style="top:424px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-4</div>
        <div id="loc-0100704" class="loc" style="top:424px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-4</div>
        <div id="loc-0100804" class="loc" style="top:424px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-4</div>
        <div id="loc-0100904" class="loc" style="top:424px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-4</div>
        <div id="loc-0101004" class="loc" style="top:424px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-4</div>
        <div id="loc-0101104" class="loc" style="top:424px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-4</div>
        <div id="loc-0101204" class="loc" style="top:424px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-4</div>
        <div id="loc-0101304" class="loc" style="top:424px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-4</div>
        <div id="loc-0101404" class="loc" style="top:424px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-4</div>
        <div id="loc-0101504" class="loc" style="top:424px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-4</div>
        <div id="loc-0101604" class="loc" style="top:424px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-4</div>
        <div id="loc-0101704" class="loc" style="top:424px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-4</div>
        <div id="loc-0101804" class="loc" style="top:424px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-4</div>
        <div id="loc-0101904" class="loc" style="top:424px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-4</div>
        <div id="loc-0102004" class="loc" style="top:424px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-4</div>
        <div id="loc-0102104" class="loc" style="top:424px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-4</div>
        <div id="loc-0102204" class="loc" style="top:424px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-4</div>
        <div id="loc-0102304" class="loc" style="top:424px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-4</div>
        <div id="loc-0102404" class="loc" style="top:424px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-4</div>
        <div id="loc-0100102" class="loc" style="top:372px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-2</div>
        <div id="loc-0100202" class="loc" style="top:372px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-2</div>
        <div id="loc-0100302" class="loc" style="top:372px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-2</div>
        <div id="loc-0100402" class="loc" style="top:372px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-2</div>
        <div id="loc-0100502" class="loc" style="top:372px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-2</div>
        <div id="loc-0100602" class="loc" style="top:372px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-2</div>
        <div id="loc-0100702" class="loc" style="top:372px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-2</div>
        <div id="loc-0100802" class="loc" style="top:372px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-2</div>
        <div id="loc-0100902" class="loc" style="top:372px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-2</div>
        <div id="loc-0101002" class="loc" style="top:372px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-2</div>
        <div id="loc-0101102" class="loc" style="top:372px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-2</div>
        <div id="loc-0101202" class="loc" style="top:372px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-2</div>
        <div id="loc-0101302" class="loc" style="top:372px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-2</div>
        <div id="loc-0101402" class="loc" style="top:372px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-2</div>
<!--        <div id="loc-0101502" class="loc" style="top:472px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-2</div>-->
<!--        <div id="loc-0101602" class="loc" style="top:472px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-2</div>-->
<!--        <div id="loc-0101702" class="loc" style="top:472px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-2</div>-->
<!--        <div id="loc-0101802" class="loc" style="top:472px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-2</div>-->
<!--        <div id="loc-0101902" class="loc" style="top:472px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-2</div>-->
<!--        <div id="loc-0102002" class="loc" style="top:472px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-2</div>-->
<!--        <div id="loc-0102102" class="loc" style="top:472px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-2</div>-->
<!--        <div id="loc-0102202" class="loc" style="top:472px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-2</div>-->
<!--        <div id="loc-0102302" class="loc" style="top:472px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-2</div>-->
<!--        <div id="loc-0102402" class="loc" style="top:472px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-2</div>-->
    </div>
    <div class="">
        <div id="loc-0100103" class="loc" style="top:448px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-3</div>
        <div id="loc-0100203" class="loc" style="top:448px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-3</div>
        <div id="loc-0100303" class="loc" style="top:448px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-3</div>
        <div id="loc-0100403" class="loc" style="top:448px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-3</div>
        <div id="loc-0100503" class="loc" style="top:448px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-3</div>
        <div id="loc-0100603" class="loc" style="top:448px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-3</div>
        <div id="loc-0100703" class="loc" style="top:448px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-3</div>
        <div id="loc-0100803" class="loc" style="top:448px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-3</div>
        <div id="loc-0100903" class="loc" style="top:448px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-3</div>
        <div id="loc-0101003" class="loc" style="top:448px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-3</div>
        <div id="loc-0101103" class="loc" style="top:448px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-3</div>
        <div id="loc-0101203" class="loc" style="top:448px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-3</div>
        <div id="loc-0101303" class="loc" style="top:448px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-3</div>
        <div id="loc-0101403" class="loc" style="top:448px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-3</div>
        <div id="loc-0101503" class="loc" style="top:448px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-3</div>
        <div id="loc-0101603" class="loc" style="top:448px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-3</div>
        <div id="loc-0101703" class="loc" style="top:448px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-3</div>
        <div id="loc-0101803" class="loc" style="top:448px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-3</div>
        <div id="loc-0101903" class="loc" style="top:448px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-3</div>
        <div id="loc-0102003" class="loc" style="top:448px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-3</div>
        <div id="loc-0102103" class="loc" style="top:448px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-3</div>
        <div id="loc-0102203" class="loc" style="top:448px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-3</div>
        <div id="loc-0102303" class="loc" style="top:448px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-3</div>
        <div id="loc-0102403" class="loc" style="top:448px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-3</div>
    </div>
    <div class="">
        <div id="loc-0100102" class="loc" style="top:472px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-2</div>
        <div id="loc-0100202" class="loc" style="top:472px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-2</div>
        <div id="loc-0100302" class="loc" style="top:472px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-2</div>
        <div id="loc-0100402" class="loc" style="top:472px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-2</div>
        <div id="loc-0100502" class="loc" style="top:472px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-2</div>
        <div id="loc-0100602" class="loc" style="top:472px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-2</div>
        <div id="loc-0100702" class="loc" style="top:472px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-2</div>
        <div id="loc-0100802" class="loc" style="top:472px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-2</div>
        <div id="loc-0100902" class="loc" style="top:472px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-2</div>
        <div id="loc-0101002" class="loc" style="top:472px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-2</div>
        <div id="loc-0101102" class="loc" style="top:472px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-2</div>
        <div id="loc-0101202" class="loc" style="top:472px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-2</div>
        <div id="loc-0101302" class="loc" style="top:472px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-2</div>
        <div id="loc-0101402" class="loc" style="top:472px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-2</div>
        <div id="loc-0101502" class="loc" style="top:472px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-2</div>
        <div id="loc-0101602" class="loc" style="top:472px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-2</div>
        <div id="loc-0101702" class="loc" style="top:472px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-2</div>
        <div id="loc-0101802" class="loc" style="top:472px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-2</div>
        <div id="loc-0101902" class="loc" style="top:472px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-2</div>
        <div id="loc-0102002" class="loc" style="top:472px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-2</div>
        <div id="loc-0102102" class="loc" style="top:472px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-2</div>
        <div id="loc-0102202" class="loc" style="top:472px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-2</div>
        <div id="loc-0102302" class="loc" style="top:472px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-2</div>
        <div id="loc-0102402" class="loc" style="top:472px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-2</div>
    </div>
    <div class="">
        <div id="loc-0100101" class="loc" style="top:496px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-1</div>
        <div id="loc-0100201" class="loc" style="top:496px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-1</div>
        <div id="loc-0100301" class="loc" style="top:496px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-1</div>
        <div id="loc-0100401" class="loc" style="top:496px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-1</div>
        <div id="loc-0100501" class="loc" style="top:496px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-1</div>
        <div id="loc-0100601" class="loc" style="top:496px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-1</div>
        <div id="loc-0100701" class="loc" style="top:496px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-1</div>
        <div id="loc-0100801" class="loc" style="top:496px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-1</div>
        <div id="loc-0100901" class="loc" style="top:496px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-1</div>
        <div id="loc-0101001" class="loc" style="top:496px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-1</div>
        <div id="loc-0101101" class="loc" style="top:496px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-1</div>
        <div id="loc-0101201" class="loc" style="top:496px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-1</div>
        <div id="loc-0101301" class="loc" style="top:496px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-1</div>
        <div id="loc-0101401" class="loc" style="top:496px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-1</div>
        <div id="loc-0101501" class="loc" style="top:496px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-1</div>
        <div id="loc-0101601" class="loc" style="top:496px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-1</div>
        <div id="loc-0101701" class="loc" style="top:496px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-1</div>
        <div id="loc-0101801" class="loc" style="top:496px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-1</div>
        <div id="loc-0101901" class="loc" style="top:496px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-1</div>
        <div id="loc-0102001" class="loc" style="top:496px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-1</div>
        <div id="loc-0102101" class="loc" style="top:496px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-1</div>
        <div id="loc-0102201" class="loc" style="top:496px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-1</div>
        <div id="loc-0102301" class="loc" style="top:496px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-1</div>
        <div id="loc-0102401" class="loc" style="top:496px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-1</div>
        <div id="loc-0100101" class="loc" style="top:396px; left:200px; width:70px; height: 22px;line-height: 22px;">1-1-1</div>
        <div id="loc-0100201" class="loc" style="top:396px; left:272px; width:70px; height: 22px;line-height: 22px;">1-2-1</div>
        <div id="loc-0100301" class="loc" style="top:396px; left:344px; width:70px; height: 22px;line-height: 22px;">1-3-1</div>
        <div id="loc-0100401" class="loc" style="top:396px; left:416px; width:70px; height: 22px;line-height: 22px;">1-4-1</div>
        <div id="loc-0100501" class="loc" style="top:396px; left:488px; width:70px; height: 22px;line-height: 22px;">1-5-1</div>
        <div id="loc-0100601" class="loc" style="top:396px; left:560px; width:70px; height: 22px;line-height: 22px;">1-6-1</div>
        <div id="loc-0100701" class="loc" style="top:396px; left:632px; width:70px; height: 22px;line-height: 22px;">1-7-1</div>
        <div id="loc-0100801" class="loc" style="top:396px; left:704px; width:70px; height: 22px;line-height: 22px;">1-8-1</div>
        <div id="loc-0100901" class="loc" style="top:396px; left:776px; width:70px; height: 22px;line-height: 22px;">1-9-1</div>
        <div id="loc-0101001" class="loc" style="top:396px; left:848px; width:70px; height: 22px;line-height: 22px;">1-10-1</div>
        <div id="loc-0101101" class="loc" style="top:396px; left:920px; width:70px; height: 22px;line-height: 22px;">1-11-1</div>
        <div id="loc-0101201" class="loc" style="top:396px; left:992px; width:70px; height: 22px;line-height: 22px;">1-12-1</div>
        <div id="loc-0101301" class="loc" style="top:396px; left:1064px; width:70px; height: 22px;line-height: 22px;">1-13-1</div>
        <div id="loc-0101401" class="loc" style="top:396px; left:1136px; width:70px; height: 22px;line-height: 22px;">1-14-1</div>
<!--        <div id="loc-0101501" class="loc" style="top:496px; left:1208px; width:70px; height: 22px;line-height: 22px;">1-15-1</div>-->
<!--        <div id="loc-0101601" class="loc" style="top:496px; left:1280px; width:70px; height: 22px;line-height: 22px;">1-16-1</div>-->
<!--        <div id="loc-0101701" class="loc" style="top:496px; left:1352px; width:70px; height: 22px;line-height: 22px;">1-17-1</div>-->
<!--        <div id="loc-0101801" class="loc" style="top:496px; left:1424px; width:70px; height: 22px;line-height: 22px;">1-18-1</div>-->
<!--        <div id="loc-0101901" class="loc" style="top:496px; left:1496px; width:70px; height: 22px;line-height: 22px;">1-19-1</div>-->
<!--        <div id="loc-0102001" class="loc" style="top:496px; left:1568px; width:70px; height: 22px;line-height: 22px;">1-20-1</div>-->
<!--        <div id="loc-0102101" class="loc" style="top:496px; left:1640px; width:70px; height: 22px;line-height: 22px;">1-21-1</div>-->
<!--        <div id="loc-0102201" class="loc" style="top:496px; left:1712px; width:70px; height: 22px;line-height: 22px;">1-22-1</div>-->
<!--        <div id="loc-0102301" class="loc" style="top:496px; left:1784px; width:70px; height: 22px;line-height: 22px;">1-23-1</div>-->
<!--        <div id="loc-0102401" class="loc" style="top:496px; left:1856px; width:70px; height: 22px;line-height: 22px;">1-24-1</div>-->
        <div class="rackDescs" id="lb_desc11" style="top:530px; left:1450px; width:150px;height: 23px;line-height: 23px">1排货架侧视图</div>
        <div class="rackDescs" id="lb_desc11" style="top:430px; left:850px; width:150px;height: 23px;line-height: 23px">1排货架侧视图</div>
    </div>
    <div class="button item-group">
        <span class="site machine-auto-flag" style="color:#FFFFFF; top:550px; left:300px">空库位</span>
        <span class="site machine-stock-move-flag" style="color:#FFFFFF; top:550px; left:364px">在库待测</span>
        <span class="site machine-site-move-flag" style="color:#FFFFFF; top:550px; left:442px">在库测试中</span>
        <span class="site machine-take-flag" style="color:#FFFFFF; top:550px; left:534px">测试成功OK</span>
        <span class="site machine-put-flag" style="color:#FFFFFF; top:550px; left:626px">测试失败NG</span>
        <span class="site machine-error-flag" style="color:#FFFFFF; top:550px; left:716px">异常报警</span>
        <span class="site machine-auto-flag" style="color:#FFFFFF; top:450px; left:300px">空库位</span>
        <span class="site machine-stock-move-flag" style="color:#FFFFFF; top:450px; left:364px">在库待测</span>
        <span class="site machine-site-move-flag" style="color:#FFFFFF; top:450px; left:442px">在库测试中</span>
        <span class="site machine-take-flag" style="color:#FFFFFF; top:450px; left:534px">测试成功OK</span>
        <span class="site machine-put-flag" style="color:#FFFFFF; top:450px; left:626px">测试失败NG</span>
        <span class="site machine-error-flag" style="color:#FFFFFF; top:450px; left:716px">异常报警</span>
    </div>
    <div id="body">
src/main/webapp/views/crn.html
@@ -59,12 +59,6 @@
                    <!--            <span>&nbsp;</span>-->
                    <input id="crn1" disabled="disabled">
                </div>
                <div class="crn-command-item">
                    <label>2#</label>
                    <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
                    <!--            <span>&nbsp;</span>-->
                    <input id="crn2" disabled="disabled">
                </div>
            </div>
            <!-- 堆垛机状态位信息 -->
            <div class="crn-state">
@@ -131,7 +125,6 @@
                    <span class="select-title">堆垛机号</span>
                    <div class="select-container">
                        <label><input type="radio" name="crnSelect" value="1" checked>&nbsp;1号堆垛机</label>
                        <label><input type="radio" name="crnSelect" value="2">&nbsp;2号堆垛机</label>
                    </div>
                </div>
                <!-- 源站/源库位 选择 -->