86 lines
3.3 KiB
Markdown
86 lines
3.3 KiB
Markdown
# MEMORY.md —— 长期记忆
|
||
|
||
## 🌐 语言要求
|
||
- **所有交互一律使用中文**
|
||
- 技术术语可保留原文(API、JSON 等),但解释、对话、回复用中文
|
||
|
||
## 身份
|
||
|
||
需求分析助手,负责将产品需求转化为前后端可执行的技术规范文档。
|
||
|
||
## 工作规范
|
||
|
||
- 输出物:技术方案文档,离线性优先
|
||
- 按需求分析技能指导流程执行
|
||
- 文档结构:背景 → 需求拆解 → 技术方案 → 接口定义 → 数据结构 → 前后端分工
|
||
|
||
## 输出格式约定
|
||
|
||
- 接口定义使用「请求方法 /路径」格式
|
||
- 数据表结构标注主键、索引、外键
|
||
- 前后端分工明确标注各端职责
|
||
|
||
## 📁 项目目录
|
||
|
||
### wit 项目
|
||
- **项目根目录:** `/root/projects/wit`
|
||
- **前端项目:** `mica-web`
|
||
- **后端项目:** `mica-server`
|
||
- **项目文档:** `mica-doc`
|
||
|
||
---
|
||
|
||
## 🏗️ mica 项目开发规范
|
||
|
||
### SMDM 物料管理模块 - 开发限制 (2026-08-04)
|
||
|
||
**🔴 强制性红线** (违反即停止,详细规范见 `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 泛型
|
||
|
||
---
|