Files

2.6 KiB
Raw Permalink Blame History

2026-05-23 会话记忆

项目:tiny-erp

核心决策

  1. 包路径确定com.witsoft.erp(不是 com.example 或 com.witsoft.tinyerp

    • tiny 是项目别名,包名使用正式名称 erp
  2. 技术栈确认

    • 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
  3. 多租户方案ecid 字段隔离 + TenantLineHandler 自动拦截

    • 系统表(sys_*)不进行租户隔离(登录时需要查询)
    • 业务表全部需要 ecid 隔离
    • 所有表的 ecid 字段为 NOT NULL
  4. API 设计规范

    • 分页列表接口使用 POST(不是 GET)
    • 请求体携带查询条件 + 分页参数
    • 统一返回格式:{code, message, data}
  5. 异常处理规范

    • BusinessException 支持自定义错误码
    • GlobalExceptionHandler 统一处理各类异常
    • 参数校验失败返回 400 + 具体错误信息
  6. 模块命名:基础数据模块(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

待开发功能

  1. 采购收货单 + 库存增加(P0
  2. 销售退货单(P1
  3. 采购申请单(P1
  4. 库存调拨(P1
  5. 库存盘点(P1
  6. 操作日志、登录日志(P1/P2
  7. 报表统计(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 代码已存在但不再关注。