feat: add mica-smdm-scaffold proposal and rollback files; create unit testing specifications and SKILL documentation
This commit is contained in:
@@ -83,3 +83,54 @@
|
||||
12. ItemApi ResponseModel 泛型
|
||||
|
||||
---
|
||||
|
||||
### 数据字典模块 - 开发规范 (2026-08-04)
|
||||
|
||||
**📋 定位**: 配置项/工具类,不是业务实体
|
||||
|
||||
**🔴 强制性红线**:
|
||||
|
||||
| # | 红线 | 正确做法 |
|
||||
|---|------|---------|
|
||||
| 1 | **不需要 Controller** | 纯内部工具服务 |
|
||||
| 2 | **不需要 Feign API** | 不暴露外部接口 |
|
||||
| 3 | **不需要缓存实现** | 后续可调用 Feign 接口缓存 |
|
||||
| 4 | **不需要继承 BaseDomain** | 配置项不是业务实体 |
|
||||
|
||||
**📋 核心规范**:
|
||||
|
||||
- **包路径**: `com.witsoft.mica.smd.*`
|
||||
- **功能**: 通过 `dictionary_type.en_code` 查询 `dictionary_data` 的 `en_code → full_name` 映射
|
||||
- **输出格式**: `Map<String, String>` (en_code → full_name)
|
||||
- **重复处理**: 同一 typeCode 下 en_code 重复时取第一条 (按 sort_code + id 排序)
|
||||
- **多租户支持**: 自动获取 ecid 过滤
|
||||
- **软删除过滤**: delete_mark = 0
|
||||
|
||||
**📁 已生成文件** (5 个):
|
||||
- `smd/mapper/DictionaryMapper.java` - 字典查询 Mapper 接口
|
||||
- `smd/mapper/DictionaryMapper.xml` - 原生 SQL 查询 (JOIN type + data)
|
||||
- `smd/dto/DictionaryItem.java` - 字典数据项 DTO
|
||||
- `smd/service/DictionaryService.java` - 字典服务接口
|
||||
- `smd/service/impl/DictionaryServiceImpl.java` - 字典服务实现
|
||||
|
||||
**📁 已生成枚举类** (2 个):
|
||||
- `smd/enums/StatusEnum.java` - 状态枚举 (Y=启用,N=禁用)
|
||||
- `smd/enums/YesNoEnum.java` - 是否枚举 (Y=是,N=否)
|
||||
|
||||
**🔧 字典填充规范**:
|
||||
|
||||
- **VO 设计**: 添加 xxxName 字段存储字典翻译后的中文名称
|
||||
- **Service 层填充**: 批量查询字典,避免 N+1 问题
|
||||
- **通用方法**: `fillDictionaryData(ItemVO itemVO, Map<String, Map<String, String>> dictMaps)`
|
||||
- **性能要求**: 列表查询只查 1 次字典,批量填充
|
||||
|
||||
**📊 物料信息字典映射**:
|
||||
|
||||
| VO 字段 | 字典类型 | 说明 |
|
||||
|--------|---------|------|
|
||||
| `itemTypeName` | `materialsType` | 物料类型名称 |
|
||||
| `propertiesName` | `itemProperties` | 物料属性名称 |
|
||||
| `pickingPropertyName` | `pickingProperty` | 领料属性名称 |
|
||||
| `statusName` | `StatusEnum` | 状态名称 (枚举) |
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user