Junjie
2023-11-30 8e844bde9b6edf6769fdb623ea7e70c458b37339
src/main/java/com/zy/asrs/utils/Utils.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.SpringUtils;
@@ -97,21 +98,6 @@
    public static Integer getGroupRow(String locNo, Boolean pakin){
        int row = getRow(locNo);
        return getGroupRow(row, pakin);
    }
    public static List<String> getGroupLocNo(String locNo){
        int row = getRow(locNo);
        List<String> result = new ArrayList<>();
        if (FIRST_GROUP_ROW_LIST.contains(row)) {
            for (Integer groupRow : FIRST_GROUP_ROW_LIST) {
                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
            }
        } else if (SECOND_GROUP_ROW_LIST.contains(row)) {
            for (Integer groupRow : SECOND_GROUP_ROW_LIST) {
                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
            }
        }
        return result;
    }
    public static Integer getGroupRow(Integer row, Boolean pakin) {
@@ -369,6 +355,54 @@
        throw new RuntimeException("库位解析异常");
    }
    /**
     * 获取外侧方向的库位组
     * @param locNo 库位号
     */
    public static List<String> getGroupOuterLoc(String locNo){
        int row = getRow(locNo);
        int bay = getBay(locNo);
        //(1,3,4,10,11)没有外侧方向库位组,(13,14,16)59列之内没有外侧方向库位组
        if (FIRST_GROUP_ROW_LIST.contains(row)) {//1排
            return new ArrayList<>();
        }
        if (SECOND_GROUP_ROW_LIST.contains(row)) {//3-4排
            return new ArrayList<>();
        }
        if (THIRD_GROUP_ROW_LIST.contains(row)) {//6-7排
            List<String> result = new ArrayList<>();
            for (Integer row0 : THIRD_GROUP_ROW_LIST) {
                if (row0 < row) {
                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
                }
            }
            return result;
        }
        if (FOURTH_GROUP_ROW_LIST.contains(row)) {//8排
            return new ArrayList<>();
        }
        if (FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11排
            return new ArrayList<>();
        }
        if (SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16排59-61列外侧方向库位组
            List<String> result = new ArrayList<>();
            for (Integer row0 : SIXTH_GROUP_ROW_LIST) {
                if (row0 < row) {
                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
                }
            }
            return result;
        }
        if (SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14排59列之内没有外侧方向库位组
            return new ArrayList<>();
        }
        if (EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16排59列之内没有外侧方向库位组
            return new ArrayList<>();
        }
        throw new RuntimeException("库位解析异常");
    }
    //获取除白名单外的指定楼层全部穿梭车xy坐标点
    public static List<int[]> getShuttlePoints(Integer whiteShuttle, Integer lev) {
        BasShuttleService basShuttleService = SpringUtils.getBean(BasShuttleService.class);
@@ -593,4 +627,60 @@
        return null;
    }
    public static void wapperSetCondition(Wrapper wrapper, String column, String condition){
        if(Cools.isEmpty(condition) || "null".equals(condition)){
            wrapper.andNew().eq(column,"").or().isNull(column);
        }else {
            wrapper.eq(column,condition);
        }
    }
    /**
     * 获取内侧方向的库位组
     * @param locNo 库位号
     */
    public static List<String> getGroupInnerLoc(String locNo){
        int row = getRow(locNo);
        int bay = getBay(locNo);
        //(1,3,4,10,11)没有内侧方向库位组,(13,14,16)59列之内没有内侧方向库位组
        if (FIRST_GROUP_ROW_LIST.contains(row)) {//1排
            return new ArrayList<>();
        }
        if (SECOND_GROUP_ROW_LIST.contains(row)) {//3-4排
            return new ArrayList<>();
        }
        if (THIRD_GROUP_ROW_LIST.contains(row)) {//6-7排
            List<String> result = new ArrayList<>();
            for (Integer row0 : THIRD_GROUP_ROW_LIST) {
                if (row0 > row) {
                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
                }
            }
            return result;
        }
        if (FOURTH_GROUP_ROW_LIST.contains(row)) {//8排
            return new ArrayList<>();
        }
        if (FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11排
            return new ArrayList<>();
        }
        if (SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16排59-61列内侧方向库位组
            List<String> result = new ArrayList<>();
            for (Integer row0 : SIXTH_GROUP_ROW_LIST) {
                if (row0 > row) {
                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
                }
            }
            return result;
        }
        if (SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14排59列之内没有内侧方向库位组
            return new ArrayList<>();
        }
        if (EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16排59列之内没有内侧方向库位组
            return new ArrayList<>();
        }
        throw new RuntimeException("库位解析异常");
    }
}