自动化立体仓库 - WMS系统
#
lsh
2024-07-15 276878563d3f2ce73ad16f4150e7b40a8e62f499
#
2个文件已修改
76 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/SmallCompleteParam.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/SmallCompleteParam.java
@@ -59,7 +59,8 @@
    private String origin;
    // 木箱中铜箔数量
    private Double anfme;
    private Integer batchNum;
    private Double anfme = 1.0;
    // 木箱中铜箔数量
    private Double count;
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1178,7 +1178,10 @@
            throw new CoolException("参数:品号 matnr为空");
        }else if (Cools.isEmpty(param.getWeight())){
            throw new CoolException("参数:物料重量 wright为空");
        }else if (Cools.isEmpty(param.getBatchNum())){
            throw new CoolException("参数:出库数量 batchNum为空");
        }
        ArrayList<LocDetl> locDetlArrayList = new ArrayList<>();
        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()).eq("weight", param.getWeight()));
@@ -1192,13 +1195,79 @@
                break;
            }
        }
        if (param.getDevNo() == 536){
            locDetlArrayList = new ArrayList<>();
            locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
                    .eq("weight", param.getWeight())
                    .eq("specs", param.getOrderNo())
                    .eq("model", param.getTaskNo()));
            if (locDetls.isEmpty()){
                locDetls = new ArrayList<LocDetl>();
            }
            for (LocDetl locDetl:locDetls){
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
                if (locMast.getLocSts().equals("F")){
                    locDetlArrayList.add(locDetl);
                    break;
                }
            }
        }
        if (locDetlArrayList.isEmpty()){
            throw new CoolException("未找到符合条件的物料明细:品号==》matnr:"+param.getMatnr()+";重量==》wright:"+param.getWeight()+";颜色==》color:"+param.getColor());
            throw new CoolException("未找到符合条件的物料明细:品号==》matnr:"+param.getMatnr()+";重量==》wright:"+param.getWeight());
        }
        Integer batchNum = param.getBatchNum();
        if (locDetlArrayList.size()<batchNum){//上5
            locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
                    .eq("specs", param.getOrderNo())
                    .eq("model", param.getTaskNo())
                    .lt("weight", param.getWeight()+5)
                    .and()
                    .gt("weight", param.getWeight())
                    .orderBy("weight",true));
            if (locDetls.isEmpty()){
                locDetls = new ArrayList<LocDetl>();
            }
            for (LocDetl locDetl:locDetls){
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
                if (locMast.getLocSts().equals("F")){
                    locDetlArrayList.add(locDetl);
                    break;
                }
            }
        }
        if (locDetlArrayList.size()<batchNum){//下5
            locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
                    .eq("specs", param.getOrderNo())
                    .eq("model", param.getTaskNo())
                    .gt("weight", param.getWeight()-5)
                    .and()
                    .lt("weight", param.getWeight())
                    .orderBy("weight",false));
            if (locDetls.isEmpty()){
                locDetls = new ArrayList<LocDetl>();
            }
            for (LocDetl locDetl:locDetls){
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
                if (locMast.getLocSts().equals("F")){
                    locDetlArrayList.add(locDetl);
                    break;
                }
            }
        }
        if (locDetlArrayList.size()<batchNum){
            throw new CoolException("库存数量:"+locDetlArrayList.size()+";小于需求数量:"+param.getBatchNum());
        }
        for (LocDetl locDetl : locDetlArrayList){
            if (batchNum <= 0){
                return;
            }
            StockOutParam stockOutParam = new StockOutParam(param,locDetl);
            workService.startupFullTakeStore(stockOutParam, userId);
            return;
            batchNum --;
        }
    }