package com.sw.mes.yb.turnstore.statics;

import lombok.Getter;

public class EnumValues {

    public interface KeyValue {
        String getKey();

        String getValue();
    }

    public interface KeyValue1 {
        String getKey();

        Integer getValue();
    }

    /**
     * 入库类型
     */
    @Getter
    public enum InType implements KeyValue {
        圆棒入库("圆棒入库", "圆棒入库"), 方棒退料("方棒退料", "方棒退料"), 方棒退料接收("方棒退料接收", "方棒退料接收"), 综计退料("综计退料", "综计退料");

        private InType(String key, String value) {
            this.key = key;
            this.value = value;
        }

        private String key;
        private String value;
    }


    /**
     * 上料口对应在制品工序
     */
    @Getter
    public enum Binding implements KeyValue {
        截断应急上下料("1", "圆棒检验"),
        返切绑定点位("2", "圆棒检验"),
        圆棒直发绑定点位("3", "圆棒检验"),
        圆棒库应急上下料("4", "圆棒检验"),
        方棒库应急上下料("5", "方棒检验");

        private Binding(String key, String value) {
            this.key = key;
            this.value = value;
        }

        private String key;
        private String value;
    }


    /**
     * 出库类型
     */
    @Getter
    public enum OutType implements KeyValue {
        退料到圆棒("退料到圆棒", "退料到圆棒"), 出库到方棒("出库到方棒", "出库到方棒"), 出库到综计("出库到综计", "出库到综计");

        private OutType(String key, String value) {
            this.key = key;
            this.value = value;
        }

        private String key;
        private String value;
    }


    /**
     * 方棒退料去向
     */
    @Getter
    public enum ReturnPurposeType implements KeyValue {
        ROUND_ROD_INSPECTION("圆棒检验", "0"), SQUARE_ROD_INSPECTION("方棒检验", "1");

        private ReturnPurposeType(String key, String value) {
            this.key = key;
            this.value = value;
        }

        private String key;
        private String value;
    }

    /**
     * 入库状态
     */
    @Getter
    public enum InState implements KeyValue {
        待入库("待入库", "待确认"), 已入库("已入库", "已确认"), 退回("退回", "拒收"),取消("取消","取消");

        private InState(String key, String value) {
            this.key = key;
            this.value = value;
        }

        private String key;
        private String value;
    }

    /**
     * 出库状态
     */
    @Getter
    public enum OutState implements KeyValue {
        未组拖("未组拖", "未组拖"), 已组拖("已组拖", "已组拖"), 待出库("待出库", "待出库"), 退回("退回", "退回"), 已出库("已出库", "已出库");

        private OutState(String key, String value) {
            this.key = key;
            this.value = value;
        }

        private String key;
        private String value;
    }

    /**
     * 托盘状态
     */
    @Getter
    public enum TrayState implements KeyValue {
        未满拖("未满拖", "未满拖"), 满拖("满拖", "满拖");

        private TrayState(String key, String value) {
            this.key = key;
            this.value = value;
        }

        private String key;
        private String value;
    }


    /**
     * SAP单晶类型
     */
    @Getter
    public enum SapSectionType implements KeyValue1 {
        正常单晶("正常单晶", 1), 记产单晶("记产单晶", 2), 记产复检单晶("记产复检单晶", 3), 复检单晶("复检单晶", 4);

        private SapSectionType(String key, Integer value) {
            this.key = key;
            this.value = value;
        }

        private String key;
        private Integer value;
    }
}
