package com.wms_main.repository.utils;

/**
 * 转换工具
 */
public class ConvertUtils {
    /**
     * wcs堆垛机任务状态转换成wms任务状态
     * @param wcsStatus wcs堆垛机任务状态
     * @return wms任务状态
     */
    public static int convertWcsStackerTaskStatusToWmsTaskStatus(int wcsStatus) {
        return switch (wcsStatus) {
            case 0 -> 1;
            case 1 -> 2;
            case 2, 3, 4, 5 -> 3;
            case 100 -> 4;
            case 998 -> 98;
            case 999 -> 99;
            default -> -1;
        };
    }

    /**
     * wms任务状态转换成wcs堆垛机任务状态
     * @param wmsStatus wms任务状态
     * @return wcs堆垛机任务状态
     */
    public static int convertWmsTaskStatusToWcsStackerTaskStatus(int wmsStatus) {
        return switch (wmsStatus) {
            case 1 -> 0;
            case 2 -> 1;
            case 3 -> 2;
            case 4 -> 100;
            case 98 -> 998;
            case 99 -> 999;
            default -> -1;
        };
    }

    /**
     * 将Wms任务类型转化为Wcs任务类型
     * @param wmsStackerTaskType wms任务类型
     * @return wcs任务类型
     */
    public static int convertStackerTaskTypeFromWmsToWcs(int wmsStackerTaskType) {
        return switch (wmsStackerTaskType) {
            case 1 -> 1;
            case 2 -> 2;
            default -> -1;
        };
    }

    /**
     * 将Wcs任务类型转化为Wms任务类型
     * @param wcsStackerTaskType wcs任务类型
     * @return wms任务类型
     */
    public static int convertStackerTaskTypeFromWcsToWms(int wcsStackerTaskType) {
        return switch (wcsStackerTaskType) {
            case 1 -> 1;
            case 2 -> 2;
            default -> -1;
        };
    }
}
