自动化立体仓库 - WMS系统
skyouc
昨天 3d8242c78bde80d129aff622c20e0e2412aaf6c4
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -418,11 +418,9 @@
        // 生成工作号
        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
        String wrkCode = null;
        //TODO 如果机台号不为空,判断当前机台与当前出库库位是否在同一库区或同一台堆垛机(相同站点)
        //TODO 1. 如果是同一台堆垛机,生成移库(出库)任务  2. 如果不是,生成出库任务,再生成入库任务
        //TODO 另一种方案,不管是否当前巷道,统一出库,再入库
        if (!Objects.isNull(deviceNo)) {
            wrkCode = workNo + "-1";
            ioType = 101;
            generateOutStock(taskDto, userId, workNo, wrkCode, now, ioType, locMast, staDesc, deviceNo);
        } else {
            generateOutStock(taskDto, userId, workNo, wrkCode, now, ioType, locMast, staDesc, null);
@@ -541,7 +539,16 @@
            wrkDetl.setStandby1(locDto.getStandby1());
            wrkDetl.setBatch(locDto.getBatch());
            wrkDetl.setOrderNo(locDto.getOrderNo());
            wrkDetl.setAnfme(locDto.getAnfme()); // 数量
//            wrkDetl.setAnfme(locDto.getAnfme()); // 数量
            LocDetl locDel = locDetlService.selectOne(new EntityWrapper<LocDetl>()
                    .eq("loc_no", locDto.getLocNo())
                    .eq("batch", locDto.getBatch())
                    .eq(!Objects.isNull(locDto.getBarcode()), "barcode", locDto.getBarcode())
                    .eq("matnr", locDto.getMatnr()));
            if (Objects.isNull(locDel)) {
                throw new CoolException("数据错误,库存明细不存在!!");
            }
            wrkDetl.setAnfme(locDel.getAnfme());
            wrkDetl.setAppeTime(now);
            wrkDetl.setAppeUser(userId);
            wrkDetl.setModiTime(now);
@@ -1324,9 +1331,9 @@
            throw new CoolException(workNo + "工作档不存在");
        }
        Integer ioType = wrkMast.getIoType() - 50;
//        int wokNo = wrkMast.getWrkNo();
        int wokNo = wrkMast.getWrkNo();
        // 入出库类型判断
//        if (Objects.isNull(wrkMast.getWrkCode())) {
        if (Objects.isNull(wrkMast.getWrkCode())) {
        if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
            throw new CoolException("当前入出库类型无法进行操作");
        }
@@ -1334,24 +1341,12 @@
        if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
            throw new CoolException("当前工作状态无法进行操作");
        }
//        }
        } else {
            if (wrkMast.getIoType() == 103) {
                ioType = 1;
            }
        }
//        else {
//            if (wrkMast.getIoType() == 103) {
//                ioType = 1;
//            } else if (wrkMast.getIoType() == 101) {
//                ioType = 10;
//            }
//            wokNo = commonService.getWorkNo(0);
//        }
        // 保存工作明细档历史档
//        if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
//            throw new CoolException("保存工作明细档历史档失败");
////        }
//        // 保存工作主档历史档
//        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
//            throw new CoolException("保存工作主档历史档失败");
//        }
        // 获取目标站
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", ioType)
@@ -1458,6 +1453,13 @@
        if (!locMastService.updateById(locMast)) {
            throw new CoolException("修改库位状态失败");
        }
        wrkMast.setWrkCode(null);
        if (!wrkMastService.updateById(wrkMast)) {
            throw new CoolException("任务档更新失败!!");
        }
    }