Files

3.7 KiB
Raw Permalink Blame History

MEMORY.md —— 长期记忆

🌐 语言要求

  • 所有交互一律使用中文
  • 技术术语可保留原文(API、SQL、DTO 等),但解释、对话、回复用中文

Java 注释规范(统一约定)

  1. 所有公共接口和类必须包含 Javadoc
  2. 注释语言:中文描述业务背景,技术术语保留英文(如 NPE)
  3. 禁止生成 "Gets the value of X" 这类无意义的 getter/setter 注释
  4. 复杂算法必须在代码块上方解释核心逻辑
  5. 禁止使用 HTML 标签

物料近似查询 searchSimilar() 优先级(2026-05-29 产品决策,不查规格)

产品决定不查询规格字段,物料近似查询 searchSimilar() 按以下优先级分步:

  1. 名称精确匹配 (material_name = keyword) — 优先级最高
  2. 名称前缀匹配 (material_name LIKE 'keyword%')
  3. 名称模糊匹配 (material_name LIKE '%keyword%')
  4. 编码模糊匹配 (material_code LIKE '%keyword%') — 兜底

去重原则:已在前置层级匹配的物料不再在后置层级重复出现。 保留旧 searchByNameLike() 不动。

开发注意事项(统一约定)

  1. 复用优先:逻辑雷同时提取公共方法复用,避免重复代码
  2. 业务表仅存物料id:物料相关字段仅存 material_id,其他数据(编码、名称、规格、单位等)通过关联查询填充,防止名称/编码变动后数据不一致
  3. 填充在 Service 层:关联数据的填充逻辑统一在 Service 层处理,不放在 Controller 或 Mapper
  4. 首个版本直接改 DDL:2026年5月为 v1.0,脚本直接修改建表语句,不需要写 ALTER TABLE 迁移
  5. 字典优先用 DictService:字典取值优先使用 DictService 公共方法,不手写字典查询逻辑
  6. 禁止 List.of()Java 8 不兼容,统一用 Collections.emptyList() 替代

Git 提交约定

  1. 禁止 commit — 不做任何 commit 操作,只允许查看、修改代码
  2. 提示 commit 时必须附带 commit message — 让用户可直接复制运行
  3. 如需提交代码,由用户手动执行 commit
  4. application.yml / application-local.yml 由用户自行提交 — Agent 绝不碰这两个配置文件的版本管理

部署约定

  1. 禁止自动部署测试环境 — 不做任何自动部署操作
  2. 代码修改后由用户手动决定何时部署

数据库脚本执行状态(截至 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_pricelast_outbound_price
  • fix-fin-add-order-date.sql - 财务表添加 order_date
  • fix-write-off-add-updater.sql - 核销表添加 updaterupdate_time
  • fix-write-off-remove-receipt-payment-id.sql - 删除 fin_ar_write_off.receipt_idfin_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

双库状态: 本地库和测试库结构已同步,所有脚本均已执行完毕。