lty
8 天以前 2c07ded302650568c80a1fe1bc6a9522b978bd36
#调度
3个文件已修改
529 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 517 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/StaProtocol.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -137,6 +137,8 @@
                }
                String barcode = barcodeThread.getBarcode();
                if(staProtocolIn.getStamp() == 1) {
                    log.error("生成任务中");
                    WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                            .eq("barcode", barcode)
                            .in("io_type", 107, 103, 57));
@@ -164,13 +166,12 @@
                        if (jsonObject.getInteger("code").equals(200)) {
                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                            barcodeThread.setBarcode("");
                            staProtocol.setWorkNo(dto.getWorkNo());
                            //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
                            staProtocol.setStaNo(dto.getStaNo().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
                            staProtocolIn.setWorkNo(dto.getWorkNo());
//                            //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
//                            staProtocol.setStaNo(dto.getStaNo().shortValue());
//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocolIn));
                            log.error("输送线下发2:" + dto.getWorkNo() + "," + dto.getStaNo());
                            ledThread.errorReset();
                            log.error("组托请求后LED错误清除");
@@ -179,68 +180,69 @@
                                throw new CoolException("更新plc站点信息失败");
                            }
                        } else {
                            if (jsonObject.getString("msg").equals("工作档已存在")) {
                                continue;
                            }
                            staProtocol.setWorkNo(wrkNo);
                            wrkNo++;
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            log.error("输送线下发2:" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
//                            if (ledThread != null) {
                            String errorMsg = jsonObject.getString("msg");
                            if (!Cools.isEmpty(errorMsg)) {
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                            }
//                            }
//                            News.error(methodName + ":请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                            continue;
                        }
//                        else {
//                            if (jsonObject.getString("msg").equals("工作档已存在")) {
//                                continue;
//                            }
//                            staProtocol.setWorkNo(wrkNo);
//                            wrkNo++;
//                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
//                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                            log.error("输送线下发2:" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
//
////                            if (ledThread != null) {
//                            String errorMsg = jsonObject.getString("msg");
//                            if (!Cools.isEmpty(errorMsg)) {
//                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
//                            }
////                            }
////                            News.error(methodName + ":请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
//                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    }
                }
                }else{
                    if (staProtocol == null) {
                        continue;
                    } else {
                        staProtocol = staProtocol.clone();
                    }
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                // 尺寸检测异常
                boolean back = false;
                String errMsg = "";
                if (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.getWeight() > 1000) {
                    errMsg = "超重或未读取";
                    back = true;
                }
                if (!back && staProtocol.isBarcodeErr()) {
                    errMsg = "扫码失败";
                    back = true;
                }
                    // 尺寸检测异常
                    boolean back = false;
                    String errMsg = "";
                    if (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.getWeight() > 1000) {
                        errMsg = "超重或未读取";
                        back = true;
                    }
                    if (!back && staProtocol.isBarcodeErr()) {
                        errMsg = "扫码失败";
                        back = true;
                    }
//                if(staProtocol.getWeight() <= 0 ){
//                    continue;
//                }
@@ -251,48 +253,48 @@
//                News.info("{}重量", staProtocol.getWeight());
                // 退回
                if (back) {
                    log.info("errmsg: " + errMsg);
                    // 退回
                    if (back) {
                        log.info("errmsg: " + errMsg);
//                        News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg);
                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                    if (!staProtocol.isLoading()) {
                        continue;
                    }
                    if (!staProtocol.isPakMk()) {
                        continue;
                    }
                    staProtocol.setWorkNo(wrkNo);
                    News.info("{}PLC入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                    wrkNo++;
                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    log.error("输送线下发1:" + wrkNo + "," + inSta.getBackSta());
                }
                // 判断是否满足入库条件
                if (staProtocol.isAutoing()
                        && staProtocol.isLoading()
                        && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk()
                        && staProtocol.isPakMk()) {
                    if (Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
                        News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                        if (!staProtocol.isLoading()) {
                            continue;
                        }
                        if (!staProtocol.isPakMk()) {
                            continue;
                        }
                        staProtocol.setWorkNo(wrkNo);
                        News.info("{}barcode入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                        News.info("{}PLC入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                        wrkNo++;
                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        log.error("输送线下发1:" + wrkNo + "," + inSta.getBackSta());
                        continue;
                    }
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                    if (wrkMast != null) {
                    // 判断是否满足入库条件
                    if (staProtocol.isAutoing()
                            && staProtocol.isLoading()
                            && staProtocol.isInEnable()
                            && !staProtocol.isEmptyMk()
                            && staProtocol.isPakMk()) {
                        if (Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
                            News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                            staProtocol.setWorkNo(wrkNo);
                            News.info("{}barcode入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                            wrkNo++;
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            log.error("输送线下发1:" + wrkNo + "," + inSta.getBackSta());
                            continue;
                        }
                        // 判断重复工作档
                        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){
//                            if (ledThread != null) {
@@ -300,9 +302,9 @@
//                            }
//
//                        }
                        News.error(barcode + "条码已存在状态为( 2.设备上走 )的数据,请查看WCS输送线界面,工作号={}", wrkMast.getWrkNo());
                            News.error(barcode + "条码已存在状态为( 2.设备上走 )的数据,请查看WCS输送线界面,工作号={}", wrkMast.getWrkNo());
//                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "条码已存在状态为( 2.设备上走 )的任务,工作号=" + wrkMast.getWrkNo()));
                        continue;
                            continue;
//                        barcodeThread.setBarcode("");
//                        staProtocol.setWorkNo(wrkMast.getWrkNo());
//                        staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
@@ -321,77 +323,266 @@
//                            continue;
//                        }
                    }
                    WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                            .eq("barcode", barcode)
                            .in("io_type", 107, 103, 57));
                    if (!Cools.isEmpty(checkPick)) {
                        continue;
                    }
                    try {
                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
                        SearchLocParam param = new SearchLocParam();
                        locTypeDto.setLocType1((short) 1);
                        param.setBarcode(barcode);
                        param.setIoType(1);
                        param.setSourceStaNo(inSta.getStaNo());
                        param.setLocType1(locTypeDto.getLocType1());
                        param.setWeight(staProtocol.getWeight());
                        String response = new HttpHandler.Builder()
                                .setTimeout(30,TimeUnit.SECONDS)
                                .setUri(wmsUrl)
                                .setPath("/rpc/pakin/loc/v1")
                                .setJson(JSON.toJSONString(param))
                                .build()
                                .doPost();
                        JSONObject jsonObject = JSON.parseObject(response);
                        if (jsonObject.getInteger("code").equals(200)) {
                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                            barcodeThread.setBarcode("");
                            staProtocol.setWorkNo(dto.getWorkNo());
                            //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
                            staProtocol.setStaNo(dto.getStaNo().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            log.error("输送线下发2:" + dto.getWorkNo() + "," + dto.getStaNo());
                            ledThread.errorReset();
                            log.error("组托请求后LED错误清除");
                            if (!result) {
                                News.error(methodName + ":更新plc站点信息失败");
                                throw new CoolException("更新plc站点信息失败");
                            }
                        } else {
                            if (jsonObject.getString("msg").equals("工作档已存在")) {
                                continue;
                            }
                            staProtocol.setWorkNo(wrkNo);
                            wrkNo++;
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            log.error("输送线下发2:" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
//                            if (ledThread != null) {
                            String errorMsg = jsonObject.getString("msg");
                            if (!Cools.isEmpty(errorMsg)) {
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                            }
//                            }
//                            News.error(methodName + ":请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                        }
                        WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                                .eq("barcode", barcode)
                                .in("io_type", 107, 103, 57));
                        if (!Cools.isEmpty(checkPick)) {
                            continue;
                        }
//                        try {
//                            LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
//
//                            SearchLocParam param = new SearchLocParam();
//                            locTypeDto.setLocType1((short) 1);
//                            param.setBarcode(barcode);
//                            param.setIoType(1);
//                            param.setSourceStaNo(inSta.getStaNo());
//                            param.setLocType1(locTypeDto.getLocType1());
//                            param.setWeight(staProtocol.getWeight());
//                            String response = new HttpHandler.Builder()
//                                    .setTimeout(30,TimeUnit.SECONDS)
//                                    .setUri(wmsUrl)
//                                    .setPath("/rpc/pakin/loc/v1")
//                                    .setJson(JSON.toJSONString(param))
//                                    .build()
//                                    .doPost();
//                            JSONObject jsonObject = JSON.parseObject(response);
//                            if (jsonObject.getInteger("code").equals(200)) {
//                                StartupDto dto = jsonObject.getObject("data", StartupDto.class);
//                                barcodeThread.setBarcode("");
//                                staProtocol.setWorkNo(dto.getWorkNo());
//                                //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
//                                staProtocol.setStaNo(dto.getStaNo().shortValue());
//                                devpThread.setPakMk(staProtocol.getSiteId(), false);
//                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                                log.error("输送线下发2:" + dto.getWorkNo() + "," + dto.getStaNo());
//
//                                ledThread.errorReset();
//                                log.error("组托请求后LED错误清除");
//
//                                if (!result) {
//                                    News.error(methodName + ":更新plc站点信息失败");
//
//                                    throw new CoolException("更新plc站点信息失败");
//                                }
//                            } else {
//                                if (jsonObject.getString("msg").equals("工作档已存在")) {
//                                    continue;
//                                }
//                                staProtocol.setWorkNo(wrkNo);
//                                wrkNo++;
//                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
//                                devpThread.setPakMk(staProtocol.getSiteId(), false);
//                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                                log.error("输送线下发2:" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
//
////                            if (ledThread != null) {
//                                String errorMsg = jsonObject.getString("msg");
//                                if (!Cools.isEmpty(errorMsg)) {
//                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
//                                }
////                            }
////                            News.error(methodName + ":请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
//                            }
//
//
//                        } catch (Exception e) {
//                            e.printStackTrace();
//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    }
                }
//                if (staProtocol == null) {
//                    continue;
//                } else {
//                    staProtocol = staProtocol.clone();
//                }
//
//                // 尺寸检测异常
//                boolean back = false;
//                String errMsg = "";
//                if (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.getWeight() > 1000) {
//                    errMsg = "超重或未读取";
//                    back = true;
//                }
//                if (!back && staProtocol.isBarcodeErr()) {
//                    errMsg = "扫码失败";
//                    back = true;
//                }
////                if(staProtocol.getWeight() <= 0 ){
////                    continue;
////                }
////                if (!back && staProtocol.getWeight() == 0.0) {
////                    errMsg = "重量获取失败";
////                    back = true;
////                }
//
////                News.info("{}重量", staProtocol.getWeight());
//
//                // 退回
//                if (back) {
//                    log.info("errmsg: " + errMsg);
////                        News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg);
//                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
//
//                    if (!staProtocol.isLoading()) {
//                        continue;
//                    }
//                    if (!staProtocol.isPakMk()) {
//                        continue;
//                    }
//                    staProtocol.setWorkNo(wrkNo);
//                    News.info("{}PLC入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
//                    wrkNo++;
//                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
//                    devpThread.setPakMk(staProtocol.getSiteId(), false);
//                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                    log.error("输送线下发1:" + wrkNo + "," + inSta.getBackSta());
//                }
//
//                // 判断是否满足入库条件
//                if (staProtocol.isAutoing()
//                        && staProtocol.isLoading()
//                        && staProtocol.isInEnable()
//                        && !staProtocol.isEmptyMk()
//                        && staProtocol.isPakMk()) {
//                    if (Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
//                        News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
//
//                        staProtocol.setWorkNo(wrkNo);
//                        News.info("{}barcode入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
//                        wrkNo++;
//                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
//                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                        log.error("输送线下发1:" + wrkNo + "," + inSta.getBackSta());
//                        continue;
//                    }
//                    // 判断重复工作档
//                    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){
////                            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>()
//                            .eq("barcode", barcode)
//                            .in("io_type", 107, 103, 57));
//                    if (!Cools.isEmpty(checkPick)) {
//                        continue;
//                    }
//                    try {
//                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
//
//                        SearchLocParam param = new SearchLocParam();
//                        locTypeDto.setLocType1((short) 1);
//                        param.setBarcode(barcode);
//                        param.setIoType(1);
//                        param.setSourceStaNo(inSta.getStaNo());
//                        param.setLocType1(locTypeDto.getLocType1());
//                        param.setWeight(staProtocol.getWeight());
//                        String response = new HttpHandler.Builder()
//                                .setTimeout(30,TimeUnit.SECONDS)
//                                .setUri(wmsUrl)
//                                .setPath("/rpc/pakin/loc/v1")
//                                .setJson(JSON.toJSONString(param))
//                                .build()
//                                .doPost();
//                        JSONObject jsonObject = JSON.parseObject(response);
//                        if (jsonObject.getInteger("code").equals(200)) {
//                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
//                            barcodeThread.setBarcode("");
//                            staProtocol.setWorkNo(dto.getWorkNo());
//                            //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
//                            staProtocol.setStaNo(dto.getStaNo().shortValue());
//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
//                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                            log.error("输送线下发2:" + dto.getWorkNo() + "," + dto.getStaNo());
//
//                            ledThread.errorReset();
//                            log.error("组托请求后LED错误清除");
//
//                            if (!result) {
//                                News.error(methodName + ":更新plc站点信息失败");
//
//                                throw new CoolException("更新plc站点信息失败");
//                            }
//                        } else {
//                            if (jsonObject.getString("msg").equals("工作档已存在")) {
//                                continue;
//                            }
//                            staProtocol.setWorkNo(wrkNo);
//                            wrkNo++;
//                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
//                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                            log.error("输送线下发2:" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
//
////                            if (ledThread != null) {
//                            String errorMsg = jsonObject.getString("msg");
//                            if (!Cools.isEmpty(errorMsg)) {
//                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
//                            }
////                            }
////                            News.error(methodName + ":请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
//                        }
//
//
//                    } catch (Exception e) {
//                        e.printStackTrace();
//                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    }
//
//                }
            }
        }
src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -59,7 +59,7 @@
    private String nearbySta;
    //gl快速生成任务  stamp=1时直接生成任务
    private Integer stamp = 0;
    private short stamp = 0;
    // 外形检测 ------------------------------------------------------------------------
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -388,7 +388,7 @@
                for (int i = 0; i < staNosInSize; i++) {
                    Integer siteId = staNosIns.get(i);
                    StaProtocol staProtocol = station.get(siteId);
                    staProtocol.setStamp(siemensS7Net.getByteTransform().TransInt32(result.Content, i*6));
                    staProtocol.setStamp( siemensS7Net.getByteTransform().TransInt16(resultIn.Content, i*6));
                }
            }
@@ -484,15 +484,17 @@
        if(resultIn.IsSuccess){
            for (int i = 0; i < staNosInSize; i++) {
                Integer siteId = staNosIns.get(i);
                if(staProtocol.getSiteId() == siteId){
                    offset = i;
                if(staProtocol.getSiteId().equals(siteId)){
                    offset = i*6 + 2;
                    break;
                }
            }
        }
        do {
            write = siemensS7Net.Write("DB1000." + offset*6 + 2,staProtocol.getWorkNo());    // 工作号
            write = siemensS7Net.Write("DB1000.0" + offset,staProtocol.getWorkNo());    // 工作号
            if(write.IsSuccess ){
                log.error("工作号{}",staProtocol.getWorkNo());
                log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                break;
            }