自动化立体仓库 - WMS系统
#
1
昨天 c90f42702b056664dbb3502a14041ba902273665
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -188,33 +188,37 @@
    @Override
    @Transactional
    public void startupFullTakeStore(StockOutParam param, Long userId) {
        // 目标站点状态检测
        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
        // 获取库位明细
        List<LocDetlDto> locDetlDtos = new ArrayList<>();
        for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
            if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getBrand()
                        ,paramLocDetl.getStandby1(),paramLocDetl.getStandby2(),paramLocDetl.getStandby3(),paramLocDetl.getBoxType1(),paramLocDetl.getBoxType2(),paramLocDetl.getBoxType3());
                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
        try{
            // 目标站点状态检测
            BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
            // 获取库位明细
            List<LocDetlDto> locDetlDtos = new ArrayList<>();
            for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
                if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
                    LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getBrand()
                            ,paramLocDetl.getStandby1(),paramLocDetl.getStandby2(),paramLocDetl.getStandby3(),paramLocDetl.getBoxType1(),paramLocDetl.getBoxType2(),paramLocDetl.getBoxType3());
                    if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
                }
            }
        }
        if (!locDetlDtos.isEmpty()) {
            // 库位号集合
            List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
            String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList);
            if (firstFrozenLocNo != null) {
                throw new CoolException(firstFrozenLocNo + "库位已被冻结!");
            if (!locDetlDtos.isEmpty()) {
                // 库位号集合
                List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
                String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList);
                if (firstFrozenLocNo != null) {
                    throw new CoolException(firstFrozenLocNo + "库位已被冻结!");
                }
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
                if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
                    // 启动出库开始 101.出库
                    stockOut(staNo, locDetlDtos, null, userId);
                }else {
                    throw new CoolException("所选库位存在状态不为F、D的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$());
                }
            } else {
                throw new CoolException("库存不存在");
            }
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
                // 启动出库开始 101.出库
                stockOut(staNo, locDetlDtos, null, userId);
            }else {
                throw new CoolException("所选库位存在状态不为F、D的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$());
            }
        } else {
            throw new CoolException("库存不存在");
        } catch (Exception e){
            throw new CoolException(e.getMessage());
        }
    }
@@ -454,6 +458,7 @@
                    throw new CoolException("预约库位状态失败,库位号:"+dto.getLocNo());
                }
            } else {
                log.error(dto.getLocNo() + "库位不是在库状态");
                throw new CoolException(dto.getLocNo() + "库位不是在库状态");
            }
@@ -461,12 +466,20 @@
                // 增加AGV库存中转数量
                if (basAgvLocDetls != null){
                    for (BasAgvLocDetl basAgvLocDetl : basAgvLocDetls) {
                        basAgvLocDetlService.insert(basAgvLocDetl);
                        try{
                            basAgvLocDetlService.insert(basAgvLocDetl);
                        } catch (Exception e){
                            log.error("增加AGV库存中转数量失败");
                        }
                    }
                }
                if (basAgvWrkDetls != null){
                    for (BasAgvWrkDetl basAgvWrkDetl : basAgvWrkDetls) {
                        basAgvWrkDetlService.insert(basAgvWrkDetl);
                        try{
                            basAgvWrkDetlService.insert(basAgvWrkDetl);
                        } catch (Exception e){
                            log.error("增加AGV库存中转数量失败");
                        }
                    }
                }