package com.bonus.sgzb.common.core.enums;

public enum TaskStatusEnum {

    /**
     * 待分公司审核
     */
    STAY_BRANCH_AUDIT("30", "待分公司审核"),
    /**
     *待分管部门审核
     */
    STAY_RESPONSIBLE_DEPARTMENT_AUDIT("31", "待分管部门审核"),
    /**
     * 待内部审核
     */
    STAY_INTERNAL_AUDIT("32", "待内部审核"),
    /**
     *待出库
     */
    STAY_OUTBOUND("33", "待出库"),
    /**
     * 出库进行中
     */
    OUTBOUND_IN_PROGRESS("34", "出库进行中"),
    /**
     * 完成
     */
    COMPLETE("35", "完成"),

    /**
     * 维修进行中
     */
    REPAIRING("43", "维修进行中"),

    /**
     * 待报废任务--待审核
     */
     PENDING_REVIEW("120", "待审核"),
    /**
     * 待报废任务--审核中
     */
    UNDER_REVIEW("121", "审核中"),
    /**
     * 待报废任务--已通过
     */
    PASSED("122", "已通过"),
    /**
     * 待报废任务--已驳回
     */
    REJECTED("123", "已驳回"),

    /**
     * 报废任务--未提交
     */
    SCRAP_UNSUBMITTED("124", "未提交"),

    /**
     * 报废任务--审核中
     */
    SCRAP_UNDER_REVIEW("58", "审核中"),

    /**
     * 报废任务--报废审核通过
     */
    SCRAP_PASSED("59", "审核通过"),

    /**
     * 报废任务--报废审核驳回
     */
    SCRAP_REJECTED("61", "审核驳回"),

    /**
     * 处置情况--宁夏处置管理 0 未处置
     */
    NOT_DISPOSED("0", "未处置"),

    /**
     * 处置情况--宁夏处置管理 1 已处置
     */
    DISPOSED("1", "已处置");



    private final String code;
    private final String info;


    TaskStatusEnum(String code, String info) {
        this.code = code;
        this.info = info;
    }

    public String getCode()
    {
        return code;
    }

    public String getInfo()
    {
        return info;
    }


    public static String getCodeByInfo(String info){
        for (TaskStatusEnum type : TaskStatusEnum.values()) {
            type.getInfo();
            type.getCode();
            if (type.getInfo().equals(info)) {
                return type.getCode();
            }
        }
        return null;
    }

    public static String getInfoByCode(String code){
        for (TaskStatusEnum type : TaskStatusEnum.values()) {
            if (type.getCode().equals(code)) {
                return type.getInfo();
            }
        }
        return null;
    }
}
