自动化立体仓库 - WMS系统
#
luxiaotao1123
2020-07-11 329120ef8dec5526adbdf1450c4916a9203cf62b
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -141,7 +141,7 @@
        }
        if (!locDetlDtos.isEmpty()) {
            // 启动出库开始 101.出库
            stockOut(staNo, locDetlDtos, 101, userId);
            stockOut(staNo, locDetlDtos, null, userId);
        } else {
            throw new CoolException("库位物料不存在");
        }
@@ -169,7 +169,9 @@
        // 生成工作档
        for (OutLocDto dto : dtos) {
            // 判断入出库类型:101.全板出库 or 103.拣料出库
            ioType = (dto.isAll() && (ioType==101||ioType==103))?101:103;
            if (ioType == null) {
                ioType = dto.isAll() ? 101 : 103;
            }
            // 获取库位
            LocMast locMast = locMastService.selectById(dto.getLocNo());
            // 获取路径
@@ -657,23 +659,17 @@
        if (Cools.isEmpty(wrkMast)){
            throw new CoolException(workNo+"工作档不存在");
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
        String locNo = wrkMast.getSourceLocNo();
        // 拣料作业判断
        if (wrkMast.getIoType() != 103) {
            throw new CoolException("入出库类型不是103.拣料出库");
        // 入出库类型判断
        if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
            throw new CoolException("当前入出库类型无法进行操作");
        }
        // 工作状态判断
        if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
            throw new CoolException("当前工作状态不能拣料入库");
            throw new CoolException("当前工作状态无法进行操作");
        }
        // 保存工作明细档历史档
//        if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
//            throw new CoolException("保存工作明细档历史档失败");
//        }
        // 删除工作明细档
//        if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
//            throw new CoolException("删除工作明细档档历史档失败");
//        }
        // 保存工作主档历史档
        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
@@ -681,7 +677,7 @@
        }
        // 获取目标站
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", 53)  // type_no: 53.拣料再入库
                .eq("type_no", wrkMast.getIoType() - 50)
                .eq("stn_no", wrkMast.getStaNo()) // 作业站点 = 拣料出库的目标站
                .eq("crn_no", wrkMast.getCrnNo()); // 堆垛机号
        StaDesc staDesc = staDescService.selectOne(wrapper);
@@ -691,7 +687,7 @@
        // 堆垛机站点(目标站)
        Integer staNo = staDesc.getCrnStn();
        // 更新工作档数据状态
        wrkMast.setIoType(53); // 入出库类型: 53.拣料再入库
        wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57
        wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走
        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站
        wrkMast.setStaNo(staNo); // 目标站
@@ -702,23 +698,6 @@
        if (!wrkMastService.updateById(wrkMast)) {
            throw new CoolException("更新工作档数据状态失败");
        }
//        // 更新/删除拣料库存明细
//        for (WrkDetl wrkDetl : wrkDetls) {
//            LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", wrkDetl.getMatnr()));
//            // 库存数量计算
//            locDetl.setAnfme(locDetl.getAnfme() - wrkDetl.getAnfme());
//            if (locDetl.getAnfme() > 0) {
//                locDetl.setModiTime(new Date());
//                locDetl.setModiUser(userId);
//                if (!locDetlService.updateById(locDetl)) {
//                    throw new CoolException("更新库存明细失败");
//                }
//            } else {
//                if (!locDetlService.delete(new EntityWrapper<>(locDetl))) {
//                    throw new CoolException("删除库存明细失败");
//                }
//            }
//        }
        // 修改库位状态 Q.拣料/盘点/并板再入库
        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
        locMast.setLocType("Q");