2.6 KiB
2.6 KiB
2026-05-23 会话记忆
项目:tiny-erp
核心决策
-
包路径确定:
com.witsoft.erp(不是 com.example 或 com.witsoft.tinyerp)- tiny 是项目别名,包名使用正式名称 erp
-
技术栈确认:
- JDK 11+(不是 1.8)
- Spring Boot 2.7.18
- MyBatis Plus 3.5.3.1
- PostgreSQL 14+
- Spring Security + JWT (jjwt 0.11.5)
- SpringDoc OpenAPI 3(不是 Knife4j)
-
多租户方案:ecid 字段隔离 + TenantLineHandler 自动拦截
- 系统表(sys_*)不进行租户隔离(登录时需要查询)
- 业务表全部需要 ecid 隔离
- 所有表的 ecid 字段为 NOT NULL
-
API 设计规范:
- 分页列表接口使用 POST(不是 GET)
- 请求体携带查询条件 + 分页参数
- 统一返回格式:{code, message, data}
-
异常处理规范:
- BusinessException 支持自定义错误码
- GlobalExceptionHandler 统一处理各类异常
- 参数校验失败返回 400 + 具体错误信息
-
模块命名:基础数据模块(bd)替代主数据模块(md)
已完成模块
| 模块 | 功能 | 状态 |
|---|---|---|
| system | 租户、用户、字典、JWT 认证 | ✅ |
| bd | 物料分类、工厂、仓库、物料 | ✅ |
| om | 销售订单、发货单(含库存扣减) | ✅ |
| mc | 采购订单 | ✅ |
| im | 库存查询、库存流水 | ✅ |
数据库脚本结构
scripts/postgresql/
├── 00-init.sql # 数据库初始化
├── 10-system.sql # 系统模块
├── 20-basic-data.sql # 基础数据模块
├── 30-sales.sql # 销售模块
├── 40-purchase.sql # 采购模块
├── 50-inventory.sql # 库存模块
└── 99-data.sql # 初始化数据
默认账号
- admin / admin123 / default
- test / admin123 / default
待开发功能
- 采购收货单 + 库存增加(P0)
- 销售退货单(P1)
- 采购申请单(P1)
- 库存调拨(P1)
- 库存盘点(P1)
- 操作日志、登录日志(P1/P2)
- 报表统计(P2)
关键代码位置
- JWT 工具:
framework/security/JwtUtil.java - 租户上下文:
framework/tenant/TenantContext.java - 租户拦截器:
framework/tenant/TenantLineHandlerImpl.java - 全局异常:
common/core/GlobalExceptionHandler.java - 业务异常:
common/core/BusinessException.java
文档位置
- README.md:项目根目录
- 开发方案:
yangxuan/设计/01-开发方案.md
⚠️ 2026-05-26: 当前只关注 md(主数据)和 im(库存)模块。om/mc/fin/system/home 代码已存在但不再关注。