自动化立体仓库 - WCS系统
lty
2025-03-19 7400211f1ceecea0048ff3f5adfeeb8fe975bc7a
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -170,7 +170,7 @@
                        continue;
                    }
                    staProtocol.setWorkNo(wrkNo);
                    News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                    News.info("{}PLC入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                    wrkNo++;
                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -188,7 +188,7 @@
                        News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                        staProtocol.setWorkNo(wrkNo);
                        News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                        News.info("{}barcode入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                        wrkNo++;
                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -199,32 +199,33 @@
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                    if (wrkMast != null) {
                        int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
                        if (wrkNo1 != 0) {
                            News.error(barcode + "条码已存在状态为( 2.设备上走 )的数据,请查看WCS输送线界面,工作号={}", wrkMast.getWrkNo());
                            if (ledThread != null) {
                                News.error(methodName + ":扫码失败,请重试");
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "条码已存在状态为( 2.设备上走 )的任务,工作号=" + wrkMast.getWrkNo()));
                            }
                            continue;
                        }
                        barcodeThread.setBarcode("");
                        staProtocol.setWorkNo(wrkMast.getWrkNo());
                        staProtocol.setStaNo(RouteUtils.SouStaEnd(null, wrkMast.getSourceStaNo()));
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        log.info("输送线下发(存在设备上走的工作档,直接下发!)):" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
                        ledThread.errorReset();
                        log.info("组托请求后LED错误清除");
                        if (!result) {
                            News.error(methodName + ":更新plc站点信息失败");
                            log.error("输送线下发(存在设备上走的工作档,直接下发!)==>更新plc站点信息失败");
//                            throw new CoolException("更新plc站点信息失败");
                            continue;
                        }
//                        int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
//                        if (wrkNo1 != 0){
//                            if (ledThread != null) {
//                                News.error(methodName + ":扫码失败,请重试");
//                            }
//
//                        }
                        News.error(barcode + "条码已存在状态为( 2.设备上走 )的数据,请查看WCS输送线界面,工作号={}", wrkMast.getWrkNo());
                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "条码已存在状态为( 2.设备上走 )的任务,工作号=" + wrkMast.getWrkNo()));
                        continue;
//                        barcodeThread.setBarcode("");
//                        staProtocol.setWorkNo(wrkMast.getWrkNo());
//                        staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                        log.info("输送线下发(存在设备上走的工作档,直接下发!)):"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
//
//                        ledThread.errorReset();
//                        log.info("组托请求后LED错误清除");
//
//                        if (!result) {
//                            News.error(methodName + ":更新plc站点信息失败");
//                            log.error("输送线下发(存在设备上走的工作档,直接下发!)==>更新plc站点信息失败");
//
////                            throw new CoolException("更新plc站点信息失败");
//                            continue;
//                        }
                    }
                    WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
@@ -242,6 +243,7 @@
                        param.setSourceStaNo(inSta.getStaNo());
                        param.setLocType1(locTypeDto.getLocType1());
                        String response = new HttpHandler.Builder()
                                .setTimeout(30,TimeUnit.SECONDS)
                                .setUri(wmsUrl)
                                .setPath("/rpc/pakin/loc/v1")
                                .setJson(JSON.toJSONString(param))
@@ -268,24 +270,27 @@
                            }
                        } else {
                            if (jsonObject.getString("msg").equals("工作档已存在")) {
                                //工作档已存在    再次进去
                                wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
                                if (wrkMast != null) {
                                    barcodeThread.setBarcode("");
                                    staProtocol.setWorkNo(wrkMast.getWrkNo());
                                    //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
                                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                    log.error("输送线下发2:" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
                                    ledThread.errorReset();
                                    log.error("组托请求后LED错误清除");
                                    if (!result) {
                                        News.error(methodName + ":更新plc站点信息失败");
                                        throw new CoolException("更新plc站点信息失败");
                                    }
                                }
                                //工作档已存在    再次进去
//                                wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
//                                if (wrkMast != null) {
//                                    barcodeThread.setBarcode("");
//                                    staProtocol.setWorkNo(9999);
//                                    //staProtocol.setWorkNo(wrkMast.getWrkNo());
//                                    //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
//                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
//                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
//                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                                    log.error("输送线下发2:" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
//                                    ledThread.errorReset();
//                                    log.error("组托请求后LED错误清除");
//                                    if (!result) {
//                                        News.error(methodName + ":更新plc站点信息失败");
//
//                                        throw new CoolException("更新plc站点信息失败");
//                                    }
//                                }
                                continue;
                            }
                            staProtocol.setWorkNo(wrkNo);
@@ -398,6 +403,83 @@
                    continue;
                }
                String barcode = barcodeThread.getBarcode();
                // 获取拣料入库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
                if(staProtocol == null) {
                    News.error("站点信息未获得");
                    continue;
                }
                // 尺寸检测异常
                boolean back = false;
                String errMsg = "";
                if (!back && staProtocol.isFrontErr()) {
                    errMsg = "前超限";
                    back = true;
                }
                if (!back && staProtocol.isBackErr()) {
                    errMsg = "后超限";
                    back = true;
                }
                if (!back && staProtocol.isHighErr()) {
                    errMsg = "高超限";
                    back = true;
                }
                if (!back && staProtocol.isLeftErr()) {
                    errMsg = "左超限";
                    back = true;
                }
                if (!back && staProtocol.isRightErr()) {
                    errMsg = "右超限";
                    back = true;
                }
                if (!back && staProtocol.isWeightErr()) {
                    errMsg = "超重";
                    back = true;
                }
                if (!back && staProtocol.isBarcodeErr()) {
                    errMsg = "扫码失败";
                    back = true;
                }
                // 退回
                if (back) {
                    log.info("errmsg: " + errMsg);
//                        News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg);
                    MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
                    if (!staProtocol.isLoading()) {
                        continue;
                    }
                    if (!staProtocol.isPakMk()) {
                        continue;
                    }
                    staProtocol.setWorkNo(wrkNo);
                    News.info("{}入库回退:{},任务号:{}", pickSta.getStaNo(), errMsg, wrkNo);
                    wrkNo++;
                    staProtocol.setStaNo(pickSta.getBackSta().shortValue());
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    log.error("输送线下发1:" + 9999 + "," + pickSta.getBackSta());
                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
                    // led 异常显示
                    if (ledThread != null) {
                        MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
                    }
                    continue;
                }
                if (!Cools.isEmpty(barcode)) {
                    News.infoNoLog("" + mark + " - 1" + " - {}号条码扫描器检测条码信息:{}", pickSta.getBarcode(), barcode);
                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
                        continue;
                    }
                } else {
                    continue;
                }
                if (!Cools.isEmpty(barcode)) {
//                    News.info(""+mark+" - 1"+" - {}号条码扫描器检测条码信息:{}", pickSta.getBarcode(), barcode);
                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
@@ -407,9 +489,7 @@
                    continue;
                }
                // 获取拣料入库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
                if (staProtocol == null) {
                    continue;
                } else {
@@ -942,48 +1022,48 @@
                continue;
            }
            // 双深库位且浅库位有货,则需先对浅库位进行库位移转
            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
                News.warnNoLog("" + mark + " - 1" + " - 8" + " - 双深库位且浅库位有货,则需先对浅库位进行库位移转 : 开始执行 任务号={}", wrkMast.getWrkNo());
                String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!
                if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
                    News.warnNoLog("" + mark + " - 1" + " - 9" + " - // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!库位状态={}", shallowLoc.getLocSts());
                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
                    if (null == waitWrkMast) {
                        News.error("" + mark + " - 1" + " - 10" + " - {}库位异常,未检索到相应工作档!", shallowLocNo);
                    } else {
                        waitWrkMast.setIoPri(15D);
                        waitWrkMast.setModiTime(new Date());
                        if (wrkMastMapper.updateById(waitWrkMast) == 0) {
                            News.error("" + mark + " - 1" + " - 11" + " - 调整工作档优先级失败!工作号={}", waitWrkMast.getWrkNo());
                        }
                        continue;
                    }
                } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
                    News.warnNoLog("" + mark + " - 1" + " - 12" + " - // F、D  库位状态={}", shallowLoc.getLocSts());
                    // 此标记避免多次执行移库任务
                    if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
                        wrkMast.setUpdMk("Y");
                        wrkMast.setIoPri(14D);
                        wrkMastMapper.updateById(wrkMast);
                        // 生成工作档,将浅库位移转到新的库位中
                        moveLocForDeepLoc(slave, shallowLoc, mark);
                        // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行)
//                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
                    }
                    continue;
                } else if (shallowLoc.getLocSts().equals("Q")) {
                    News.warnNoLog("" + mark + " - 1" + " - 13" + " - // Q  库位状态={}", shallowLoc.getLocSts());
                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
                    if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
                        News.infoNoLog("" + mark + " - 1" + " - 14" + " - // F、D  工作状态(判断条件为==4)={}", waitWrkMast.getWrkSts());
                        continue;
                    }
                }
            }
//            // 双深库位且浅库位有货,则需先对浅库位进行库位移转
//            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
//                News.warnNoLog("" + mark + " - 1" + " - 8" + " - 双深库位且浅库位有货,则需先对浅库位进行库位移转 : 开始执行 任务号={}", wrkMast.getWrkNo());
//                String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
//                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
//                // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!
//                if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
//                    News.warnNoLog("" + mark + " - 1" + " - 9" + " - // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!库位状态={}", shallowLoc.getLocSts());
//                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
//                    if (null == waitWrkMast) {
//                        News.error("" + mark + " - 1" + " - 10" + " - {}库位异常,未检索到相应工作档!", shallowLocNo);
//                    } else {
//                        waitWrkMast.setIoPri(15D);
//                        waitWrkMast.setModiTime(new Date());
//                        if (wrkMastMapper.updateById(waitWrkMast) == 0) {
//                            News.error("" + mark + " - 1" + " - 11" + " - 调整工作档优先级失败!工作号={}", waitWrkMast.getWrkNo());
//                        }
//                        continue;
//                    }
//
//                } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
//                    News.warnNoLog("" + mark + " - 1" + " - 12" + " - // F、D  库位状态={}", shallowLoc.getLocSts());
//                    // 此标记避免多次执行移库任务
//                    if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
//                        wrkMast.setUpdMk("Y");
//                        wrkMast.setIoPri(14D);
//                        wrkMastMapper.updateById(wrkMast);
//                        // 生成工作档,将浅库位移转到新的库位中
//                        moveLocForDeepLoc(slave, shallowLoc, mark);
//                        // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行)
////                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
//                    }
//                    continue;
//                } else if (shallowLoc.getLocSts().equals("Q")) {
//                    News.warnNoLog("" + mark + " - 1" + " - 13" + " - // Q  库位状态={}", shallowLoc.getLocSts());
//                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
//                    if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
//                        News.infoNoLog("" + mark + " - 1" + " - 14" + " - // F、D  工作状态(判断条件为==4)={}", waitWrkMast.getWrkSts());
//                        continue;
//                    }
//                }
//            }
            News.warnNoLog("" + mark + " - 1" + " - 15" + " - 命令下发 : 工作号={},源排={},源列={},源层={},目标排={},目标列={},目标层={}", wrkMast.getWrkNo().shortValue()
                    , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()
                    , locMast.getRow1().shortValue(), locMast.getBay1().shortValue(), locMast.getLev1().shortValue());
@@ -1091,54 +1171,54 @@
                        break;
                    }
                    // 双深库位且浅库位有货,则需先对浅库位进行库位移转
                    if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
                        News.warnNoLog("" + mark + " - 2" + " - 6" + " - 双深库位且浅库位有货,则需先对浅库位进行库位移转 : 开始执行 任务号={}", wrkMast.getWrkNo());
                        String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                        // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!
                        if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
                            News.warnNoLog("" + mark + " - 2" + " - 7" + " - // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!库位状态={}", shallowLoc.getLocSts());
                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
                            if (null == waitWrkMast) {
                                News.error("{}库位异常,未检索到相应工作档!", shallowLocNo);
                            } else {
                                if (waitWrkMast.getWrkSts() == 11) {
                                    waitWrkMast.setIoPri(15D);
                                    waitWrkMast.setModiTime(new Date());
                                    if (wrkMastMapper.updateById(waitWrkMast) == 0) {
                                        News.error("" + mark + " - 2" + " - 8" + " - 调整工作档优先级失败!工作号={}", waitWrkMast.getWrkNo());
                                    }
                                    continue;
                                } else {
                                }
                            }
                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
                            News.warnNoLog("" + mark + " - 2" + " - 9" + " - // F、D  库位状态={}", shallowLoc.getLocSts());
//                    // 双深库位且浅库位有货,则需先对浅库位进行库位移转
//                    if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
//                        News.warnNoLog("" + mark + " - 2" + " - 6" + " - 双深库位且浅库位有货,则需先对浅库位进行库位移转 : 开始执行 任务号={}", wrkMast.getWrkNo());
//                        String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
//                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
//                        // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!
//                        if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
//                            News.warnNoLog("" + mark + " - 2" + " - 7" + " - // O.空库位、Q.拣料/盘点/并板再入库、S.入库预约、X.禁用 直接搬!库位状态={}", shallowLoc.getLocSts());
//                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
                            //2022-08-16 modify,不根据updmk标记移库任务(容易被取消导致堵塞),查询工作档是否存在任务
                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
                            // 此标记避免多次执行移库任务
//                            if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
//                                || Cools.isEmpty(waitWrkMast)) {
                            if (Cools.isEmpty(waitWrkMast)) {
                                wrkMast.setUpdMk("Y");
                                wrkMastMapper.updateById(wrkMast);
                                // 生成工作档,将浅库位移转到新的库位中
                                moveLocForDeepLoc(slave, shallowLoc, mark);
                            }
                            News.error("{}任务出库失败,浅库位堵塞!浅库位号:{}", wrkMast.getWrkNo(), shallowLocNo);
                            continue;
                        } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
                            News.warnNoLog("" + mark + " - 2" + " - 10" + " - // Q、S  库位状态={}", shallowLoc.getLocSts());
                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
                            if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
                                News.infoNoLog("" + mark + " - 2" + " - 11" + " - // F、D  工作状态(判断条件为==4)={}", waitWrkMast.getWrkSts());
                                continue;
                            }
                        }
                    }
//                            if (null == waitWrkMast) {
//                                News.error("{}库位异常,未检索到相应工作档!", shallowLocNo);
//                            } else {
//                                if (waitWrkMast.getWrkSts() == 11) {
//                                    waitWrkMast.setIoPri(15D);
//                                    waitWrkMast.setModiTime(new Date());
//                                    if (wrkMastMapper.updateById(waitWrkMast) == 0) {
//                                        News.error("" + mark + " - 2" + " - 8" + " - 调整工作档优先级失败!工作号={}", waitWrkMast.getWrkNo());
//                                    }
//                                    continue;
//                                } else {
//
//                                }
//                            }
//                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
//                            News.warnNoLog("" + mark + " - 2" + " - 9" + " - // F、D  库位状态={}", shallowLoc.getLocSts());
////                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
//                            //2022-08-16 modify,不根据updmk标记移库任务(容易被取消导致堵塞),查询工作档是否存在任务
//                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
//                            // 此标记避免多次执行移库任务
////                            if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
////                                || Cools.isEmpty(waitWrkMast)) {
//                            if (Cools.isEmpty(waitWrkMast)) {
//                                wrkMast.setUpdMk("Y");
//                                wrkMastMapper.updateById(wrkMast);
//                                // 生成工作档,将浅库位移转到新的库位中
//                                moveLocForDeepLoc(slave, shallowLoc, mark);
//                            }
//                            News.error("{}任务出库失败,浅库位堵塞!浅库位号:{}", wrkMast.getWrkNo(), shallowLocNo);
//                            continue;
//                        } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
//                            News.warnNoLog("" + mark + " - 2" + " - 10" + " - // Q、S  库位状态={}", shallowLoc.getLocSts());
//                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
//                            if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
//                                News.infoNoLog("" + mark + " - 2" + " - 11" + " - // F、D  工作状态(判断条件为==4)={}", waitWrkMast.getWrkSts());
//                                continue;
//                            }
//                        }
//                    }
                    // 已经存在吊车执行任务时,则过滤
                    if (wrkMastMapper.selectWorking(slave.getId()) != null) {