3.7 KiB
3.7 KiB
MEMORY.md —— 长期记忆
🌐 语言要求
- 所有交互一律使用中文
- 技术术语可保留原文(API、SQL、DTO 等),但解释、对话、回复用中文
Java 注释规范(统一约定)
- 所有公共接口和类必须包含 Javadoc
- 注释语言:中文描述业务背景,技术术语保留英文(如 NPE)
- 禁止生成 "Gets the value of X" 这类无意义的 getter/setter 注释
- 复杂算法必须在代码块上方解释核心逻辑
- 禁止使用 HTML 标签
物料近似查询 searchSimilar() 优先级(2026-05-29 产品决策,不查规格)
产品决定不查询规格字段,物料近似查询 searchSimilar() 按以下优先级分步:
- 名称精确匹配 (
material_name = keyword) — 优先级最高 - 名称前缀匹配 (
material_name LIKE 'keyword%') - 名称模糊匹配 (
material_name LIKE '%keyword%') - 编码模糊匹配 (
material_code LIKE '%keyword%') — 兜底
去重原则:已在前置层级匹配的物料不再在后置层级重复出现。
保留旧 searchByNameLike() 不动。
开发注意事项(统一约定)
- 复用优先:逻辑雷同时提取公共方法复用,避免重复代码
- 业务表仅存物料id:物料相关字段仅存
material_id,其他数据(编码、名称、规格、单位等)通过关联查询填充,防止名称/编码变动后数据不一致 - 填充在 Service 层:关联数据的填充逻辑统一在 Service 层处理,不放在 Controller 或 Mapper
- 首个版本直接改 DDL:2026年5月为 v1.0,脚本直接修改建表语句,不需要写 ALTER TABLE 迁移
- 字典优先用 DictService:字典取值优先使用
DictService公共方法,不手写字典查询逻辑 - 禁止 List.of():Java 8 不兼容,统一用
Collections.emptyList()替代
Git 提交约定
- 禁止 commit — 不做任何 commit 操作,只允许查看、修改代码
- 提示 commit 时必须附带 commit message — 让用户可直接复制运行
- 如需提交代码,由用户手动执行 commit
application.yml/application-local.yml由用户自行提交 — Agent 绝不碰这两个配置文件的版本管理
部署约定
- 禁止自动部署测试环境 — 不做任何自动部署操作
- 代码修改后由用户手动决定何时部署
数据库脚本执行状态(截至 2026-05-29)
本地库 (localhost:31983) 和 测试库 (Docker db:5432) 均已执行:
基础脚本:
- ✅ 00-init.sql - 基础表结构
- ✅ 10-system.sql - 系统数据
- ✅ 20-master-data-init.sql - 基础数据
- ✅ 22-material-type-dict.sql - 物料类型字典
- ✅ 30-sales.sql - 销售模块
- ✅ 40-purchase.sql - 采购模块
- ✅ 50-inventory.sql - 库存模块
- ✅ 99-default-warehouse.sql - 默认仓库
序列脚本:
- ✅ 23-stocktake-sequence.sql - 盘点单号序列 (
seq_im_stocktake_no) - ✅ 24-customer-sequence.sql - 客户编码序列 (
seq_md_customer_code) - ✅ 25-supplier-sequence.sql - 供应商编码序列 (
seq_md_supplier_code)
字段变更脚本:
- ✅ 26-material-last-price.sql - 物料表添加
last_inbound_price、last_outbound_price - ✅ fix-fin-add-order-date.sql - 财务表添加
order_date - ✅ fix-write-off-add-updater.sql - 核销表添加
updater、update_time - ✅ fix-write-off-remove-receipt-payment-id.sql - 删除
fin_ar_write_off.receipt_id、fin_ap_write_off.payment_id - ✅ fix-ai-oper-log.sql - sys_oper_log 添加 AI 字段(
ai_session_id,ai_model,prompt_tokens,completion_tokens,total_tokens)
双库状态: 本地库和测试库结构已同步,所有脚本均已执行完毕。