开放ERP系统 (open-erp)
基于 webman v2 + Flutter 的全栈ERP系统。
功能清单
| 业务域 | 功能 | 说明 |
|---|---|---|
| 🔐 认证 | 登录/注册/刷新令牌/登出 | 点击验证码 + JWT + 黑名单 |
| 账号锁定 | 5 次失败锁定 15 分钟 | |
| 并发会话限制 | 同一用户最多 3 个有效 Token | |
| 📊 仪表盘 | 经营总览/销售看板/库存看板/财务看板 | Redis 缓存 5 分钟 |
| 👥 用户管理 | CRUD + 批量删除/启禁用 | 软删除 + 密码二次确认 |
| Excel 批量导入 | 逐行校验 + 错误报告 | |
| 🔒 角色权限 | 角色 CRUD + 权限树 | RBAC method.path 粒度鉴权 |
| ⚙ 系统配置 | 键值对 CRUD | 分组管理 |
| 📋 操作审计 | 日志查询 + 来源端检测 | 8 平台自动识别 |
| 📁 文件管理 | 上传/Excel 导出/PDF 导出 | 敏感数据自动脱敏 |
| 🛡 安全防护 | 18 层纵深防御 | XSS/SQL注入/路径遍历/命令注入/CSRF/限流/CSP… |
| 🏥 运维 | 健康检查/metrics/API 文档/security.txt | Prometheus + OpenAPI 3.0 |
| 📦 商品管理 | 商品档案/SKU/多规格/多单位/分类/品牌/价格策略 | 多级分类树 + 多单位换算 |
| 仓库库位 | 多仓库多库位管理 | |
| 供应商/客户档案 | 联系人/银行账户/信用额度 | |
| 📥 采购管理 | 申请→订单→收货→退货→结算 | 完整采购流程 + 审批 |
| 📤 销售管理 | 报价→订单→发货→退货→结算 | 报价转订单 + 销售毛利 |
| 🏗 库存管理 | 实时库存/批次/序列号/调拨/盘点/预警 | 移动加权平均成本核算 |
| 💰 财务管理 | 应收应付/收付款/日记账/报销/利润表/固定资产/税务/多币种/预算/成本利润中心 | 自动生成应收应付 + 核销 + 全面财务管理 |
| 🤝 CRM | 客户/联系人/跟进记录/营销活动/服务工单/分析报表/销售漏斗/公海池/报价/合同 | 客户全生命周期管理 |
| ✅ 审批工作流 | 工作流定义/提交审批/批准/拒绝/撤回/我的审批 | 多节点审批流程引擎 |
| 🔔 消息通知 | 通知列表/已读标记/未读计数/全部已读 | 实时消息推送与状态追踪 |
| 📐 项目管理 | 项目/任务/工时记录 | 项目进度跟踪与资源管理 |
| 👤 人力资源 | 部门/员工/职位/考勤/请假/薪资 | 全面人事管理 |
| 🏭 生产制造 | BOM/生产订单/工艺路线/工作站/MRP | 物料需求计划与生产执行 |
| 📈 自定义报表 | 报表模板/数据集/字段/筛选器/执行/定时调度 | 可视化报表构建器 |
下载
ERP 模块
各业务模块间的数据流转:
- 采购收货 → 自动入库(移动加权平均成本核算) → 自动生成应付
- 销售发货 → 自动出库 → 自动生成应收
- 收付款 → 核销应收应付 → 更新日记账
- 凭证审核 → 自动更新总账(科目汇总) + 明细账(逐笔记录)
- 资产负债表 → 自动汇总总账期末余额生成
- 现金流量表 → 自动汇总现金银行日记账生成(经营/投资/筹资三分类)
- 审批工作流 → 业务单据提交审批 → 多节点流转 → 审批结果回调业务模块
- 消息通知 → 审批/预警/系统事件触发 → 实时推送 → 用户标记已读
- MRP → 基于销售订单+BOM → 计算物料需求 → 生成采购建议/生产建议
技术栈
| 层 | 技术 | 说明 |
|---|---|---|
| 后端框架 | webman v2 (workerman) | 超高性能 PHP 常驻进程框架 |
| PHP 版本 | 8.3+ | |
| 数据库 | MySQL 8.0+ | 表前缀 erik_,BIGINT 非自增主键 |
| 搜索引擎 | Elasticsearch | 通过 webman-scout 同步与查询 |
| 管理端前端 | Flutter 3.x | Web 端为 PC 管理后台风格(apps/flutter/) |
| 移动端 | HarmonyOS ArkTS | 鸿蒙原生客户端(apps/harmonyos/),支持手机/平板/2in1 |
核心依赖
| 包 | 用途 | |
|---|---|---|
erikwang2013/snowflake-php |
Snowflake 算法生成全局唯一 BIGINT 主键 | |
erikwang2013/hashids |
API 层 ID 加解密,隐藏真实数据库 ID | |
erikwang2013/jwt-webman |
JWT 认证令牌签发与校验 | |
erikwang2013/encryption |
接口传输层敏感数据加解密 | |
erikwang2013/encryptable |
数据库存储层敏感字段自动加解密 | |
erikwang2013/webman-scout |
Elasticsearch 数据同步与全文检索 | |
erikwang2013/season |
国家旗帜数据 | |
erikwang2013/poster-php |
点击验证码生成与校验 + 海报生成 | |
erikwang2013/security-php |
安全工具检查 | |
phpoffice/phpspreadsheet |
Excel 导出 | |
barryvdh/laravel-dompdf |
PDF 导出(基于 Dompdf) | |
hg/apidoc |
API 文档自动生成 | 注解式接口文档,管理端/客户端分组 |
国际化
国际化 | Accept-Language 头自动检测 | 中文/English 双语支持
项目结构
1 | open-erp/ |
环境要求
- PHP >= 8.3
- Composer 2.x
- MySQL >= 8.0
- Flutter >= 3.41(仅前端开发需要)
- Elasticsearch >= 7.x(可选,搜索功能需要)
快速开始
1. 安装依赖
1 | composer install |
2. 配置环境变量
复制并修改环境变量(可选,不配置则使用 config/*.php 中的默认值):
1 | cp .env.example .env |
关键配置项:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
JWT_SECRET |
JWT 签名密钥 | open-admin-jwt-secret-change-in-production |
HASHIDS_SALT |
Hashids 盐值 | open-admin-hashids-salt-2026 |
ENCRYPTION_KEY |
API 加密密钥 | 32 字节默认值 |
SNOWFLAKE_DATACENTER_ID |
数据中心 ID (0-31) | 1 |
SNOWFLAKE_WORKER_ID |
工作节点 ID (0-31) | 1 |
SCOUT_HOSTS |
ES 地址 | http://localhost:9200 |
生产环境务必修改所有密钥为随机字符串。
3. 初始化数据库
按顺序执行 database/migrations/ 下的 SQL 文件:
1 | # 建表 |
4. 启动服务
1 | php start.php start |
默认监听 http://0.0.0.0:8787。
5. 启动前端(可选)
Flutter 管理后台(Web 端):
1 | cd apps/flutter |
HarmonyOS 客户端(手机端):
使用 DevEco Studio 打开 apps/harmonyos/ 目录,连接真机或模拟器运行。
6. Docker Compose 一键部署(推荐生产环境)
项目提供完整的 Docker 编排方案,包含 5 个服务:Nginx、PHP (webman app)、MySQL、Redis、Elasticsearch。
1 | # 1. 配置 Docker 环境变量 |
Dockerfile: PHP 8.3 + OPcache + Composer,基于php:8.3-clidocker-compose.yml: 5 个服务编排,网络隔离,数据卷持久化.env.docker: Docker 环境专用环境变量
数据库规范
- 表前缀:
erik_ - 主键: 所有表主键均为
id BIGINT UNSIGNED NOT NULL,禁用 AUTO_INCREMENT - ID 生成: 主键 ID 由应用层
SnowflakeService::generate()生成,分布式唯一 - 必备字段: 每张表必须包含
id,created_at,updated_at - 软删除: 需要软删除的表添加
deleted_at DATETIME DEFAULT NULL - 敏感字段: 手机号、邮箱、身份证号等使用
encryptable插件自动加解密,数据库字段使用VARCHAR(500)存储密文
API 规范
API 文档
项目使用 hg/apidoc 自动生成接口文档,访问 /apidoc 查看。
- 管理端接口 (Admin):25 个模块分组,含完整请求参数和响应结构
- 客户端接口 (Service API):认证/验证码/商品 3 个分组
- 所有接口标注了 JWT 认证、API 版本、国际化等全局请求头
统一响应格式
1 | { |
业务错误码
| 错误码 | 含义 | 说明 |
|---|---|---|
0 |
成功 | |
400 |
请求参数错误 | |
401 |
未登录(Token 无效或过期) | |
403 |
无权限 / 安全拦截 | RBAC 鉴权失败 / SecurityFilter 攻击检测 |
404 |
资源不存在 | |
422 |
参数验证失败 | |
413 |
请求体过大 | SecurityFilter 触发,超过 10MB |
405 |
请求方法不允许 | SecurityFilter 触发,仅允许 GET/POST/PUT/DELETE/OPTIONS/HEAD |
415 |
不支持的媒体类型 | SecurityFilter 触发,Content-Type 非 JSON |
429 |
请求过于频繁 | RateLimit 触发 / 账号锁定(5次登录失败锁定15分钟) |
500 |
服务器内部错误 |
国际化
请求头 Accept-Language 自动切换语言(zh-CN → 中文, en → English),默认中文。
ID 处理
- 请求/响应中的 ID: 使用 hashids 加密为字符串,不暴露真实数据库 ID
- 接口路径:
GET /admin/user/{hashid}— 路径中的{id}为 hashid 字符串 - 数据库存储: BIGINT 原值,由 snowflake 生成
API 版本
API 版本通过请求头控制,不在 URL 中体现:
1 | API-Version: v1 |
- 未携带版本号时默认使用
v1 - 不支持的版本返回
400 Bad Request - 新增版本时只需创建
app/api/{version}/controller/目录,中间件注册新版本即可
限流
基于 Redis 滑动窗口算法,默认 60 次/分钟/IP/路由。敏感接口更严格:
- 登录:10 次/分钟
- 注册:5 次/分钟
响应头包含 X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset。超限返回 429 并附带 Retry-After。
中间件架构
全局中间件对所有请求生效,按序执行:
1 | Locale(Accept-Language 自动检测,设置语言环境) |
/health 和 /api/docs 为公开端点,仅经过 Locale → Cors → SecurityFilter → RateLimit。
安全增强:
- 账号锁定:连续 5 次登录失败,账号自动锁定 15 分钟,期间登录返回 429
- 并发会话限制:同一用户最多 3 个有效 Token,超出时最旧 Token 自动加入黑名单
- security.txt:
GET /.well-known/security.txt提供 RFC 9116 标准安全联系信息 - Nginx 安全配置:参考
docs/nginx-security.conf提供完整的反向代理安全加固示例
认证
登录与注册需要先通过点击验证码校验:
- 客户端请求
POST /api/captcha/generate获取验证码图片(base64 PNG)和文字目标列表 - 用户按顺序点击图中对应文字位置,收集点击坐标
[{x, y}, ...] - 登录时一并提交
captcha_key和clicks,服务端先校验验证码再校验凭证
1 | POST /api/auth/login |
管理端后续接口需要 JWT 认证:
1 | Authorization: Bearer <token> |
登录成功后返回 access_token,有效期 2 小时;另返回 refresh_token,有效期 14 天。
登出时 Token 加入 Redis 黑名单,有效期内不可复用。POST /admin/profile/logout
敏感操作二次确认
删除用户、角色、权限等敏感操作需要在请求体中传入当前登录用户的 password 进行身份二次确认:
1 | DELETE /admin/user/{id} |
API 列表
所有
/api/*接口需要在请求头中携带API-Version: v1(不传则默认 v1)。
公开接口
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/health |
健康检查(DB/Redis/ES 状态) |
GET |
/api/docs |
OpenAPI 3.0 规范文档 |
POST |
/api/captcha/generate |
生成点击验证码 |
POST |
/api/captcha/verify |
校验点击验证码 |
POST |
/api/auth/login |
登录(需 captcha) |
POST |
/api/auth/register |
注册(需 captcha) |
POST |
/api/auth/refresh |
刷新令牌 |
GET |
/metrics |
Prometheus 监控指标 |
管理端接口(需 JWT + RBAC)
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/admin/dashboard |
仪表盘数据(Redis 缓存 5 分钟) |
GET |
/admin/user |
用户列表(分页 + 搜索) |
POST |
/admin/user |
创建用户 |
GET |
/admin/user/{id} |
用户详情 |
PUT |
/admin/user/{id} |
更新用户 |
DELETE |
/admin/user/{id} |
删除用户(软删除,需密码确认) |
POST |
/admin/user/batch/destroy |
批量删除用户(需密码确认) |
POST |
/admin/user/batch/status |
批量启用/禁用用户 |
GET |
/admin/role |
角色列表 |
POST |
/admin/role |
创建角色 |
PUT |
/admin/role/{id} |
更新角色 |
DELETE |
/admin/role/{id} |
删除角色(需密码确认) |
GET |
/admin/permission |
权限树 |
POST |
/admin/permission |
创建权限 |
PUT |
/admin/permission/{id} |
更新权限 |
DELETE |
/admin/permission/{id} |
删除权限(级联子权限,需密码确认) |
GET |
/admin/config |
系统配置列表 |
POST |
/admin/config |
创建配置项 |
PUT |
/admin/config/{id} |
更新配置项 |
DELETE |
/admin/config/{id} |
删除配置项(需密码确认) |
GET |
/admin/log |
操作日志(分页 + 筛选) |
PUT |
/admin/profile |
更新个人信息 |
PUT |
/admin/profile/password |
修改密码 |
POST |
/admin/profile/logout |
登出(JWT 黑名单) |
POST |
/admin/export/excel |
导出 Excel |
POST |
/admin/export/pdf |
导出 PDF |
POST |
/admin/import/users |
Excel 导入用户 |
POST |
/admin/upload |
文件上传(图片/文档,最大 10MB) |
业务接口(需 JWT + RBAC)
| 方法 | 路径 | 说明 |
|---|---|---|
GET/POST/PUT/DELETE |
/admin/product |
商品 CRUD(含 SKU、价格) |
GET/POST/PUT/DELETE |
/admin/category |
商品分类 CRUD(树形) |
GET/POST/PUT/DELETE |
/admin/brand |
品牌 CRUD |
GET/POST/PUT/DELETE |
/admin/warehouse |
仓库 CRUD |
GET |
/admin/warehouse/{id}/locations |
仓库下库位列表 |
GET/POST/PUT/DELETE |
/admin/location |
库位 CRUD |
GET/POST/PUT/DELETE |
/admin/supplier |
供应商 CRUD |
GET/POST/PUT/DELETE |
/admin/customer |
客户 CRUD |
ANY |
/admin/customer-level |
客户等级管理 |
GET/POST/PUT/DELETE |
/admin/purchase/apply |
采购申请 |
GET/POST/PUT/DELETE |
/admin/purchase/order |
采购订单 |
GET/POST/PUT/DELETE |
/admin/purchase/receive |
采购收货(自动入库+生成应付) |
GET/POST/PUT/DELETE |
/admin/purchase/return |
采购退货 |
ANY |
/admin/purchase/settlement |
供应商结算 |
GET/POST/PUT/DELETE |
/admin/sales/quotation |
销售报价 |
GET/POST/PUT/DELETE |
/admin/sales/order |
销售订单 |
GET/POST/PUT/DELETE |
/admin/sales/delivery |
销售发货(自动出库+生成应收) |
GET/POST/PUT/DELETE |
/admin/sales/return |
销售退货 |
ANY |
/admin/sales/settlement |
客户结算 |
ANY |
/admin/inventory |
实时库存查询 |
ANY |
/admin/inventory/flow |
出入库流水 |
GET/POST/PUT/DELETE |
/admin/inventory/transfer |
库存调拨 |
GET/POST/PUT/DELETE |
/admin/inventory/check |
盘点任务 |
GET/POST/PUT/DELETE |
/admin/inventory/alert |
库存预警规则 |
GET/POST/PUT/DELETE |
/admin/finance/ar-ap |
应收应付 |
GET/POST/PUT/DELETE |
/admin/finance/voucher |
记账凭证 |
GET/POST/PUT/DELETE |
/admin/finance/receipt |
收款单 |
GET/POST/PUT/DELETE |
/admin/finance/payment |
付款单 |
ANY |
/admin/finance/cash-journal |
现金银行日记账 |
GET/POST/PUT/DELETE |
/admin/finance/expense |
费用报销 |
ANY |
/admin/finance/report/profit |
利润表 |
GET/POST/PUT/DELETE |
/admin/finance/bank-account |
银行账户 |
ANY |
/admin/finance/general-ledger |
总账(按科目+期间汇总) |
ANY |
/admin/finance/subsidiary-ledger |
明细账(科目逐笔明细) |
ANY |
/admin/finance/report/balance-sheet |
资产负债表 |
ANY |
/admin/finance/report/cash-flow |
现金流量表(经营/投资/筹资) |
GET/POST/PUT/DELETE |
/admin/finance/asset |
固定资产 CRUD + 计提折旧 |
GET/POST/DELETE |
/admin/finance/tax-rate |
税率配置 |
ANY |
/admin/finance/tax-record |
税务记录 |
GET/POST/PUT/DELETE |
/admin/finance/currency |
币种管理 |
GET/POST/PUT/DELETE |
/admin/finance/exchange-rate |
汇率管理 |
GET/POST/PUT/DELETE |
/admin/finance/budget |
预算管理(含预算vs实际对比) |
GET/POST/PUT/DELETE |
/admin/finance/cost-center |
成本中心(树形结构) |
GET/POST/PUT/DELETE |
/admin/finance/profit-center |
利润中心(树形结构) |
GET/POST/PUT/DELETE |
/admin/crm/opportunity |
商机管理 |
GET/POST/PUT/DELETE |
/admin/crm/follow |
跟进记录 |
GET/POST/PUT/DELETE |
/admin/crm/funnel |
销售漏斗阶段配置 |
GET/POST/PUT/DELETE |
/admin/crm/contact |
联系人 |
ANY |
/admin/crm/pool |
公海池(客户列表) |
POST |
/admin/crm/pool/claim/{id} |
领取公海客户 |
POST |
/admin/crm/pool/release/{id} |
释放客户到公海 |
GET/POST/PUT/DELETE |
/admin/crm/pool/rules |
公海池规则 |
GET/POST/PUT/DELETE |
/admin/crm/contract |
合同 CRUD |
POST |
/admin/crm/contract/{id}/transition |
合同状态流转 |
GET/POST/PUT/DELETE |
/admin/crm/quotation |
CRM报价 |
POST |
/admin/crm/quotation/{id}/to-contract |
报价转合同 |
GET/POST/PUT/DELETE |
/admin/crm/campaign |
营销活动 |
GET/POST/PUT/DELETE |
/admin/crm/ticket |
服务工单 |
POST |
/admin/crm/ticket/{id}/assign |
分配工单 |
POST |
/admin/crm/ticket/{id}/resolve |
解决工单 |
POST |
/admin/crm/ticket/{id}/reply |
回复工单 |
ANY |
/admin/crm/analytics/report |
客户分析报表 |
POST |
/admin/crm/analytics/generate |
生成分析报表 |
ANY/POST |
/admin/crm/analytics/metric |
分析指标 |
ANY |
/admin/dashboard/sales |
销售面板 |
ANY |
/admin/dashboard/inventory |
库存面板 |
ANY |
/admin/dashboard/finance |
财务面板 |
GET/POST/PUT/DELETE |
/admin/workflow |
工作流定义 CRUD |
POST |
/admin/workflow/{id}/submit |
提交审批 |
POST |
/admin/approval/{id}/approve |
批准 |
POST |
/admin/approval/{id}/reject |
拒绝 |
POST |
/admin/approval/{id}/withdraw |
撤回 |
ANY |
/admin/approval/my |
我的审批列表 |
ANY |
/admin/notification/my |
我的通知 |
POST |
/admin/notification/{id}/read |
标记已读 |
POST |
/admin/notification/read-all |
全部已读 |
ANY |
/admin/notification/unread-count |
未读计数 |
GET/POST/PUT/DELETE |
/admin/project |
项目 CRUD |
GET/POST/PUT/DELETE |
/admin/project/task |
项目任务 CRUD |
GET/POST/PUT/DELETE |
/admin/project/timesheet |
工时记录 CRUD |
GET/POST/PUT/DELETE |
/admin/hr/department |
部门 CRUD |
GET/POST/PUT/DELETE |
/admin/hr/employee |
员工 CRUD |
GET/POST/PUT/DELETE |
/admin/hr/position |
职位 CRUD |
ANY/POST |
/admin/hr/attendance |
考勤/打卡 |
GET/POST/PUT/DELETE |
/admin/hr/leave |
请假 CRUD + 审批 |
GET/POST/PUT/DELETE |
/admin/hr/salary |
薪资 CRUD + 发放 |
ANY/POST |
/admin/hr/salary-item |
薪资项目 |
GET/POST/PUT/DELETE |
/admin/mfg/bom |
BOM CRUD |
GET/POST/PUT/DELETE |
/admin/mfg/production |
生产订单 + 开工/完工 |
GET/POST/PUT/DELETE |
/admin/mfg/routing |
工艺路线 CRUD |
GET/POST/PUT/DELETE |
/admin/mfg/workstation |
工作站 CRUD |
GET/POST/PUT/DELETE |
/admin/mfg/mrp |
MRP 计划 + 生成 |
GET/POST/PUT/DELETE |
/admin/report |
报表模板 CRUD |
POST |
/admin/report/{id}/execute |
执行报表 |
ANY |
/admin/report/{id}/result |
报表结果 |
GET/POST/PUT/DELETE |
/admin/report/schedule |
报表定时调度 |
客端接口(需 API-Version 头)
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/api/product |
商品列表(不含进价) |
GET |
/api/product/{hashid} |
商品详情(含零售/批发价) |
前端说明
Flutter 管理后台(PC 风格)
- 布局: 侧边栏(可折叠 64px/240px)+ 顶栏 + 内容区,响应式三断点(手机/平板/桌面)
- 页面: 登录、仪表盘、用户管理、角色权限、系统配置、操作日志、个人中心
- 状态管理: GetX(
ApiService单例 +AuthServiceToken 持久化) - 仪表盘: 统计卡片、趋势折线图(fl_chart)、饼图、最近操作日志
- 导出: Excel/PDF 导出,PDF 含不可移除版权信息
- 批量操作: 多选批量删除、批量启用/禁用
- 主题: Material 3 浅色/深色双主题
HarmonyOS 移动端
- 页面: 登录、仪表盘、用户列表/详情、个人中心
- 认证: JWT Bearer + 401 自动无感刷新 Token,刷新失败自动重定向登录页
- 存储: Token 通过 AppStorage 管理
开发规范
- 全局函数/类引用不加前置
\,统一使用use导入 - 所有 PHP 文件头部必须包含版权声明
- 所有配置文件必须包含中文注释说明
- 数据库主键必须由应用层 snowflake 生成,禁止自增
- API 层所有参数和响应中的 ID 必须通过 hashids 加解密
- AdminPermission 中间件使用 Redis 缓存用户权限(TTL=60s),消除 N+1 查询瓶颈
部署
Docker Compose(推荐)
项目根目录提供 docker-compose.yml,编排 5 个服务:
| 服务 | 镜像 | 端口 |
|---|---|---|
nginx |
nginx:alpine | 80, 443 |
app |
本地 Dockerfile 构建 |
8787 |
mysql |
mysql:8.0 | 3306 |
redis |
redis:7-alpine | 6379 |
elasticsearch |
elasticsearch:8.x | 9200 |
PHP 镜像通过 Dockerfile 构建,基础镜像 php:8.3-cli,启用 OPcache。
1 | cp .env.docker .env |
CI/CD
GitHub Actions 持续集成流水线:.github/workflows/ci.yml
- PHP 语法检查 (
php -l) - PHPUnit 单元测试
- Flutter 静态分析 (
flutter analyze)
数据库备份
database/backup/ 目录:
backup.sh— mysqldump + gzip 备份,自动清理 30 天前旧备份restore.sh— 交互式恢复,列出可用备份供选择
Nginx 安全配置
生产部署请参考 docs/nginx-security.conf 配置反向代理安全加固。
开放ERP系统提供三个版本,适应不同规模企业的需求。
版本概览
| 维度 | 简化版 (Lite) | 标准版 (Standard) | 完整版 (Full) |
|---|---|---|---|
| 分支 | lite |
standard |
full |
| 数据表 | 62 | 72 | 122 |
| 控制器 | 48 | 42 | 70 |
| 业务模块 | 6 | 6 | 12 |
功能对比
系统管理
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 用户管理(CRUD + 批量 + 导入) | ✔ | ✔ | ✔ |
| 角色权限(RBAC 三级权限树) | ✔ | ✔ | ✔ |
| 系统配置(键值对) | ✔ | ✔ | ✔ |
| 操作审计(8 平台来源端检测) | ✔ | ✔ | ✔ |
| 文件上传 / Excel 导出 / PDF 导出 | ✔ | ✔ | ✔ |
| 健康检查 / Prometheus 指标 | ✔ | ✔ | ✔ |
| JWT 认证 + 点击验证码 | ✔ | ✔ | ✔ |
| 18 层安全防护 | ✔ | ✔ | ✔ |
| 国际化 (i18n) 中/英双语 | — | — | ✔ |
商品与基础数据
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 商品档案 + 多规格 SKU | ✔ | ✔ | ✔ |
| 多单位换算 + 价格策略 | ✔ | ✔ | ✔ |
| 商品分类(树形) + 品牌 | ✔ | ✔ | ✔ |
| 多仓库 + 多库位 | ✔ | ✔ | ✔ |
| 供应商 / 客户档案 | ✔ | ✔ | ✔ |
采购管理
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 采购申请 + 审批 | ✔ | ✔ | ✔ |
| 采购订单 | ✔ | ✔ | ✔ |
| 采购收货(自动入库 + 生成应付) | ✔ | ✔ | ✔ |
| 采购退货 | ✔ | ✔ | ✔ |
| 供应商结算 | ✔ | ✔ | ✔ |
销售管理
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 报价单(支持转订单) | ✔ | ✔ | ✔ |
| 销售订单 | ✔ | ✔ | ✔ |
| 销售发货(自动出库 + 生成应收) | ✔ | ✔ | ✔ |
| 销售退货 | ✔ | ✔ | ✔ |
| 客户结算 + 毛利分析 | ✔ | ✔ | ✔ |
库存管理
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 实时库存(四维精度) | ✔ | ✔ | ✔ |
| 出入库流水 | ✔ | ✔ | ✔ |
| 批次追踪 + 序列号追踪 | ✔ | ✔ | ✔ |
| 库存调拨 | ✔ | ✔ | ✔ |
| 盘点管理(计划+动态) | ✔ | ✔ | ✔ |
| 库存预警(上下限告警) | ✔ | ✔ | ✔ |
| 移动加权平均成本核算 | ✔ | ✔ | ✔ |
财务管理
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 应收应付(自动生成 + 核销) | ✔ | ✔ | ✔ |
| 收款单 / 付款单 | ✔ | ✔ | ✔ |
| 现金银行日记账 | ✔ | ✔ | ✔ |
| 费用报销(提交 → 审批 → 打款) | ✔ | ✔ | ✔ |
| 利润表 | ✔ | ✔ | ✔ |
| 固定资产折旧 | — | — | ✔ |
| 税务管理(多税种配置) | — | — | ✔ |
| 多币种 + 汇率管理 | — | — | ✔ |
| 预算管理(预算 vs 实际对比) | — | — | ✔ |
| 成本中心 / 利润中心(树形核算) | — | — | ✔ |
CRM
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 客户联系人管理 | ✔ | ✔ | ✔ |
| 跟进记录 | ✔ | ✔ | ✔ |
| 营销活动管理 | — | — | ✔ |
| 服务工单(优先级+分配+解决流程) | — | — | ✔ |
| 客户分析报表 | — | — | ✔ |
平台能力
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 审批工作流引擎 | — | — | ✔ |
| 消息通知系统 | — | — | ✔ |
| API 文档 (hg/apidoc) | ✔ | ✔ | ✔ |
扩展模块
| 功能 | Lite(开源) | Standard(商业) | Full(商业) |
|---|---|---|---|
| 项目管理(WBS/甘特图/工时) | — | — | ✔ |
| 人力资源(组织/考勤/薪资) | — | — | ✔ |
| 生产制造(BOM/MRP/工单/工艺) | — | — | ✔ |
| 自定义报表构建器 | — | — | ✔ |
适用场景
| 版本 | 推荐场景 |
|---|---|
| Lite(开源) | 中小型商贸企业,以进销存+基础财务为核心,不需要审批流程和扩展模块 |
| Standard(商业) | 同等功能规模,精简数据表设计,适合定制化开发基础 |
| Full(商业) | 中大型企业,需要完整的进销存+财务+CRM+HR+制造+项目管理全栈平台 |
升级路径
1 | Lite (简化版) |
本文链接: https://erik.xyz/2026/05/23/open-erp-lite/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!