自动化立体仓库 - WMS系统
#
野心家
2023-10-30 fe8ccfb561140711d2c89542f65002cd577a1cef
src/main/java/com/zy/common/service/CommonService.java
@@ -120,14 +120,22 @@
    /**
     * 检索库位号
     * @param staDescId 路径ID
     *
     * @param staDescId   路径ID
     * @param sourceStaNo 源站
     * @param matNos 物料号集合
     * @param matNos      物料号集合
     * @return locNo 检索到的库位号
     */
    public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto,int times) {
    public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
        // 目标库位
        LocMast locMast = null;
        // 靠近摆放规则 --- 空托
        locMast = getLocNoStep4(staDescId, locTypeDto);
        if (locMast != null) {
            //找到库位,返回dto
            return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto
        }
        //库位规则
        locMast = getLocNoStepRule(matNos, locTypeDto);
@@ -138,13 +146,6 @@
        // 靠近摆放规则 --- 相同订单号, 同天同规格物料
        locMast = getLocNoStep3(staDescId, matNos, locTypeDto);
        if (locMast != null) {
            //找到库位,返回dto
            return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto
        }
        // 靠近摆放规则 --- 空托
        locMast = getLocNoStep4(staDescId, locTypeDto);
        if (locMast != null) {
            //找到库位,返回dto
            return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto
@@ -163,7 +164,13 @@
            //找到库位,返回dto
            return getLocNoStep6(staDescId, sourceStaNo, locMast);//返回dto
        }
        if(locTypeDto.getLocType1()==1){
            locTypeDto.setLocType1((short)2);
            return getLocNo(staDescId, 1, sourceStaNo, matNos, locTypeDto,0);
        }else if(locTypeDto.getLocType1()==2){
            locTypeDto.setLocType1((short)3);
            return getLocNo(staDescId, 1, sourceStaNo, matNos, locTypeDto,0);
        }
        //找不到库位,抛出异常
        throw new CoolException("没有空库位");
    }
@@ -216,7 +223,7 @@
                LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo());
                if (null != locMast0) {
                    // 浅库位符合尺寸检测
                    if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
                    if (VersionUtils.checkLocType(locMast0, locTypeDto)) {
                        locMast = locMast0;
                    }
                }
@@ -228,7 +235,7 @@
                    LocMast locMast0 = locMastService.findNearloc(locNo);
                    if (null != locMast0) {
                        // 浅库位符合尺寸检测
                        if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
                        if (VersionUtils.checkLocType(locMast0, locTypeDto)) {
                            locMast = locMast0;
                            break;
                        }
@@ -251,7 +258,7 @@
                LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo());
                if (null != locMast0) {
                    // 浅库位符合尺寸检测
                    if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
                    if (VersionUtils.checkLocType(locMast0, locTypeDto)) {
                        locMast = locMast0;
                        break;
                    }
@@ -259,13 +266,13 @@
            }
            if (Cools.isEmpty(locMast)){
                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                        .eq("loc_sts", "D"));
                        .eq("loc_sts", "O"));
                if (locMasts.size() > 0) {
                    for (LocMast loc : locMasts) {
                        LocMast locMast0 = locMastService.findNearloc(loc.getLocNo());
                        if (null != locMast0) {
                            // 浅库位符合尺寸检测
                            if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
                            if (VersionUtils.checkLocType(locMast0, locTypeDto)) {
                                locMast = locMast0;
                                break;
                            }
@@ -309,6 +316,7 @@
        if (matNos.size() == 1) {
            //单品
            List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 2);//搜索单品库位
            for (LocMast mast : locMasts) {
                List<String> groupLoc = Utils.getGroupLoc(mast.getLocNo());
                if (!locMastService.checkAllLocEmpty(groupLoc)) {
@@ -349,7 +357,7 @@
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", staDescId)
                .eq("stn_no", sourceStaNo)
                .eq("crn_no",Utils.getLev(locNo));//借用堆垛机号字段充当楼层号
                .eq("crn_no",Utils.stnNoToLiftNo(sourceStaNo));//借用堆垛机号字段充当提升机号
        StaDesc staDesc = staDescService.selectOne(wrapper);
        if (Cools.isEmpty(staDesc)) {
            log.error("入库路径不存在, staDescId={}, sourceStaNo={}", staDescId, sourceStaNo);