自动化立体仓库 - WMS系统
dubin
1 天以前 dd76858f35bb4fdd76d5976465e9bd96267b0f0b
src/main/java/com/zy/asrs/utils/Utils.java
@@ -8,10 +8,8 @@
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.RowLastno;
import com.zy.asrs.service.RowLastnoService;
import com.zy.common.model.LocDetlDto;
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
import com.zy.system.service.UserService;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STString;
import java.text.DecimalFormat;
import java.util.ArrayList;
@@ -24,6 +22,116 @@
 */
public class Utils {
    public static final List<Integer> FIRST_GROUP_ROW_LIST = new ArrayList<Integer>() {{
        add(1);add(2);
    }};
    public static final List<Integer> SECOND_GROUP_ROW_LIST = new ArrayList<Integer>() {{
        add(3);add(4);
    }};
    public static final List<Integer> THIRD_GROUP_ROW_LIST = new ArrayList<Integer>() {{
        add(5);add(6);
    }};
    public static final List<Integer> FOURTH_GROUP_ROW_LIST = new ArrayList<Integer>() {{
        add(7);add(8);
    }};
    public static final List<Integer> FIFTH_GROUP_ROW_LIST = new ArrayList<Integer>(){{
        add(9);
    }};
    public static final List<Integer> SIXTH_GROUP_ROW_LIST = new ArrayList<Integer>(){{
        add(10);add(11);
    }};
    public static List<String> getGroupLocNo(String locNo, Boolean pakIn) {
        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)) {
            List<Integer> clone = Arrays.asList(new Integer[SECOND_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, SECOND_GROUP_ROW_LIST);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
            }
        } else if (THIRD_GROUP_ROW_LIST.contains(row)) {
            for (Integer groupRow : THIRD_GROUP_ROW_LIST) {
                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
            }
        } else if (FOURTH_GROUP_ROW_LIST.contains(row)) {
//            List<Integer> clone = Arrays.asList(new Integer[FOURTH_GROUP_ROW_LIST.size()]);
//            Collections.copy(clone, FOURTH_GROUP_ROW_LIST);
//            Collections.reverse(clone);
            for (Integer groupRow : FOURTH_GROUP_ROW_LIST) {
                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
            }
        }else if (FIFTH_GROUP_ROW_LIST.contains(row)) {
            for (Integer groupRow : FIFTH_GROUP_ROW_LIST) {
                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
            }
        }else if (SIXTH_GROUP_ROW_LIST.contains(row)) {
            List<Integer>  clone = Arrays.asList(new Integer[SIXTH_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, SIXTH_GROUP_ROW_LIST);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
            }
        }
        if (!pakIn) {
            //出库,反转数据
            Collections.reverse(result);
        }
        return result;
    }
    // 外侧方向的货位  优先入库方向/优先出库方向
    public static List<String> getGroupOuterLocNo(String locNo){
        int row = getRow(locNo);
        List<String> result = new ArrayList<>();
        if (FIRST_GROUP_ROW_LIST.contains(row)) {
            List<Integer> clone = Arrays.asList(new Integer[FIRST_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, FIRST_GROUP_ROW_LIST);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (SECOND_GROUP_ROW_LIST.contains(row)){
            for (Integer integer : SECOND_GROUP_ROW_LIST) {
                if (integer < row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (THIRD_GROUP_ROW_LIST.contains(row)) {
            List<Integer> clone = Arrays.asList(new Integer[THIRD_GROUP_ROW_LIST.size()]);
            Collections.copy(clone, THIRD_GROUP_ROW_LIST);
            Collections.reverse(clone);
            for (Integer integer : clone) {
                if (integer > row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        } else if (FOURTH_GROUP_ROW_LIST.contains(row)){
            for (Integer integer : FOURTH_GROUP_ROW_LIST) {
                if (integer < row) {
                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                } else {
                    break;
                }
            }
        }
        return result;
    }
    private static final DecimalFormat fmt = new DecimalFormat("##0.00");
    public static float scale(Float f) {