---
description: 业务枚举、数据字典前后端同步规范，适配若依字典+达梦初始化SQL
globs: ["**/*Enum.java","**/*.sql"]
alwaysApply: false
---
# 冲突优先级声明
达梦数据库规范、Java编码规范优先级高于本文件。

# 枚举 & 数据字典同步开发规范
## 一、业务枚举开发规范
1. 存放路径：enums包，命名 XxxEnum；
2. 枚举固定结构：code（Integer编码）、desc（中文描述）；
3. 基础方法：getCode()、getDesc()，提供静态工具方法根据code获取枚举；
4. 所有业务状态、类型、标识全部使用枚举，禁止硬编码魔法数字；
5. 枚举添加中文类注释、每个实例添加单行注释说明业务含义；
6. 禁止枚举中编写数据库查询、远程调用、复杂业务逻辑。

示例标准枚举：
public enum GoodsStatusEnum {
    UP(1, "上架"),
    DOWN(2, "下架");

    private final Integer code;
    private final String desc;

    GoodsStatusEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    // getter、根据code查询工具方法
}

## 二、若依数据字典规范
1. 系统字典复用内置两张表：sys_dict_type（字典类型）、sys_dict_data（字典项）；
2. 字典类型编码规则：`business_xxx`，区分系统字典与业务字典；
3. 达梦初始化SQL规范：
    1. 先判断字典类型不存在再插入；
    2. 批量插入字典项，适配达梦INSERT多行语法；
    3. 所有字符串值使用单引号，注释符合达梦语法；
4. 前后端同步规则：
    - 后端存储数字code；
    - 管理后台Vue使用 <dict-tag /> 组件自动翻译中文；
    - UniApp APP端封装全局字典翻译工具，根据code展示中文；
5. 区分使用场景：
    - 固定不变、全项目通用状态：优先使用Java枚举；
    - 支持后台动态新增修改的分类、标签：使用数据库数据字典。

## 三、枚举与字典同步约束
1. 若业务同时使用枚举+字典，必须保证code编码完全一致，避免前后端翻译错乱；
2. 新增业务状态时，同步更新枚举类、字典初始化SQL、前端字典选项；
3. 禁止枚举code与字典项value不一致，统一Integer数字编码；
4. 生产环境字典初始化脚本仅执行新增，不修改已有字典项，避免线上数据变更风险。

## 四、禁止事项
❌ 禁止业务状态硬编码数字，必须枚举/字典；
❌ 禁止字典初始化SQL使用MySQL专属语法，严格适配达梦；
❌ 禁止枚举存储字符串编码，统一Integer；
❌ 禁止前端硬编码状态文本，全部依赖枚举/字典翻译；
❌ 禁止动态可变业务分类使用Java枚举，必须数据库字典。
