1
zhangchao
2024-09-07 c5e8e45124d314166d229bb63a9846f8d6b9c69b
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -224,29 +224,39 @@
                    }
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                    //过滤判断,防止拣料再入库货物,经过入库站再入库时,被退回到退库站
                    WrkMast wrkMast1 = wrkMastMapper.selectPakInStepBarcode(barcode);
                    if (wrkMast1 != null) {
                        if (wrkMast1.getIoType() == 103 || wrkMast1.getIoType() == 107 || wrkMast1.getIoType() == 104) {
                    WrkMast wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode);
                    if (wrkMast != null && wrkMast.getWrkSts() == 2) {
                        int wrkNo1 = basDevpService.count(new QueryWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
                        if (wrkNo1 != 0) {
                            News.error(barcode + "条码已存在状态为( 2.设备上走 )的数据,请查看WCS输送线界面,工作号={}", wrkMast.getWrkNo());
                            if (ledThread != null) {
                                News.error(":扫码失败,请重试");
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "条码已存在状态为( 2.设备上走 )的任务,工作号=" + wrkMast.getWrkNo()));
                            }
                            continue;
                        }
                    }
                    if (wrkMast != null) {
                        News.error("" + mark + " - 4" + " - 工作档中已存在该站状态为( 2.设备上走 )的数据,工作号={}", wrkMast.getWrkNo());
                        staProtocol.setWorkNo((short) 9999);
                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
                        barcodeThread.setBarcode("");
                        staProtocol.setWorkNo(Short.parseShort(wrkMast.getWrkNo() + ""));
                        staProtocol.setStaNo(Short.parseShort(wrkMast.getStaNo() + ""));
                        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) {
                            throw new CoolException("更新plc站点信息失败");
                            News.error(":更新plc站点信息失败");
                            log.error("输送线下发(存在设备上走的工作档,直接下发!)==>更新plc站点信息失败");
//                            throw new CoolException("更新plc站点信息失败");
                            continue;
                        }
                        // led 异常显示
                        if (ledThread != null) {
                            String errorMsg = "工作档已存在该条码号===>>" + barcode;
                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
                        }
                    }
                    WrkMast checkPick = wrkMastMapper.selectOne(new QueryWrapper<WrkMast>()
                            .eq("barcode", barcode)
                            .in("io_type", 107, 103, 57));
                    if (!Cools.isEmpty(checkPick)) {
                        continue;
                    }
@@ -500,7 +510,7 @@
                            wrkMast = wrkMast1;
                        }
                    }
                    if ((  wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
                        continue;
                    }
@@ -520,7 +530,7 @@
                    StaDesc staDesc = staDescService.getOne(wrapper);
                    if (Cools.isEmpty(staDesc)) {
                        News.error("" + mark + " - 2" + " - 入库路径不存在!type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
                        staProtocol.setWorkNo((short) 9989);
                        staProtocol.setWorkNo((short) 9999);
                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1));
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -653,7 +663,7 @@
                                crnThread.setResetFlag(true);
                            } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) {
                                crnThread.setResetFlagTwo(true);
                            } else {
                            } else if (statusTypeTwo == CrnStatusType.WAITING_All) {
                                crnThread.setResetFlag(true);
                                crnThread.setResetFlagTwo(true);
                            }
@@ -1358,6 +1368,8 @@
                if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
                    wrkMast.setWrkSts(4L);
                } else {
                    //TODO
                    News.info("状态不对,状态={},工作号={}", wrkMast.getWrkSts(), crnProtocol.getTaskNo());
                    continue;
                }
                Date now = new Date();