骨架代码规范

This commit is contained in:
杨轩
2026-08-04 14:56:20 +08:00
parent 4637b17ca9
commit fcb30e1c69
15 changed files with 21027 additions and 16 deletions
+55
View File
@@ -62,6 +62,61 @@
- 在更改配置或调度器之前(如 crontab、systemd 单元、nginx 配置、shell rc 文件),先检查现有状态,默认保留/合并。
- `trash` > `rm`(可恢复优于永久删除)
- 有疑问时,先询问。
- **禁止擅自提交项目代码到 git** - 必须先询问用户确认后再提交
---
## 🏗️ mica 项目开发规范
### SMDM 物料管理模块 - 开发限制
**🔴 强制性红线** (违反即停止,详细规范见 `MEMORY.md``memory/2026-08-04.md`)
| # | 红线 | 违规示例 | 正确做法 |
|---|------|---------|----------|
| 1 | **表前缀必须过滤** | `DmpMdItemInfo` | `ItemInfo` |
| 2 | **API 必须放在 apis.smdm 包** | `smd.api.ItemApi` | `apis.smdm.ItemApi` |
| 3 | **查询只能用 Mapper** | 使用 MyBatis-Plus | 原生 MyBatis XML |
| 4 | **改删必须 Feign 远程调用** | 本地直接 UPDATE/DELETE | 调用 SMDM 服务 API |
| 5 | **实体必须继承 BaseDomain** | 独立定义审计字段 | `extends BaseDomain` |
| 6 | **只使用指定 13 个业务字段** | 添加表中其他字段 | 仅用规范内字段 |
| 7 | **代码必须生成到 smd 目录** | `com.witsoft.mica.item.*` | `com.witsoft.mica.smd.*` |
**📋 核心规范摘要**:
- **包路径**: `com.witsoft.mica.smd.*` (本地业务), `com.witsoft.mica.apis.smdm.*` (Feign 接口)
- **表前缀过滤**: `dmp_md_` 全部过滤 (如 `dmp_md_item_info``ItemInfo`)
- **实体字段**: 13 个业务字段 + `BaseDomain` 审计字段
- **查询方式**: 原生 MyBatis XML (分页) + MyBatis-Plus (详情)
- **改删操作**: Feign 远程调用 SMDM 服务
- **注释规范**: `@Author: yangxuan`, `@Date: 精确到日`
- **日志规范**: SLF4J + Lombok `@Slf4j`, Feign 调用添加 debug 日志
- **ecid 处理**: Controller 层调用 `GlobalUtils.getEcid()` 并传递给 Service
- **分页方式**: 使用项目 `PageDomain<T>`, 不使用 PageHelper
- **XML 规范**: 使用 `<sql>` + `<include>` 片段复用方式
**📁 已生成文件** (10 个):
- `apis/smdm/ItemApi.java` - Feign 接口
- `smd/entity/ItemInfo.java` - 实体类
- `smd/mapper/ItemMapper.java` + `ItemMapper.xml` - MyBatis 映射
- `smd/service/ItemService.java` + `impl/ItemServiceImpl.java` - 服务层
- `smd/controller/ItemController.java` - 控制器
- `smd/dto/ItemQueryDTO.java` + `ItemFormDTO.java` - DTO
- `smd/vo/ItemVO.java` - VO
**🐛 已修正问题** (12 个):
1. ResponseModel 静态引用 → `ResponseModel.succeed(data)`
2. 分页 XML / 详情 MP 混合使用
3. 移除编码查询条件
4. Feign 调用添加 debug 日志
5. Controller 层 ecid 处理
6. 恢复分页 XML 查询
7. 使用 PageDomain (非 PageHelper)
8. 删除 queryByCode 方法
9. ResponseModel 泛型参数化
10. Map 类型转换警告
11. XML 使用 `<sql>` + `<include>` 片段
12. ItemApi ResponseModel 泛型
---