whycq
2024-05-02 c937e665ccbb763968d30ef2fad61c9eb935abfe
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -167,7 +167,10 @@
                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                }
                // 判断是否满足入库条件
                if (staProtocol.isAutoing()
@@ -179,16 +182,27 @@
                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
                        News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                        //条码为空或者不符合,退库到172站点
//                        staProtocol.setWorkNo((short)9999);
//                        staProtocol.setStaNo((short)172);
//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                        if (!result) {
//                            throw new CoolException("更新plc站点信息失败");
//                        }
                        staProtocol.setWorkNo(wrkNo);
                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
                        wrkNo++;
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        if (!result) {
                            throw new CoolException("更新plc站点信息失败");
                        }
                        continue;
                    }
                    //判断101和104是否是拣料、并板、盘点再入库   设备暂不支持101、104站盘点/拣料入库
                    WrkMast wrkMast1=wrkMastMapper.selectpj(inSta.getStaNo(),barcode);
                    if(!Cools.isEmpty(wrkMast1)){
                        if (wrkMast1.getIoType()!=1){
                            continue;
                        }
                    }
                    if( !Cools.isEmpty(barcode)&&!Cools.isEmpty(wrkMast1)){
                        log.error("101或104拣料、并板、盘点再入库", wrkMast1.getWrkNo());
                        continue;
                    }
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                    if (wrkMast != null) {
@@ -202,10 +216,16 @@
                    WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                            .eq("barcode", barcode)
                            .in("io_type", 107,103));
                            .in("io_type", 107,103,57,53));
                    if (!Cools.isEmpty(checkPick)) {
                        continue;
                    }
//                    WrkMast checkPick2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
//                            .eq("barcode", barcode)
//                            .in("io_type", 57,53));
//                    if (!Cools.isEmpty(checkPick2)) {
//                        continue;
//                    }
                    try {
@@ -235,6 +255,8 @@
                                News.error(methodName + ":更新plc站点信息失败");
                                throw new CoolException("更新plc站点信息失败");
                            }else {
                                ledThread.errorReset();
                            }
@@ -415,7 +437,7 @@
                if (!Cools.isEmpty(barcode)) {
//                    log.info("{}号条码扫描器检测条码信息:{}", pickSta.getBarcode(), barcode);
                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode) ) {
                        if (!staProtocol.isLoading()) {
                            continue;
                        }
@@ -532,12 +554,16 @@
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        continue;
                    }
                    if (ledThread != null) {
                        ledThread.errorReset();
                    }
                    // 更新站点信息 且 下发plc命令
                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    if (!result) {
                        News.error(methodName + ":发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId());
@@ -1814,9 +1840,7 @@
                        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 {
                        if (!Cools.isEmpty(locDetl)) {
                            total = locDetl.getAnfme();
                        }
                        if (wrkMast.getIoType() == 101) {