Files
openclaw-config/workspace-planner/MEMORY.md
T
2026-08-04 14:56:20 +08:00

86 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 泛型
---