自动化立体仓库 - WMS系统
野心家
2024-12-31 dcb21dfbb8399aadfb5b2df9ba5caa0a065ea7ee
src/main/java/com/zy/common/service/CommonService.java
@@ -53,6 +53,7 @@
    /**
     * 生成工作号
     *
     * @param wrkMk
     * @return workNo(工作号)
     */
@@ -124,21 +125,8 @@
             * 库型 1: 标准堆垛机库  2: 平库  3: 穿梭板  4: 四向车  5: AGV  0: 未知
             */
            switch (rowLastnoType.getType()){
                case 1:
                    return getLocNoRun(whsType,staDescId,sourceStaNo,matnr,batch,grade,0,locTypeDto,0);
                case 2:
                    log.error("站点={} 未查询到对应的规则",sourceStaNo);
                    break;
                case 3:
                    log.error("站点={} 未查询到对应的规则",sourceStaNo);
                    break;
                case 4:
                    return getLocNoRun4(whsType,staDescId,sourceStaNo,matnr,batch,grade,4,locTypeDto,0);
                case 5:
                    return getLocNoRun5(whsType,staDescId,sourceStaNo,matnr,batch,grade,0,locTypeDto,0);
                default:
                    log.error("站点={} 未查询到对应的规则",sourceStaNo);
                    break;
            }
        }catch (Exception e){
@@ -465,73 +453,73 @@
        if (!Cools.isEmpty(matnr) && staDescId != 10){
            int lev = 0;
            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", matnr));
            if (!Cools.isEmpty(locDetls)){
                for (LocDetl locDetl : locDetls){
                    if (locMast != null){
                        break;
                    }
                    LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
                    if (Cools.isEmpty(locMast1)) {
                        continue;
                    }
                    if (locMast1.getLev1() != lev && locMast1.getLev1() !=3) {
                        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                                .eq("lev1", locMast1.getLev1())
                                .orderBy("bay1",false));
                        if (Cools.isEmpty(locMasts)){
                            throw new CoolException("数据异常,请联系管理员===》库位未知");
                        }
                        for (LocMast locMast2 : locMasts) {
                            if (locMast2.getLocSts().equals("O") ) {
                                if (locMast == null){
                                    locMast = locMast2;
                                }
                            }else if (locMast2.getLocSts().equals("F")){
                                locMast = null;
                            }
                        }
                    }
                }
                if(Cools.isEmpty(locMast)){
                    List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                            .eq("lev1", 1)
                            .orderBy("bay1",false));
                    for (LocMast locMast2 : locMasts) {
                        if (locMast2.getLocSts().equals("O") ) {
                            if (locMast == null){
                                locMast = locMast2;
                            }
                        }else if (locMast2.getLocSts().equals("F")){
                            locMast = null;
                        }
                    }
                }
                if(Cools.isEmpty(locMast)){
                    List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                            .eq("lev1", 2)
                            .orderBy("bay1",false));
                    for (LocMast locMast2 : locMasts) {
                        if (locMast2.getLocSts().equals("O") ) {
                            if (locMast == null){
                                locMast = locMast2;
                            }
                        }else if (locMast2.getLocSts().equals("F")){
                            locMast = null;
                        }
                    }
                }
            }else {
//            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", matnr));
//            if (!Cools.isEmpty(locDetls)){
//                for (LocDetl locDetl : locDetls){
//                    if (locMast != null){
//                        break;
//                    }
//                    LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
//                    if (Cools.isEmpty(locMast1)) {
//                        continue;
//                    }
//                    if (locMast1.getLev1() != lev && locMast1.getLev1() !=3) {
//                        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
//                                .eq("lev1", locMast1.getLev1())
//                                .orderBy("bay1",false));
//                        if (Cools.isEmpty(locMasts)){
//                            throw new CoolException("数据异常,请联系管理员===》库位未知");
//                        }
//                        for (LocMast locMast2 : locMasts) {
//                            if (locMast2.getLocSts().equals("O") ) {
//                                if (locMast == null){
//                                    locMast = locMast2;
//                                }
//                            }else if (locMast2.getLocSts().equals("F")){
//                                locMast = null;
//                            }
//                        }
//                    }
//                }
//                if(Cools.isEmpty(locMast)){
//                    List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
//                            .eq("lev1", 1)
//                            .orderBy("bay1",false));
//                    for (LocMast locMast2 : locMasts) {
//                        if (locMast2.getLocSts().equals("O") ) {
//                            if (locMast == null){
//                                locMast = locMast2;
//                            }
//                        }else if (locMast2.getLocSts().equals("F")){
//                            locMast = null;
//                        }
//                    }
//                }
//                if(Cools.isEmpty(locMast)){
//                    List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
//                            .eq("lev1", 2)
//                            .orderBy("bay1",false));
//                    for (LocMast locMast2 : locMasts) {
//                        if (locMast2.getLocSts().equals("O") ) {
//                            if (locMast == null){
//                                locMast = locMast2;
//                            }
//                        }else if (locMast2.getLocSts().equals("F")){
//                            locMast = null;
//                        }
//                    }
//                }
//            }else {
                for (int i = 1; i<=2;i++){
                    if (locMast != null){
                        break;
                    }
                    List<LocMast> locMastsF = locMastService.selectList(new EntityWrapper<LocMast>()
                            .eq("lev1", i)
                            .eq("loc_sts","F"));
                    if (!Cools.isEmpty(locMastsF)){
                        continue;
                    }
//                List<LocMast> locMastsF = locMastService.selectList(new EntityWrapper<LocMast>()
//                        .eq("lev1", i)
//                        .eq("loc_sts", "F"));
//                if (!Cools.isEmpty(locMastsF)) {
//                    continue;
//                }
                    List<LocMast> locMastsR = locMastService.selectList(new EntityWrapper<LocMast>()
                            .eq("lev1", i)
                            .eq("loc_sts","R"));
@@ -561,8 +549,9 @@
                        }
                    }
                }
            }
//            }
        }else {
            //空板入库
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("lev1", 3)
                    .orderBy("bay1",true));
@@ -579,7 +568,6 @@
                }
            }
        }
        // 递归查询
@@ -603,6 +591,7 @@
        startupDto.setLocNo(locNo);
        return startupDto;
    }
    public StartupDto getLocNoRun5(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
        if (Cools.isEmpty(matnr)) {  //物料号
            matnr = "";