package com.dxhy.common.enums;

/**
 * 返回值类型
 *
 * @author jiaohongyang
 * @date 2019年4月25日
 */
public enum ReturnCodeEnum {

    /**
     * 处理成功
     */
    CLCG("0000", 1),
    /**
     * 处理失败
     */
    CLSB("9999", 2),
    /**
     * 发票不存在
     */
    FPBCZ("2001", 3),
    /**
     * 授权信息错误
     */
    SQXXCW("2002", 4),
    /**
     * 请求报文格式错误
     */
    QQBWGSCW("2003", 5),
    /**
     * 内容有差异
     */
    NRYCY("2004", 6),
    /**
     * 接口代码不存在
     */
    JKDMBCZ("2005", 7),
    /**
     * 批次号不能为空且为32位
     */
    PCHBNWK("2006", 8),
    /**
     * 当期起始日期不能为空并且为14位
     */
    QSRQBNWK("2007", 9),
    /**
     * 状态标志不能为空并且为1位
     */
    ZTBZBNWK("2008", 10),
    /**
     * 开始行数为数字并且不为空
     */
    KSHSCW("2009", 11),
    /**
     * 当期结束日期不能为空并且为14位
     */
    JSRQBNWK("2010", 12),
    /**
     * 其他异常
     */
    QTYC("2011", 13),
    /**
     * 集团与税号不符
     */
    JTSHBF("2012", 14),
    /**
     * 无此集团
     */
    WCJT("2013", 15),
    /**
     * 税号不能为空
     */
    SHBNWK("2014", 16),
    /**
     * 代码与号码长度不符
     */
    DMHMBF("2015", 17),
    /**
     * 申请认证税款所属期不能为空
     */
    SKSSQBF("2016", 18),
    /**
     * 签收人不能为空
     */
    QSRBNWK("2017", 19),

    /**
     * 发票代码不能为空
     */
    FPDMBNWK("2018", 20),

    /**
     * 发票号码不能为空
     */
    FPHMBNWK("2019", 21),

    /**
     * 图片标识不能为空
     */
    TPBZBNWK("2020", 22),
    /**
     * 发票类型为空
     */
    FPLXWK("2021", 23),
    /**
     * 认证人不能为空
     */
    RZRBNWK("2022", 24),
    /**
     * 认证状态不能为空
     */
    RZZTBNWK("2023", 25),
    /**
     * 统计类型不能为空
     */
    TJLXWK("2024", 26),
    /**
     * 统计时间为空
     */
    TJSJWK("2025", 27),
    /**
     * 确认类型为空
     */
    QRLXWK("2026", 28),
    /**
     * 税号尚未统计
     */
    SHWTJ("2027", 29),
    /**
     * 税号未确认
     */
    SHWQR("2028", 30),
    /**
     * 统计时间不符
     */
    TJSJBF("2029", 31),
    /**
     * 密码不能为空
     */
    MMBNWK("2030", 32),
    /**
     * 认证类型不能为空
     */
    RZLXBNWK("2031", 33),
    /**
     * 抵扣税额不能为空
     */
    DKSEBNWK("2032", 34),
    /**
     * 业务密码不能为空
     */
    YWMMBNWK("2033", 35),

    /**
     * 开票日期不能为空
     */
    KPRQBNWK("2034", 36),

    JKSHMBNWK("2035", 37),

    TFRQBNWK("2036", 38), SKJEBNWK("2037", 39), JKSYCZ("2038", 40),
    /**
     * 发票数量不一致
     */
    FPBYZ("2000", 41),
    /**
     * 转出属期不可为空
     *
     * @author 陈刚扬
     * @date 2021/3/24
     * @param null
     * @return
     */
    ZCSQBKWK("2039", 42),

    WCXDSJ("2040",43),
    SKSSQ("2041",44),
    QYBS("2042",44);

    private final String[] FHZDM = {"处理成功", "处理失败", "发票不存在", "授权信息错误", "请求报文格式错误", "内容有差异", "接口代码不存在", "批次号不能为空且为32位",
        "当期起始日期不能为空并且为14位", "状态标志不能为空并且为1位", "开始行数为数字并且不为空", "当期结束日期不能为空并且为14位", "其他异常", "集团与税号不符", "无此集团", "税号不能为空",
        "代码与号码长度不符", "申请认证税款所属期不能为空", "签收人不正确", "发票代码不能为空", "发票号码不能为空", "图片标识不能为空", "发票类型为空", "认证人不能为空", "认证状态不能为空",
        "统计类型不能为空", "统计时间为空", "确认类型为空", "税号尚未统计", "税号未确认", "统计时间不符", "密码不能为空", "认证类型不能为空", "抵扣税额不能为空", "业务密码不能为空",
        "开票日期不能为空", "缴款书号码不能为空", "填发日期不能为空", "税款金额不能为空", "缴款书已存在", "发票数量不一致", "转出属期不可为空","未查询到数据","税款所属期不能为空","企业标识不能为空"};

    private String fhzDm;
    private int index;

    ReturnCodeEnum(String fhzDm, int index) {
        this.fhzDm = fhzDm;
        this.index = index;
    }

    public String getFhzDm(int index) {
        for (ReturnCodeEnum fplx : ReturnCodeEnum.values()) {
            if (fplx.getIndex() == index) {
                return fplx.fhzDm;
            }
        }
        return null;
    }

    public String getFhzMc(int index) {
        int length = FHZDM.length;
        if (index <= length) {
            return FHZDM[index - 1];
        }
        return null;
    }

    public String getFhzDm() {
        return fhzDm;
    }

    public void setFhzDm(String fhzDm) {
        this.fhzDm = fhzDm;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }
}
