#
luxiaotao1123
2022-10-24 81a40c77df2ee8bf368a2aa4751a6f86e7ff5646
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -153,6 +153,11 @@
                        continue;
                    }
                    // 过滤盘点/拣料/并板任务
                    if (null != wrkMastMapper.selectPickStepByBarcode(barcode)) {
                        continue;
                    }
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                    if (wrkMast != null) {
@@ -342,7 +347,7 @@
                        && staProtocol.isInEnable()
                        // 0 - 9990 或者 9996
                        && ((staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990) || staProtocol.getWorkNo() == 9996)
                        && staProtocol.getStaNo().equals(staProtocol.getWorkNo())
                        && staProtocol.getStaNo().equals(staProtocol.getSiteId().shortValue())
                        && staProtocol.isPakMk()){
                    // 获取条码扫描仪信息
@@ -425,16 +430,18 @@
                        if (code.equals(200)) {
                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                            // 获取目标站
                            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                                    .eq("type_no", wrkMast.getIoType() - 50)
                                    .eq("stn_no", pickSta.getStaNo()) // 作业站点 = 拣料出库的目标站
                                    .eq("crn_no", dto.getCrnNo()); // 堆垛机号
                            StaDesc staDesc = staDescService.selectOne(wrapper);
                            if (Cools.isEmpty(staDesc)) {
                                log.error("入库路径不存在!type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
                                continue;
                            }
//                            // 获取目标站
//                            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
//                                    .eq("type_no", wrkMast.getIoType() - 50)
//                                    .eq("stn_no", pickSta.getStaNo()) // 作业站点 = 拣料出库的目标站
//                                    .eq("crn_no", dto.getCrnNo()); // 堆垛机号
//                            StaDesc staDesc = staDescService.selectOne(wrapper);
//                            if (Cools.isEmpty(staDesc)) {
//                                log.error("入库路径不存在!type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
//                                continue;
//                            }
//                            // 堆垛机站点(目标站)
//                            Integer staNo = staDesc.getCrnStn();
                            // 保存工作明细档历史档
//                        if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
@@ -445,13 +452,12 @@
                                throw new CoolException(wrkMast.getWrkNo() + "保存工作主档历史档失败");
                            }
                            // 堆垛机站点(目标站)
                            Integer staNo = staDesc.getCrnStn();
                            String sourceLocNo = wrkMast.getSourceLocNo().trim();
                            // 更新工作档数据状态
                            wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57
                            wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走
                            wrkMast.setSourceStaNo(pickSta.getStaNo()); // 源站
                            wrkMast.setStaNo(staNo); // 目标站
                            wrkMast.setStaNo(dto.getStaNo()); // 目标站
                            wrkMast.setCrnNo(dto.getCrnNo());
                            wrkMast.setLocNo(dto.getLocNo()); // 目标库位 = 出库时的源库位
                            wrkMast.setSourceLocNo(""); // 源库位清空
@@ -463,7 +469,7 @@
                                throw new CoolException(wrkMast.getWrkNo() + "更新工作档数据状态失败");
                            }
                            // 修改源库位状态 O.空库位
                            LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
                            LocMast locMast = locMastService.selectById(sourceLocNo);
                            locMast.setLocSts("O");
                            locMast.setModiTime(new Date());
                            if (!locMastService.updateById(locMast)) {
@@ -477,7 +483,7 @@
                                throw new CoolException(wrkMast.getWrkNo() + "修改目标库位状态 Q.拣料/盘点/并板再入库");
                            }
                            // 库存明细转移
                            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
                            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) {
                                throw new CoolException(wrkMast.getWrkNo() + "任务库存明细转移失败!!!");
                            }
@@ -689,7 +695,19 @@
                continue;
            }
            // 过滤
            // 检测是否存在出库任务
//            WrkMast pakoutWrkMast = wrkMastMapper.selectPakout(slave.getId(), null);
//            if (null != pakoutWrkMast) {
//                if ((pakoutWrkMast.getIoType() == 103 || pakoutWrkMast.getIoType() == 104 || pakoutWrkMast.getIoType() == 107)
//                        && pakoutWrkMast.getWrkSts() == 17
//                        && basDevpService.selectByWrkNo(pakoutWrkMast.getWrkNo()) != null
//                ) {
//
//                } else {
//                    log.error("{}入库任务无法作业,因存在出库中任务!", wrkMast.getWrkNo());
//                    continue;
//                }
//            }
            if (null != wrkMastMapper.selectPakout(slave.getId(), null)) {
                log.error("{}入库任务无法作业,因存在出库中任务!", wrkMast.getWrkNo());
                continue;
@@ -1000,6 +1018,22 @@
                            SteThread steThread = queryIdleCar(wrkMast);
                            if (steThread != null) {
                                // 没有其他任务
//                                boolean hasPakout = true;
//                                WrkMast pakoutWrkMast = wrkMastMapper.selectPakout(slave.getId(), steNo);
//                                if (null != pakoutWrkMast) {
//                                    if ((pakoutWrkMast.getIoType() == 103 || pakoutWrkMast.getIoType() == 104 || pakoutWrkMast.getIoType() == 107)
//                                            && pakoutWrkMast.getWrkSts() == 17
//                                            && basDevpService.selectByWrkNo(pakoutWrkMast.getWrkNo()) != null
//                                    ) {
//                                        hasPakout = false;
//                                    }
//                                } else {
//                                    hasPakout = false;
//                                }
//                                if (!hasPakout) {
//                                    // 让小车等待搬运待续
//                                    this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getSourceLocNo());
//                                }
                                if (null == wrkMastMapper.selectPakout(slave.getId(), steNo)) {
                                    // 让小车等待搬运待续
                                    this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getSourceLocNo());