自动化立体仓库 - WMS系统
#
whycq
2024-05-14 442fce2fa9c6d8d4fe7b1f2a22d66c03b07975e5
src/main/java/com/zy/asrs/controller/OutController.java
@@ -91,13 +91,13 @@
                if (issued <= 0.0D) { continue; }
                //从平库寻找
                issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
                //issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
                //先找AGV的库存,如果返回的issued大于0,则去四项库找
                issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
                //从四项库的库存里面找,
                issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
                //issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
                if (issued > 0) {
                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
@@ -123,6 +123,13 @@
            //如果AGV出库站为空 和 四项库出库站为空 并且 有库存的情况下 则返回
            if (Cools.isEmpty(locDto.getStaNo()) && Cools.isEmpty(locDto.getAgvStaNo()) &&!locDto.isLack()) {
                return R.error(locDto.getLocNo()+"库位请选择出库站");
            }
            AgvLocMast agvLocMast = agvLocMastService.selectById(locDto.getLocNo());
            List<String> staNoList = agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1(),agvLocMast.getFloor());
            if(!staNoList.contains(locDto.getAgvStaNo())){
                return R.error(locDto.getStaNo()+"该站点已有出库任务,无法选择该站点出库");
            }
        }
        //如果所有库都没有库存,则返回
@@ -193,44 +200,6 @@
        return R.ok().add(locDtoList);
        /*
        if (Cools.isEmpty(list)) {
            return R.parse(BaseRes.PARAM);
        }
        Set<String> exist = new HashSet<>();
        List<LocDto> locDtos = new ArrayList<>();
        for (OrderMergeVo vo : list) {
            double issued = Optional.of(vo.getAnfme()).orElse(0.0D);
            if (issued <= 0.0D) { continue; }
            List<LocDetl> locDetls = locDetlService.queryStock(vo.getMatnr(), vo.getBatch(), null, exist);
            for (LocDetl locDetl : locDetls) {
                if (issued > 0) {
                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), JSON.toJSONString(vo.getOrderDtos()),
                            issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
                    int ioType = (issued >= locDetl.getAnfme() && locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo())) == 1) ? 101 : 103;
                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
                    locDto.setStaNos(staNos);
                    locDtos.add(locDto);
                    exist.add(locDetl.getLocNo());
                    // 剩余待出数量递减
                    issued = issued - locDetl.getAnfme();
                } else {
                    break;
                }
            }
            if (issued > 0) {
                LocDto locDto = new LocDto(null, vo.getMatnr(), vo.getMaktx(), vo.getBatch(), JSON.toJSONString(vo.getOrderDtos()), issued);
                locDto.setLack(Boolean.TRUE);
                locDtos.add(locDto);
            }
        }
        for (LocDto locDto : locDtos) {
            Mat mat = matService.selectByMatnr(locDto.getMatnr());
            assert mat != null;
            locDto.setSpecs(mat.getSpecs());
        }
        return R.ok().add(locDtos);*/
    }
@@ -275,24 +244,6 @@
        } else {
            agvTaskDtos.add(taskDto);
        }
//        //寻找空站点位置
//        AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(locDto.getAgvStaNo());
//        if(Cools.isEmpty(agvBasDevp)){
//            //如果没有找到空站点,则生成准备任务
//            //TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getAgvStaNo(), locDto);
//            //agvTaskDtos.add(taskDto);
//            //如果库位存在混载
//
//            return;
//        }
////        agvBasDevp.setLocSts("S");
////        agvBasDevpService.updateById(agvBasDevp);
//        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null);
//        //TaskDto taskDto = new TaskDto(locDto.getLocNo(), agvBasDevp.getDevNo(), locDto);
//        taskDto.setAgvStaNo(agvBasDevp.getDevNo());
        //agvTaskDtos.add(taskDto);
    }