自动化立体仓库 - WMS系统
#
lsh
2024-07-29 00ec18c30882eb7971f621ca4b80e09da8ad227c
#
3个文件已修改
92 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/StockOutParam.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -79,4 +79,24 @@
        this.locDetls = locDetlArrayList;
    };
    public StockOutParam(SmallCompleteParam param, List<com.zy.asrs.entity.LocDetl> locDetlList){
        this.outSite = param.getDevNo();
        ArrayList<LocDetl> locDetlArrayList = new ArrayList<>();
       for (com.zy.asrs.entity.LocDetl locDetlSou : locDetlList){
           LocDetl locDetl = new LocDetl();
           locDetl.setMatnr(param.getMatnr());
           locDetl.setBrand(param.getBrand());
           locDetl.setAnfme(1.0);
           locDetl.setLocNo(locDetlSou.getLocNo());
           locDetl.setModel(locDetlSou.getModel());
           locDetl.setBatch(locDetlSou.getBatch());
           locDetl.setZpallet(locDetlSou.getZpallet());
           locDetl.setWeight(locDetlSou.getWeight());
           locDetl.setSpecs(locDetlSou.getSpecs());
           locDetlArrayList.add(locDetl);
       }
        this.locDetls = locDetlArrayList;
    };
}
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -90,6 +90,8 @@
    private BareBoardHandler bareBoardHandler;
    @Autowired
    private BasJarMastService basJarMastService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Override
    @Transactional
@@ -1199,6 +1201,34 @@
            throw new CoolException("品号 matnr,重量范围偏移值为空!!!,请先下发基础档案!!!");
        }
        ArrayList<Integer> crns =new ArrayList<>();
        ArrayList<Integer> crnList =new ArrayList<>();
        crns.add(1);crns.add(2);crns.add(3);crns.add(4);crns.add(5);crns.add(6);crns.add(7);
        for (Integer crnNo : crns){
            // 检测路径
            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                    .eq("type_no", 101)
                    .eq("stn_no", param.getDevNo())
                    .eq("crn_no", crnNo);
            StaDesc staDesc = staDescService.selectOne(wrapper);
            if (Cools.isEmpty(staDesc)){
                continue;
            }
            BasCrnp basCrnp = basCrnpService.selectById(crnNo);
            if (basCrnp.getCrnSts()!=3 || !basCrnp.getOutEnable().equals("Y")){
                continue;
            }
            if (!basCrnpService.checkSiteError(crnNo, false)){
                continue;
            }
            crnList.add(crnNo);
        }
        if (crnList.isEmpty()){
            throw new CoolException("无可用堆垛机");
        }
        ArrayList<LocDetl> locDetlArrayList = new ArrayList<>();
        Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()).eq("weight", param.getWeight());
@@ -1214,14 +1244,12 @@
        for (LocDetl locDetl:locDetls){
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
            if (locMast.getLocSts().equals("F")){
                if (locDetlArrayList.size()<param.getBatchNum()) {//下
                    locDetlArrayList.add(locDetl);
                if (crnList.contains(locMast.getCrnNo())){
                    if (locDetlArrayList.size()<param.getBatchNum()) {//下
                        locDetlArrayList.add(locDetl);
                    }
                }
            }
        }
        if (locDetlArrayList.isEmpty()){
            throw new CoolException("未找到符合条件的物料明细:品号==》matnr:"+param.getMatnr()+";重量==》wright:"+param.getWeight());
        }
        Integer batchNum = param.getBatchNum();
@@ -1242,8 +1270,10 @@
            for (LocDetl locDetl:locDetls){
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
                if (locMast.getLocSts().equals("F")){
                    if (locDetlArrayList.size()<batchNum) {//下
                        locDetlArrayList.add(locDetl);
                    if (crnList.contains(locMast.getCrnNo())){
                        if (locDetlArrayList.size()<batchNum) {//下
                            locDetlArrayList.add(locDetl);
                        }
                    }
                }
            }
@@ -1266,24 +1296,37 @@
            for (LocDetl locDetl:locDetls){
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
                if (locMast.getLocSts().equals("F")){
                    if (locDetlArrayList.size()<batchNum) {//下
                        locDetlArrayList.add(locDetl);
                    if (crnList.contains(locMast.getCrnNo())){
                        if (locDetlArrayList.size()<batchNum) {//下
                            locDetlArrayList.add(locDetl);
                        }
                    }
                }
            }
        }
        if (locDetlArrayList.isEmpty()){
            throw new CoolException("未找到符合条件的物料明细:品号==》matnr:"+param.getMatnr()+";重量==》wright:"+param.getWeight());
        }
        if (locDetlArrayList.size()<batchNum){
            throw new CoolException("库存数量:"+locDetlArrayList.size()+";小于需求数量:"+param.getBatchNum());
        }
        ArrayList<LocDetl> locDetlArraySou = new ArrayList<>();
        for (LocDetl locDetl : locDetlArrayList){
            if (batchNum <= 0){
                return;
            }
            StockOutParam stockOutParam = new StockOutParam(param,locDetl);
            workService.startupFullTakeStore(stockOutParam, userId);
            locDetlArraySou.add(locDetl);
            batchNum --;
        }
        try{
            StockOutParam stockOutParam = new StockOutParam(param,locDetlArraySou);
            workService.startupFullTakeStore(stockOutParam, userId);
        } catch (Exception e){
            throw new CoolException("生成出库任务失败:出库数量:"+locDetlArraySou.size());
        }
    }
    public void smallContainersJar(SmallCompleteParam param) {
src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
@@ -200,6 +200,9 @@
                if (basCrnp.getCrnSts()!=3 || !basCrnp.getOutEnable().equals("Y")){
                    continue;
                }
                if (!basCrnpService.checkSiteError(crnNo, false)){
                    continue;
                }
                // 获取库位
                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").eq("crn_no", crnNo).orderBy("lev1",true).orderBy("bay1",true));
                for (LocMast locMastS : locMasts){