pjb
2024-06-26 ecb93482982b82008b37de0ec67d2afa9cb60b13
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -162,19 +162,19 @@
                    back = true;
                }
                if (!back && devp.getId() == 2) {
                    if(staProtocol.getWorkNo() == 9907 && '5' != barcode.charAt(0)){
                        errMsg = "条码5只能入7排";
                        back = true;
                    }
                    if(staProtocol.getWorkNo() == 9906 && '5' == barcode.charAt(0)){
                        errMsg = "条码5不能入6排";
                        back = true;
                    }
                }
//                if (!back && devp.getId() == 2) {
//                    if(staProtocol.getWorkNo() == 9907 && '5' != barcode.charAt(0)){
//                        errMsg = "条码5只能入7排";
//                        back = true;
//                    }
//                    if(staProtocol.getWorkNo() == 9906 && '5' == barcode.charAt(0)){
//                        errMsg = "条码5不能入6排";
//                        back = true;
//                    }
//                }
                // 退回
                if (back) {
                if (back && devp.getId() == 2) {
//                    News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg);
//                    if(!staProtocol.isOutEnable()){
//                        continue;
@@ -206,7 +206,7 @@
                            continue;
                        }
                    }
                    if (wrkMast != null) {
                    if (wrkMast != null && devp.getId() == 2) {
                        News.warn(""+mark+" - 4"+" - 工作档中已存在该站状态为( 2.设备上走 )的数据,工作号={}", wrkMast.getWrkNo());
                        staProtocol.setWorkNo((short)9999);
                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
@@ -262,18 +262,21 @@
                                ledCommand.setTitle("全板入库");
                                ledCommand.setLocNo(dto.getLocNo());
                                ledCommand.setStaNo(dto.getStaNo());
                                ledCommand.setBarcode(barcode);
                                commands.add(ledCommand);
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, commands));
//                                ledThread.errorReset();
                            }
                        } else {
                            News.error(""+mark+" - 5"+" - 请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                            staProtocol.setWorkNo((short)9999);
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            if (!result) {
                                throw new CoolException("更新plc站点信息失败");
                            if(devp.getId() == 2) {
                                staProtocol.setWorkNo((short)9999);
                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
                                devpThread.setPakMk(staProtocol.getSiteId(), false);
                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                if (!result) {
                                    throw new CoolException("更新plc站点信息失败");
                                }
                            }
                            // led 异常显示
@@ -823,8 +826,17 @@
                    News.error(""+mark+" - 1"+" - 2"+" - 入库 ===>> 堆垛机站点在数据库不存在, 站点编号={}", crnStn.getStaNo());
                    continue;
                }
                // 获取工作状态为2(设备上走)的入库工作档
                WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
                if (null == wrkMast) {
                    News.infoNoLog(""+mark+" - 1"+" - 4"+" - 查询无待入库数据--wrk_sts=2, 工作号={}", staProtocol.getWorkNo());
//                log.error("查询无待入库数据--wrk_sts=2, 工作号={}", staProtocol.getWorkNo());
                    continue;
                }
                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() <= 9000 && staProtocol.isInEnable()
                if (staProtocol.isAutoing() && staProtocol.isLoading() &&
                        (staProtocol.getWorkNo() <= 9000 || (slave.getId() == 1 && (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57)))
                        && staProtocol.isInEnable()
                        && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
                    flag = true;
                }
@@ -835,13 +847,7 @@
                            +"能入信号(wms设置).equals(\"Y\")"+staDetl.getCanining());
                    continue;
                }
                // 获取工作状态为2(设备上走)的入库工作档
                WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
                if (null == wrkMast) {
                    News.infoNoLog(""+mark+" - 1"+" - 4"+" - 查询无待入库数据--wrk_sts=2, 工作号={}", staProtocol.getWorkNo());
//                log.error("查询无待入库数据--wrk_sts=2, 工作号={}", staProtocol.getWorkNo());
                    continue;
                }
                // 获取库位信息
                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
                if (locMast == null) {
@@ -1644,10 +1650,11 @@
                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                ledCommand.setLocNo(wrkMast.getLocNo());
                ledCommand.setStaNo(wrkMast.getStaNo());
                ledCommand.setBarcode(wrkMast.getBarcode());
//                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
                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(),wrkDetl.getSpecs())));
                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getSpecs(),wrkDetl.getBatch(),wrkDetl.getMemo())));
                }
                commands.add(ledCommand);
            }