自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-08-18 3dbc72ed3bfed1a7f2d3d38b88f71953ed47a531
src/main/java/com/zy/common/service/CommonService.java
@@ -113,7 +113,21 @@
     */
    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, LocTypeDto oldLocType, int times) {
        StartupDto startupDto = new StartupDto();
        whsType = 1;
        int start = 2;
        int end = 30;
        switch (sourceStaNo) {
            case 107:
                whsType = 2;
                end = 17;
                break;
            case 118:
                whsType = 3;
                start = 18;
                break;
            default:
                whsType = 1;
                break;
        }
        // 生成工作号
        int workNo = getWorkNo(0);
        RowLastno rowLastno = rowLastnoService.selectById(whsType);
@@ -130,9 +144,10 @@
        // 目标库位
        LocMast locMast = null;
        // 靠近摆放规则 --- 同天同规格物料
        if (!Cools.isEmpty(matNos)) {
            List<String> locNos = locDetlService.getSameDetl(matNos.get(0), 2, 30);
            List<String> locNos = locDetlService.getSameDetl(matNos.get(0), start, end);
            for (String locNo : locNos) {
                List<String> groupLoc = Utils.getGroupLoc(locNo);
                locMast = locMastService.findOutMost(groupLoc);
@@ -151,7 +166,7 @@
        // 靠近摆放规则 --- 空托
        if (staDescId == 10) {
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", 2).le("row1", 30));
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", start).le("row1", end));
            if (locMasts.size() > 0) {
                for (LocMast loc : locMasts) {
                    List<String> groupLoc = Utils.getGroupLoc(loc.getLocNo());
@@ -178,7 +193,10 @@
                if (curRow < 0) {
                    throw new CoolException("检索库位失败,请联系管理员");
                }
                Integer crnNo1 = shelves.get(curRow);
                Integer crnNo1 = shelves.get(curRow) + 1;
                if (whsType != 1) {
                    crnNo1 = whsType;
                }
                if (basCrnpService.checkSiteError(crnNo1, true)) {
                    crnNo = crnNo1;
                    break;
@@ -215,18 +233,24 @@
        // 1.当检索库排为浅库位排时,优先寻找当前库排的深库位排
        if (locMast == null) {
            List<Integer> rows;
            switch (curRow) {
                case 1:
                    rows = FIRST_GROUP_ROW_LIST;
                    break;
                case 2:
                    rows = SECOND_GROUP_ROW_LIST;
                    break;
                default:
                    throw new CoolException("入库逻辑故障【" + curRow + "】");
            if (whsType == 2) {
                rows = FIRST_GROUP_ROW_LIST;
            } else if (whsType == 3) {
                rows = SECOND_GROUP_ROW_LIST;
            } else {
                switch (curRow) {
                    case 1:
                        rows = FIRST_GROUP_ROW_LIST;
                        break;
                    case 2:
                        rows = SECOND_GROUP_ROW_LIST;
                        break;
                    default:
                        throw new CoolException("入库逻辑故障【" + curRow + "】");
                }
            }
            locMast = locMastService.queryFreeLocMast(curRow, rows, locTypeDto.getLocType1());
            locMast = locMastService.queryFreeLocMast(null, rows, locTypeDto.getLocType1());
            // 因库位移转、需预留空库位
//            if (!locMastService.checkEmptyCount(locMast)) {
//                locMast = null;