package cn.ey.biz.module.system.enums;

import cn.ey.biz.common.exception.ErrorCode;

/**
 * System 错误码枚举类
 * <p>
 * system 系统，使用 1-002-000-000 段
 */
public interface ErrorCodeConstants {

    // ========== 参数配置 1001000000 ==========
    ErrorCode CONFIG_NOT_EXISTS = new ErrorCode(1001000001, "参数配置不存在");
    ErrorCode CONFIG_KEY_DUPLICATE = new ErrorCode(1001000002, "参数配置 key 重复");
    ErrorCode CONFIG_CAN_NOT_DELETE_SYSTEM_TYPE = new ErrorCode(1001000003, "不能删除类型为系统内置的参数配置");
    ErrorCode CONFIG_GET_VALUE_ERROR_IF_VISIBLE = new ErrorCode(1001000004, "获取参数配置失败，原因：不允许获取不可见配置");

    // ========== API 错误日志 1001002000 ==========
    ErrorCode API_ERROR_LOG_NOT_FOUND = new ErrorCode(1001002000, "API 错误日志不存在");
    ErrorCode API_ERROR_LOG_PROCESSED = new ErrorCode(1001002001, "API 错误日志已处理");

    // ========= 文件相关 1001003000=================
    ErrorCode FILE_PATH_EXISTS = new ErrorCode(1001003000, "文件路径已存在");
    ErrorCode FILE_NOT_EXISTS = new ErrorCode(1001003001, "文件不存在");
    ErrorCode FILE_IS_EMPTY = new ErrorCode(1001003002, "文件为空");
    ErrorCode FILE_BATCH_UPLOAD_ERROR = new ErrorCode(1001003003, "批量上传失败");
    ErrorCode FILE_UPLOAD_TYPE_ERROR = new ErrorCode(1001003004, "文件格式不正确");

    // ========== 文件配置 1001006000 ==========
    ErrorCode FILE_CONFIG_NOT_EXISTS = new ErrorCode(1001006000, "文件配置不存在");
    ErrorCode FILE_CONFIG_DELETE_FAIL_MASTER = new ErrorCode(1001006001, "该文件配置不允许删除，原因：它是主配置，删除会导致无法上传文件");

    // ========== AUTH 模块 1002000000 ==========
    ErrorCode AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1002000000, "登录失败，账号密码不正确");
    ErrorCode AUTH_LOGIN_USER_DISABLED = new ErrorCode(1002000001, "登录失败，账号被禁用");
    ErrorCode AUTH_LOGIN_CAPTCHA_CODE_ERROR = new ErrorCode(1002000004, "验证码不正确，原因：{}");
    ErrorCode AUTH_THIRD_LOGIN_NOT_BIND = new ErrorCode(1002000005, "未绑定账号，需要进行绑定");
    ErrorCode AUTH_TOKEN_EXPIRED = new ErrorCode(1002000006, "Token 已经过期");
    ErrorCode AUTH_MOBILE_NOT_EXISTS = new ErrorCode(1002000007, "手机号不存在");

    // ========== 菜单模块 1002001000 ==========
    ErrorCode MENU_NAME_DUPLICATE = new ErrorCode(1002001000, "已经存在该名字的菜单");
    ErrorCode MENU_PARENT_NOT_EXISTS = new ErrorCode(1002001001, "父菜单不存在");
    ErrorCode MENU_PARENT_ERROR = new ErrorCode(1002001002, "不能设置自己为父菜单");
    ErrorCode MENU_NOT_EXISTS = new ErrorCode(1002001003, "菜单不存在");
    ErrorCode MENU_EXISTS_CHILDREN = new ErrorCode(1002001004, "存在子菜单，无法删除");
    ErrorCode MENU_PARENT_NOT_DIR_OR_MENU = new ErrorCode(1002001005, "父菜单的类型必须是目录或者菜单");

    // ========== 角色模块 1002002000 ==========
    ErrorCode ROLE_NOT_EXISTS = new ErrorCode(1002002000, "角色不存在");
    ErrorCode ROLE_NAME_DUPLICATE = new ErrorCode(1002002001, "已经存在名为【{}】的角色");
    ErrorCode ROLE_CODE_DUPLICATE = new ErrorCode(1002002002, "已经存在编码为【{}】的角色");
    ErrorCode ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE = new ErrorCode(1002002003, "不能操作类型为系统内置的角色");
    ErrorCode ROLE_IS_DISABLE = new ErrorCode(1002002004, "名字为【{}】的角色已被禁用");
    ErrorCode ROLE_ADMIN_CODE_ERROR = new ErrorCode(1002002005, "编码【{}】不能使用");

    // ========== 用户模块 1002003000 ==========
    ErrorCode USER_USERNAME_EXISTS = new ErrorCode(1002003000, "用户账号已经存在");
    ErrorCode USER_MOBILE_EXISTS = new ErrorCode(1002003001, "手机号已经存在");
    ErrorCode USER_EMAIL_EXISTS = new ErrorCode(1002003002, "邮箱已经存在");
    ErrorCode USER_NOT_EXISTS = new ErrorCode(1002003003, "用户不存在");
    ErrorCode USER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1002003004, "导入用户数据不能为空！");
    ErrorCode USER_PASSWORD_FAILED = new ErrorCode(1002003005, "用户密码校验失败");
    ErrorCode USER_IS_DISABLE = new ErrorCode(1002003006, "名字为【{}】的用户已被禁用");
    ErrorCode USER_COUNT_MAX = new ErrorCode(1002003008, "创建用户失败，原因：超过租户最大租户配额({})！");
    ErrorCode USER_GPN_EMAIL_EXISTS = new ErrorCode(1002003009, "GPN或email必须填其一个");
    ErrorCode USER_BETWEEN_SECONDS_MAX = new ErrorCode(1002003010, "间隔时间不能大于24小时！");
    ErrorCode USER_END_DATE_TIME_AFTER = new ErrorCode(1002003011, "结束时间不能大于当前时间！");
    ErrorCode USER_NOT_CONDITIONS = new ErrorCode(1002003012, "未指定任何查询条件！");
    ErrorCode SYNC_USERS_EMPTY = new ErrorCode(1002003013, "同步用户数据不能为空!");
    ErrorCode SYNC_USERS_SWITCH_DATE = new ErrorCode(1002003014, "用户切换时间范围不对");


    // ========== 部门模块 1002004000 ==========
    ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1002004000, "已经存在该名字的部门");
    ErrorCode DEPT_PARENT_NOT_EXITS = new ErrorCode(1002004001, "父级部门不存在");
    ErrorCode DEPT_NOT_FOUND = new ErrorCode(1002004002, "当前部门不存在");
    ErrorCode DEPT_EXITS_CHILDREN = new ErrorCode(1002004003, "存在子部门，无法删除");
    ErrorCode DEPT_PARENT_ERROR = new ErrorCode(1002004004, "不能设置自己为父部门");
    ErrorCode DEPT_EXISTS_USER = new ErrorCode(1002004005, "部门中存在员工，无法删除");
    ErrorCode DEPT_NOT_ENABLE = new ErrorCode(1002004006, "部门不处于开启状态，不允许选择");
    ErrorCode DEPT_PARENT_IS_CHILD = new ErrorCode(1002004007, "不能设置自己的子部门为父部门");

    // ========== 岗位模块 1002005000 ==========
    ErrorCode POST_NOT_FOUND = new ErrorCode(1002005000, "当前岗位不存在");
    ErrorCode POST_NOT_ENABLE = new ErrorCode(1002005001, "岗位({}) 不处于开启状态，不允许选择");
    ErrorCode POST_NAME_DUPLICATE = new ErrorCode(1002005002, "已经存在该名字的岗位");
    ErrorCode POST_CODE_DUPLICATE = new ErrorCode(1002005003, "已经存在该标识的岗位");

    // ========== 字典类型 1002006000 ==========
    ErrorCode DICT_TYPE_NOT_EXISTS = new ErrorCode(1002006001, "当前字典类型不存在");
    ErrorCode DICT_TYPE_NOT_ENABLE = new ErrorCode(1002006002, "字典类型不处于开启状态，不允许选择");
    ErrorCode DICT_TYPE_NAME_DUPLICATE = new ErrorCode(1002006003, "已经存在该名字的字典类型");
    ErrorCode DICT_TYPE_TYPE_DUPLICATE = new ErrorCode(1002006004, "已经存在该类型的字典类型");
    ErrorCode DICT_TYPE_HAS_CHILDREN = new ErrorCode(1002006005, "无法删除，该字典类型还有字典数据");

    // ========== 字典数据 1002007000 ==========
    ErrorCode DICT_DATA_NOT_EXISTS = new ErrorCode(1002007001, "当前字典数据不存在");
    ErrorCode DICT_DATA_NOT_ENABLE = new ErrorCode(1002007002, "字典数据({})不处于开启状态，不允许选择");
    ErrorCode DICT_DATA_VALUE_DUPLICATE = new ErrorCode(1002007003, "已经存在该值的字典数据");

    // ========== 通知公告 1002008000 ==========
    ErrorCode NOTICE_NOT_FOUND = new ErrorCode(1002008001, "当前通知公告不存在");

    // ========== 短信渠道 1002011000 ==========
    ErrorCode SMS_CHANNEL_NOT_EXISTS = new ErrorCode(1002011000, "短信渠道不存在");
    ErrorCode SMS_CHANNEL_DISABLE = new ErrorCode(1002011001, "短信渠道不处于开启状态，不允许选择");
    ErrorCode SMS_CHANNEL_HAS_CHILDREN = new ErrorCode(1002011002, "无法删除，该短信渠道还有短信模板");

    // ========== 短信模板 1002012000 ==========
    ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1002012000, "短信模板不存在");
    ErrorCode SMS_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1002012001, "已经存在编码为【{}】的短信模板");

    // ========== 短信发送 1002013000 ==========
    ErrorCode SMS_SEND_MOBILE_NOT_EXISTS = new ErrorCode(1002013000, "手机号不存在");
    ErrorCode SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS = new ErrorCode(1002013001, "模板参数({})缺失");
    ErrorCode SMS_SEND_TEMPLATE_NOT_EXISTS = new ErrorCode(1002013002, "短信模板不存在");

    // ========== 短信验证码 1002014000 ==========
    ErrorCode SMS_CODE_NOT_FOUND = new ErrorCode(1002014000, "验证码不存在");
    ErrorCode SMS_CODE_EXPIRED = new ErrorCode(1002014001, "验证码已过期");
    ErrorCode SMS_CODE_USED = new ErrorCode(1002014002, "验证码已使用");
    ErrorCode SMS_CODE_NOT_CORRECT = new ErrorCode(1002014003, "验证码不正确");
    ErrorCode SMS_CODE_EXCEED_SEND_MAXIMUM_QUANTITY_PER_DAY = new ErrorCode(1002014004, "超过每日短信发送数量");
    ErrorCode SMS_CODE_SEND_TOO_FAST = new ErrorCode(1002014005, "短信发送过于频率");
    ErrorCode SMS_CODE_IS_EXISTS = new ErrorCode(1002014006, "手机号已被使用");
    ErrorCode SMS_CODE_IS_UNUSED = new ErrorCode(1002014007, "验证码未被使用");

    // ========== 租户信息 1002015000 ==========
    ErrorCode TENANT_NOT_EXISTS = new ErrorCode(1002015000, "租户不存在");
    ErrorCode TENANT_DISABLE = new ErrorCode(1002015001, "名字为【{}】的租户已被禁用");
    ErrorCode TENANT_EXPIRE = new ErrorCode(1002015002, "名字为【{}】的租户已过期");
    ErrorCode TENANT_CAN_NOT_UPDATE_SYSTEM = new ErrorCode(1002015003, "系统租户不能进行修改、删除等操作！");

    // ========== 租户套餐 1002016000 ==========
    ErrorCode TENANT_PACKAGE_NOT_EXISTS = new ErrorCode(1002016000, "租户套餐不存在");
    ErrorCode TENANT_PACKAGE_USED = new ErrorCode(1002016001, "租户正在使用该套餐，请给租户重新设置套餐后再尝试删除");
    ErrorCode TENANT_PACKAGE_DISABLE = new ErrorCode(1002016002, "名字为【{}】的租户套餐已被禁用");

    // ========== 错误码模块 1002017000 ==========
    ErrorCode ERROR_CODE_NOT_EXISTS = new ErrorCode(1002017000, "错误码不存在");
    ErrorCode ERROR_CODE_DUPLICATE = new ErrorCode(1002017001, "已经存在错误码");

    // ========== 社交用户 1002018000 ==========
    ErrorCode SOCIAL_USER_AUTH_FAILURE = new ErrorCode(1002018000, "社交授权失败，原因是：{}");
    ErrorCode SOCIAL_USER_UNBIND_NOT_SELF = new ErrorCode(1002018001, "社交解绑失败，非当前用户绑定");
    ErrorCode SOCIAL_USER_NOT_FOUND = new ErrorCode(1002018002, "社交授权失败，找不到对应的用户");

    // ========== 系统敏感词 1002019000 =========
    ErrorCode SENSITIVE_WORD_NOT_EXISTS = new ErrorCode(1002019000, "系统敏感词在所有标签中都不存在");
    ErrorCode SENSITIVE_WORD_EXISTS = new ErrorCode(1002019001, "系统敏感词已在标签中存在");

    // ========== OAuth2 客户端 1002020000 =========
    ErrorCode OAUTH2_CLIENT_NOT_EXISTS = new ErrorCode(1002020000, "OAuth2 客户端不存在");
    ErrorCode OAUTH2_CLIENT_EXISTS = new ErrorCode(1002020001, "OAuth2 客户端编号已存在");
    ErrorCode OAUTH2_CLIENT_DISABLE = new ErrorCode(1002020002, "OAuth2 客户端已禁用");
    ErrorCode OAUTH2_CLIENT_AUTHORIZED_GRANT_TYPE_NOT_EXISTS = new ErrorCode(1002020003, "不支持该授权类型");
    ErrorCode OAUTH2_CLIENT_SCOPE_OVER = new ErrorCode(1002020004, "授权范围过大");
    ErrorCode OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH = new ErrorCode(1002020005, "无效 redirect_uri: {}");
    ErrorCode OAUTH2_CLIENT_CLIENT_SECRET_ERROR = new ErrorCode(1002020006, "无效 client_secret: {}");

    // ========== OAuth2 授权 1002021000 =========
    ErrorCode OAUTH2_GRANT_CLIENT_ID_MISMATCH = new ErrorCode(1002021000, "client_id 不匹配");
    ErrorCode OAUTH2_GRANT_REDIRECT_URI_MISMATCH = new ErrorCode(1002021001, "redirect_uri 不匹配");
    ErrorCode OAUTH2_GRANT_STATE_MISMATCH = new ErrorCode(1002021002, "state 不匹配");
    ErrorCode OAUTH2_GRANT_CODE_NOT_EXISTS = new ErrorCode(1002021003, "code 不存在");

    // ========== OAuth2 授权 1002022000 =========
    ErrorCode OAUTH2_CODE_NOT_EXISTS = new ErrorCode(1002022000, "code 不存在");
    ErrorCode OAUTH2_CODE_EXPIRE = new ErrorCode(1002022000, "code 已过期");

    // ========== 系统应用 1002023000 ==========
    ErrorCode APP_NOT_EXISTS = new ErrorCode(1002023000, "系统应用不存在");
    ErrorCode APP_CODE_REPETITION = new ErrorCode(1002023001, "该Code重复，请更换");
    ErrorCode APP_NAME_REPETITION = new ErrorCode(1002023002, "该Name重复，请更换");

    // ========== 字典分类应用 1002024000 ==========
    ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(1002024000, "字典分类不存在");
    ErrorCode CATEGORY_APP_NOT_EXISTS = new ErrorCode(1002024001, "字典分类应用不存在");
    ErrorCode CATEGORY_DATA_NOT_EXISTS = new ErrorCode(1002024002, "字典分类数据不存在");
    ErrorCode CATEGORY_DATA_PARENT_ERROR = new ErrorCode(1002024003, "不能设置自己为父级字典");
    ErrorCode CATEGORY_DATA_NOT_EXISTENCE = new ErrorCode(1002024004, "父级字典不存在");
    ErrorCode CATEGORY_DATA_NAME_DUPLICATE = new ErrorCode(1002024005, "已经存在该名字的数据字典");
    ErrorCode CATEGORY_DATA_EXISTS_CHILDREN = new ErrorCode(1002024006, "存在子级字典，无法删除");
    ErrorCode CATEGORY_SYSTEM_NOT_DEL = new ErrorCode(1002024007, "不能删除内置的字典配置");
    ErrorCode CATEGORY_DATA_CHILDREN_NOT_EXISTS = new ErrorCode(1002024008, "没有子级字典");
    ErrorCode CATEGORY_CODE_ALREADY_EXISTS = new ErrorCode(1002024009, "该Code已经存在，请更换");
    ErrorCode CATEGORY_NAME_ALREADY_EXISTS = new ErrorCode(1002024010, "该名称已经存在，请更换");
    ErrorCode ACCEPT_LANGUAGE_NOT_NULL = new ErrorCode(1002024011, "Accept_Language不能为空");
    ErrorCode CATEGORY_DATA_APP_NOT_REPETITION = new ErrorCode(1002024012, "app不能重复");
    ErrorCode CATEGORY_DATA_ARGUMENTS_NOT_NULL = new ErrorCode(1002024013, "参数不能为空");
    ErrorCode CATEGORY_DATA_IMPORT_ERROR = new ErrorCode(1002024014, "字典目录导入失败");
    ErrorCode CATEGORY_DATA_REQUEST_PATH_ERROR = new ErrorCode(1002024015, "字典请求接口不存在");
    ErrorCode CATEGORY_DATA_REQUEST_PARAMETER_ERROR = new ErrorCode(1002024016, "字典请求接口参数错误【{}】");
    ErrorCode CATEGORY_DATA_REQUEST_ERROR = new ErrorCode(1002024017, "字典请求接口错误【{}】");
    ErrorCode CATEGORY_DATA_CREATE_VERSION_ERROR = new ErrorCode(1002024018, "创建版本号错误");
    ErrorCode CATEGORY_DATA_REQUEST_PARAMETER_NON = new ErrorCode(1002024019, "字典请求接口参数为空");
    ErrorCode CATEGORY_DATA_REQUEST_BODY_PARAMETER_ERROR = new ErrorCode(1002024020, "查询参数错误,参数：【{}】不正确或为空");
    ErrorCode CATEGORY_DATA_REQUEST_BODY_ERROR = new ErrorCode(1002024021, "查询错误：【{}】");
    ErrorCode CATEGORY_DATA_IDENTIFIER_REPETITION = new ErrorCode(1002024022, "逻辑业务主键重复，请更换");
    ErrorCode CATEGORY_DATA_TABLE_NOT_EXISTS = new ErrorCode(1002024023, "独立字典表未存在或无数据");


    // ====== 字段权限 1002025000 ==========
    ErrorCode FIELD_NOT_EXISTS = new ErrorCode(1002025000, "字段权限字段不存在");
    ErrorCode FIELD_CONFIG_NOT_EXISTS = new ErrorCode(1002025001, "字段权限配置不存在");
    ErrorCode FIELD_ITEM_NOT_EXISTS = new ErrorCode(1002025002, "字段条目不存在");
    ErrorCode FIELD_CONFIG_QUERY_ERROR = new ErrorCode(1002025003, "字段权限配置查询出错");
    ErrorCode FIELD_NAME_NOT_REPETITION = new ErrorCode(1002025004, "字段名称已经存在");
    ErrorCode FIELD_CONFIGCODE_NOT_NULL = new ErrorCode(1002025005, "ConfigCode不能为空");
    ErrorCode WORKFLOW_ID_NOT_FIND = new ErrorCode(1002025006, "没有找到workflowId");


    // ====== 多语言 1002026000 ==========
    ErrorCode I18N_NOT_EXISTS = new ErrorCode(1002026000, "多语言不存在");
    ErrorCode I18N_LEAST_ONE_DATA = new ErrorCode(1002024011, "多语言至少要有一条数据");
    ErrorCode I18N_LEAST_DATA_DUPLICATE = new ErrorCode(1002024012, "已经存在 label为【{}】的数据");
    ErrorCode I18N_LEAST_ARGUMENTS_NOT_NULL = new ErrorCode(1002024013, "参数不能为空");
    ErrorCode I18N_LEAST_LANG_NOT_REPETITION = new ErrorCode(1002024014, "该字段 语言为【{}】的数据不能重复");

    // ====== 合同配置 1002027000 ==========
    ErrorCode DUPLICATE_CONTRACT_TYPES = new ErrorCode(1002027000, "存在重复的合同类型或向不存在细类的小类中添加细类");
    ErrorCode INVALID_UPDATE_TYPE = new ErrorCode(1002027001, "【{}】业务域下，不存在【{}】类型的数据");
    ErrorCode INVALID_UUID = new ErrorCode(1002027002, "无效的UUID");
    ErrorCode UUID_NOT_EXISTS = new ErrorCode(1002027003, "UUID【{}】不存在");
    ErrorCode DUPLICATE_CONTRACT_ARCHIVES = new ErrorCode(1002027004, "存在重复的合同归档字段Code");
    ErrorCode NO_SMALL_TYPE = new ErrorCode(1002027005, "不存在对应的小类");
    ErrorCode INVALID_PROJECT_TYPE = new ErrorCode(1002027006, "无效的项目类型");

    ErrorCode INVALID_PARAMETER = new ErrorCode(1002027007, "参数错误");

    ErrorCode REDUNDANCY_FIELD = new ErrorCode(1002027008, "存在重复的字段");

    // ====== 工时后台 1002028000 ==========
    ErrorCode DELEGATION_ARGUMENTS_NOT_NULL = new ErrorCode(1002028000, "参数不能为空");
    ErrorCode DELEGATION_UNIT_DATA_DUPLICATE = new ErrorCode(1002028001, "已经存在【{}】的数据");
    ErrorCode DELEGATION_UNIT_DATA_ERROR = new ErrorCode(1002028002, "代理关系分类不存在");

    // ====== 项目管理代码生成规则 1002029000 ==========
    ErrorCode TASK_RULE_EXISTS = new ErrorCode(1002029000, "任务生成规则【{}】已存在");
    ErrorCode TASK_TYPE_NOT_EXISTS = new ErrorCode(1002029001, "任务类型不存在");
    ErrorCode DATE_TYPE_NOT_EXISTS = new ErrorCode(1002029002, "日期类型不存在");
    ErrorCode AR_OVERDUE_DAY_NOT_NULL = new ErrorCode(1002029003, "AR逾期的任务规则不能为空");
    ErrorCode WIP_OVERDUE_DAY_NOT_NULL = new ErrorCode(1002029004, "WIP逾期的任务规则不能为空");
    ErrorCode TER_EXCEED_STANDARD_NOT_NULL = new ErrorCode(1002029005, "TER超标的任务规则不能为空");
    ErrorCode CONTRACT_NOT_FILED_NOT_NULL = new ErrorCode(1002029006, "合同未归档任务规则不能为空");
    ErrorCode CODE_INACTIVITY_NOT_NULL = new ErrorCode(1002029007, "Code不活跃任务规则不能为空");
    ErrorCode TASK_RULE_NOT_EXISTS = new ErrorCode(1002029008, "任务生成规则不存在");
    ErrorCode TASK_RULE_LIST_REPEAT = new ErrorCode(1002029008, "子管理单位编码列表有重复数据");
    ErrorCode TASK_RULE__PARAM_NOT_EMPTY = new ErrorCode(1002030009, "任务生成规则对象不能为空");
    ErrorCode TASK_RULE_TASK_TYPE_LIST_REPEAT = new ErrorCode(1002029010, "任务类型列表列表有重复数据");
    ErrorCode TASK_RULE_TASK_ENTITY_SMU_CODE = new ErrorCode(1002029011, "smuCode长度不能超过16个字符");

    // ====== 项目管理Code规则 1002030000 ==========
    ErrorCode CODE_RULE_EXISTS = new ErrorCode(1002030000, "Code生成规则已存在");
    ErrorCode CODE_RULE_NOT_EXISTS = new ErrorCode(1002030001, "Code规则不存在");
    ErrorCode CODE_RULE_LIST_REPEAT = new ErrorCode(1002030002, "创建Code规则列表有重复数据");
    ErrorCode CODE_RULE_PARAM_NOT_EMPTY = new ErrorCode(1002030003, "创建Code规则对象不能为空");
    ErrorCode CODE_RULE_PROJECT_NAME_ONE = new ErrorCode(1002030004, "列表中存在重复的第一前缀Solution Family Name和第二前缀FSO Solution Name组合");
    ErrorCode CODE_RULE_PROJECT_NAME_TWO = new ErrorCode(1002030005, "列表中存在重复的第二前缀FSO Solution Name和赋值组合");
    ErrorCode CODE_RULE_PROJECT_CODE = new ErrorCode(1002030006, "全球服务编码和命名前缀组合存在重复数据");
    ErrorCode CODE_RULE_PARAM_NOT_MORE_THAN = new ErrorCode(1002030007, "创建Code规则不能超过500条");

    // ====== 项目管理CodeBlockLegalEntity规则 1002031000 ==========
    ErrorCode CODE_BLOCK_LEGAL_ENTITY_EXISTS = new ErrorCode(1002031000, "法律实体已存在");

    ErrorCode CODE_BLOCK_LEGAL_ENTITY_NOT_EXISTS = new ErrorCode(1002031001, "法律实体不存在");

    ErrorCode CODE_BLOCK_LEGAL_ENTITY = new ErrorCode(1002031002, "codeBlock宽表数据查询为空");

    ErrorCode CODE_BLOCK_LEGAL_ENTITY_SMU_CODE = new ErrorCode(1002031003, "smuCode长度不能超过16个字符");

    // ====== 项目管理APP_USER 1002032000 ==========
    ErrorCode APP_USER_EXISTS = new ErrorCode(1002032000, "应用用户信息已存在");

    ErrorCode APP_USER_NOT_EXISTS = new ErrorCode(1002032001, "应用用户信息不存在");


    // ====== 数据权限 1002033000 ==========
    ErrorCode CODE_BLOCK_NOT_NULL = new ErrorCode(1002033000, "codeBlocks字段不能为空");

    ErrorCode LEVEL_CONFIG_NOT_NULL = new ErrorCode(1002033001, "config字段不能为空");

    ErrorCode USER_DATA_ROLE_NOT_EXIST = new ErrorCode(1002033002, "该用户数据角色关联没有数据");


    // ====== 商机字段 1002034000 ==========
    ErrorCode SSL_CODE_NOT_NULL = new ErrorCode(1002034000, "业务线不能为空");

    ErrorCode SPECIAL_CONDITION_NOT_NULL = new ErrorCode(1002034001, "特殊条件不能为空");

    ErrorCode SPECIAL_CONDITION_NOT_EXIST = new ErrorCode(1002034002, "校验特殊条件类型不存在");

    ErrorCode SUB_CONDITION_NOT_NULL = new ErrorCode(1002034003, "子条件不能为空");

    ErrorCode SUB_CONDITION_NOT_EXIST = new ErrorCode(1002034004, "校验子条件类型不存在");

    ErrorCode COMPARE_TYPE_NOT_NULL = new ErrorCode(1002034005, "比较类型不能为空");

    ErrorCode COMPARE_TYPE_NOT_EXIST = new ErrorCode(1002034006, "校验比较条件类型不存在");

    ErrorCode SUB_CONDITION_CONFLICT = new ErrorCode(1002034007, "您选择的子条件有冲突，请重新选择");

    ErrorCode CONSULTING_CORE_TOO_LONG = new ErrorCode(1002034008, "consultingCore转换json字符串后太长，不能超过20000个字符");

    ErrorCode CONSULTING_FSO_TOO_LONG = new ErrorCode(1002034009, "consultingFso转换json字符串后太长，不能超过20000个字符");

    ErrorCode ASSURANCE_CORE_TOO_LONG = new ErrorCode(1002034010, "assuranceCore转换json字符串后太长，不能超过20000个字符");

    ErrorCode ASSURANCE_FSO_TOO_LONG = new ErrorCode(1002034011, "assuranceFso转换json字符串后太长，不能超过20000个字符");

    ErrorCode TAX_CORE_TOO_LONG = new ErrorCode(1002034012, "taxCore转换json字符串后太长，不能超过20000个字符");

    ErrorCode TAX_FSO_TOO_LONG = new ErrorCode(1002034013, "taxFso转换json字符串后太长，不能超过20000个字符");

    ErrorCode SAT_CORE_TOO_LONG = new ErrorCode(1002034014, "satCore转换json字符串后太长，不能超过20000个字符");

    ErrorCode SAT_FSO_TOO_LONG = new ErrorCode(1002034015, "satFso转换json字符串后太长，不能超过20000个字符");


    ErrorCode TIMESHEET_REPORT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1002028002, "导入工时数据不能为空");
    // ====== sync 1002035000 ==========
    ErrorCode SYNC_EXCEPTION = new ErrorCode(1002035001, "同步异常");
    ErrorCode SYNC_ERROR = new ErrorCode(1002035002, "同步业务错误");
    ErrorCode SYNC_ANALYSIS_EXCEPTION = new ErrorCode(1002035003, "同步解析异常");
    ErrorCode SYNC_ANALYSIS_ERROR = new ErrorCode(1002035004, "同步解析业务错误");

    // ====== 文件管理File 1002036000 ==========
    ErrorCode FILE_TYPE_EXCEPTION = new ErrorCode(1002036001, "上传文件类型错误");

    // ====== JOB 1002036100 ==========
    ErrorCode JOB_REC_NOT_EXISTS = new ErrorCode(1002036101, "对应的记录不存在");
    ErrorCode JOB_UPDATE_STATUS_ERROR = new ErrorCode(1002036102, "更新状态错误");

    // ====== 财务费率 1002037000 ==========
    ErrorCode FINANCE_REQUEST_PARAMETER_ERROR = new ErrorCode(1002037000, "请求参数有误，请检查必填字段");
    ErrorCode FINANCE_GRADE_LEAVEL_ERROR = new ErrorCode(1002037001, "activityType 不存在");
    ErrorCode FINANCE_USER_GPN_ERROR = new ErrorCode(1002037002, "员工GPN不存在");
    ErrorCode FINANCE_CODE_BLOCK_ERROR = new ErrorCode(1002037003, "code block不存在");

    ErrorCode FINANCE_DATA_ERROR = new ErrorCode(1002037004, "未获取到rate数据");
}
