企业资源管理ERP设计分析

ERP 企业资源管理系统设计文档

1. 系统概述

1.1 项目简介

ERP 是一套完整的企业资源管理系统,旨在为企业提供全面的业务管理解决方案,包含采购管理、销售管理、库存管理、财务管理等核心功能模块。系统采用微服务架构,前后端分离设计,具有高度的可扩展性和可维护性。

1.2 系统目标

  • 实现企业业务流程的数字化管理
  • 提高企业运营效率和管理水平
  • 提供实时的业务数据和决策支持
  • 确保数据安全和系统稳定

1.3 适用范围

本系统适用于中小型企业的日常业务管理,包括但不限于制造业、贸易业、服务业等行业。

2. 技术架构

2.1 技术栈

分类 技术 版本 说明
后端语言 Java 17 核心开发语言
后端框架 Spring Boot 3.2 应用开发框架
微服务框架 Spring Cloud 2023 服务治理框架
ORM框架 MyBatis-Plus 3.5 数据库访问框架
数据库 MySQL 8.0 关系型数据库
缓存 Redis 7.0 分布式缓存
认证 JWT - 无状态认证
前端框架 Vue 3.4 前端开发框架
前端语言 TypeScript 5.3 类型安全的JavaScript超集
构建工具 Vite 5.0 前端构建工具
UI组件库 Element Plus 2.4 前端UI组件库
状态管理 Pinia 2.1 前端状态管理库
路由 Vue Router 4.2 前端路由库
图表库 ECharts 5.4 数据可视化图表库

2.2 系统架构

2.2.1 整体架构

系统采用微服务架构,分为以下几个核心模块:

  1. erp-common:公共模块,包含通用工具类、异常处理、安全组件等
  2. erp-service:业务服务模块,包含多个微服务
  3. erp-web:前端项目,基于Vue 3 + TypeScript开发
2.2.2 微服务模块
服务名称 服务端口 功能描述
service-system 8081 系统管理服务,负责用户、角色、权限管理
service-basic 8082 基础信息服务,负责产品、客户、供应商等基础数据管理
service-purchase 8083 采购管理服务,负责采购订单、采购入库等
service-sales 8084 销售管理服务,负责销售订单、销售出库等
service-inventory 8085 库存管理服务,负责库存查询、盘点、调拨等
service-finance 8086 财务管理服务,负责应收账款、应付账款等
service-production 8087 生产管理服务,负责生产计划、MRP运算等
service-orion - 流程中心服务,基于BPMN 2.0的工作流引擎
2.2.3 前端架构

前端采用Vue 3 + TypeScript + Element Plus的技术栈,使用Vite作为构建工具。前端项目结构如下:

  • api:API接口封装
  • assets:静态资源
  • components:公共组件
  • layout:布局组件
  • router:路由配置
  • stores:状态管理
  • styles:样式文件
  • utils:工具函数
  • views:页面视图

3. 系统模块设计

3.1 系统管理模块

3.1.1 功能设计
  • 用户管理:用户的增删改查、密码重置、状态管理
  • 角色管理:角色的增删改查、权限分配
  • 权限管理:菜单权限、按钮权限的管理
  • 部门管理:部门的增删改查、部门结构维护
3.1.2 核心类设计
  • SysUser:用户实体类
  • SysRole:角色实体类
  • SysMenu:菜单实体类
  • SysUserRole:用户角色关联类
  • SysRoleMenu:角色菜单关联类
3.1.3 关键接口
  • POST /api/user/login:用户登录
  • GET /api/user/info:获取用户信息
  • GET /api/role/list:获取角色列表
  • GET /api/menu/tree:获取菜单树

3.2 基础信息模块

3.2.1 功能设计
  • 产品资料:产品的增删改查、产品分类管理
  • 客户资料:客户的增删改查、客户分类管理
  • 供应商资料:供应商的增删改查、供应商分类管理
  • 仓库设置:仓库的增删改查、仓库状态管理
  • BOM设置:产品BOM的维护、BOM版本管理
3.2.2 核心类设计
  • Product:产品实体类
  • ProductCategory:产品分类实体类
  • Customer:客户实体类
  • CustomerCategory:客户分类实体类
  • Supplier:供应商实体类
  • Warehouse:仓库实体类
  • BOM:BOM实体类
3.2.3 关键接口
  • GET /api/product/list:获取产品列表
  • GET /api/customer/list:获取客户列表
  • GET /api/supplier/list:获取供应商列表
  • GET /api/warehouse/list:获取仓库列表

3.3 采购管理模块

3.3.1 功能设计
  • 采购订单:采购订单的创建、编辑、审核、查询
  • 采购入库:采购入库单的创建、编辑、审核、查询
  • 采购退货:采购退货单的创建、编辑、审核、查询
3.3.2 核心类设计
  • PurchaseOrder:采购订单实体类
  • PurchaseOrderItem:采购订单明细实体类
  • PurchaseInbound:采购入库单实体类
  • PurchaseInboundItem:采购入库明细实体类
  • PurchaseReturn:采购退货单实体类
3.3.3 关键接口
  • POST /api/purchase/order/create:创建采购订单
  • GET /api/purchase/order/list:获取采购订单列表
  • POST /api/purchase/inbound/create:创建采购入库单

3.4 销售管理模块

3.4.1 功能设计
  • 销售订单:销售订单的创建、编辑、审核、查询
  • 销售出库:销售出库单的创建、编辑、审核、查询
  • 销售退货:销售退货单的创建、编辑、审核、查询
3.4.2 核心类设计
  • SalesOrder:销售订单实体类
  • SalesOrderItem:销售订单明细实体类
  • SalesOutbound:销售出库单实体类
  • SalesOutboundItem:销售出库明细实体类
  • SalesReturn:销售退货单实体类
3.4.3 关键接口
  • POST /api/sales/order/create:创建销售订单
  • GET /api/sales/order/list:获取销售订单列表
  • POST /api/sales/outbound/create:创建销售出库单

3.5 库存管理模块

3.5.1 功能设计
  • 产品库存:库存查询、库存预警
  • 库存盘点:盘点单的创建、编辑、审核、查询
  • 库存调拨:调拨单的创建、编辑、审核、查询
  • 库存报损/报溢:报损单、报溢单的创建、审核、查询
  • 产品组装:组装单的创建、编辑、审核、查询
3.5.2 核心类设计
  • Inventory:库存实体类
  • StockCheck:库存盘点单实体类
  • StockTransfer:库存调拨单实体类
  • InventoryLoss:库存报损单实体类
  • InventoryOverage:库存报溢单实体类
  • ProductAssembly:产品组装单实体类
3.5.3 关键接口
  • GET /api/inventory/stock/list:获取库存列表
  • POST /api/inventory/check/create:创建库存盘点单
  • POST /api/inventory/transfer/create:创建库存调拨单

3.6 财务管理模块

3.6.1 功能设计
  • 应收账款:应收账款的查询、核销
  • 应付账款:应付账款的查询、核销
  • 银行流水:银行流水的录入、查询
  • 收款单/付款单:收款单、付款单的创建、审核、查询
3.6.2 核心类设计
  • Receivable:应收账款实体类
  • Payable:应付账款实体类
  • BankFlow:银行流水实体类
  • Receipt:收款单实体类
  • Payment:付款单实体类
3.6.3 关键接口
  • GET /api/finance/receivable/list:获取应收账款列表
  • GET /api/finance/payable/list:获取应付账款列表
  • POST /api/finance/receipt/create:创建收款单

3.7 流程中心模块

3.7.1 功能设计
  • 流程定义:流程的设计、部署、管理
  • 流程实例:流程实例的启动、查询、管理
  • 任务管理:待办任务、已办任务的查询、处理
3.7.2 核心类设计
  • ProcessDefinition:流程定义实体类
  • ProcessInstance:流程实例实体类
  • Task:任务实体类
3.7.3 关键接口
  • GET /api/process/definition/list:获取流程定义列表
  • POST /api/process/instance/start:启动流程实例
  • GET /api/process/task/list:获取任务列表

4. 数据库设计

4.1 数据库表结构

4.1.1 系统管理表
表名 描述 关键字段
sys_user 用户表 id, username, password, real_name, email, phone, status
sys_role 角色表 id, role_name, role_code, description, status
sys_menu 菜单表 id, menu_name, menu_code, path, component, icon, parent_id, permission
sys_user_role 用户角色关联表 id, user_id, role_id
sys_role_menu 角色菜单关联表 id, role_id, menu_id
sys_dept 部门表 id, dept_name, parent_id, status
4.1.2 基础信息表
表名 描述 关键字段
product 产品表 id, product_code, product_name, category_id, unit, price, status
product_category 产品分类表 id, category_name, parent_id, status
customer 客户表 id, customer_code, customer_name, contact_person, phone, address, status
customer_category 客户分类表 id, category_name, parent_id, status
supplier 供应商表 id, supplier_code, supplier_name, contact_person, phone, address, status
supplier_category 供应商分类表 id, category_name, parent_id, status
warehouse 仓库表 id, warehouse_code, warehouse_name, address, status
bom BOM表 id, product_id, version, status
bom_item BOM明细表 id, bom_id, material_id, quantity, unit
4.1.3 采购管理表
表名 描述 关键字段
purchase_order 采购订单表 id, order_code, supplier_id, order_date, total_amount, status
purchase_order_item 采购订单明细表 id, order_id, product_id, quantity, unit_price, amount
purchase_inbound 采购入库表 id, inbound_code, order_id, warehouse_id, inbound_date, total_amount, status
purchase_inbound_item 采购入库明细表 id, inbound_id, product_id, quantity, unit_price, amount
purchase_return 采购退货表 id, return_code, order_id, supplier_id, return_date, total_amount, status
4.1.4 销售管理表
表名 描述 关键字段
sales_order 销售订单表 id, order_code, customer_id, order_date, total_amount, status
sales_order_item 销售订单明细表 id, order_id, product_id, quantity, unit_price, amount
sales_outbound 销售出库表 id, outbound_code, order_id, warehouse_id, outbound_date, total_amount, status
sales_outbound_item 销售出库明细表 id, outbound_id, product_id, quantity, unit_price, amount
sales_return 销售退货表 id, return_code, order_id, customer_id, return_date, total_amount, status
4.1.5 库存管理表
表名 描述 关键字段
inventory 库存表 id, product_id, warehouse_id, quantity, cost_price
stock_check 库存盘点表 id, check_code, warehouse_id, check_date, status
stock_check_item 库存盘点明细表 id, check_id, product_id, actual_quantity, system_quantity, difference
stock_transfer 库存调拨表 id, transfer_code, from_warehouse_id, to_warehouse_id, transfer_date, status
stock_transfer_item 库存调拨明细表 id, transfer_id, product_id, quantity
inventory_loss 库存报损表 id, loss_code, warehouse_id, loss_date, total_amount, status
inventory_loss_item 库存报损明细表 id, loss_id, product_id, quantity, cost_price, amount
inventory_overage 库存报溢表 id, overage_code, warehouse_id, overage_date, total_amount, status
inventory_overage_item 库存报溢明细表 id, overage_id, product_id, quantity, cost_price, amount
product_assembly 产品组装表 id, assembly_code, warehouse_id, assembly_date, status
product_assembly_item 产品组装明细表 id, assembly_id, product_id, quantity, type
4.1.6 财务管理表
表名 描述 关键字段
receivable 应收账款表 id, receivable_code, customer_id, amount, due_date, status
payable 应付账款表 id, payable_code, supplier_id, amount, due_date, status
bank_flow 银行流水表 id, flow_date, amount, type, description, status
receipt 收款单表 id, receipt_code, customer_id, amount, receipt_date, status
payment 付款单表 id, payment_code, supplier_id, amount, payment_date, status

4.2 数据关系图

has
has
has
has
parent-child
parent-child
belongs to
belongs to
parent-child
belongs to
parent-child
belongs to
parent-child
has
belongs to
has
related to
belongs to
has
belongs to
has
related to
belongs to
belongs to
belongs to
has
belongs to
has
from
to
belongs to
belongs to
belongs to
belongs to
SYS_USER
SYS_USER_ROLE
SYS_ROLE
SYS_ROLE_MENU
SYS_MENU
SYS_DEPT
PRODUCT
PRODUCT_CATEGORY
CUSTOMER
CUSTOMER_CATEGORY
SUPPLIER
SUPPLIER_CATEGORY
PURCHASE_ORDER
PURCHASE_ORDER_ITEM
PURCHASE_INBOUND
PURCHASE_INBOUND_ITEM
WAREHOUSE
SALES_ORDER
SALES_ORDER_ITEM
SALES_OUTBOUND
SALES_OUTBOUND_ITEM
INVENTORY
STOCK_CHECK
STOCK_CHECK_ITEM
STOCK_TRANSFER
STOCK_TRANSFER_ITEM
RECEIVABLE
PAYABLE
RECEIPT
PAYMENT

5. 核心业务流程

5.1 采购业务流程

创建采购订单
审核采购订单
创建采购入库单
审核采购入库单
更新库存
生成应付账款
创建付款单
审核付款单
核销应付账款

5.2 销售业务流程

创建销售订单
审核销售订单
创建销售出库单
审核销售出库单
更新库存
生成应收账款
创建收款单
审核收款单
核销应收账款

5.3 库存业务流程

盘点
调拨
报损
报溢
组装
库存查询
库存操作类型
创建盘点单
创建调拨单
创建报损单
创建报溢单
创建组装单
审核盘点单
审核调拨单
审核报损单
审核报溢单
审核组装单
更新库存

5.4 财务业务流程

应收账款管理
创建收款单
审核收款单
核销应收账款
应付账款管理
创建付款单
审核付款单
核销应付账款
银行流水管理
录入银行流水
审核银行流水

5.5 系统管理流程

用户管理
创建用户
分配角色
角色管理
创建角色
分配权限
菜单管理
创建菜单
设置权限
部门管理
创建部门
设置部门结构

6. 安全设计

6.1 认证与授权

  • 认证:采用JWT无状态认证机制,用户登录后获取token,后续请求携带token进行身份验证
  • 授权:基于角色的访问控制(RBAC),通过角色分配权限,用户通过角色获得相应的权限
  • 权限控制:细粒度的权限控制,包括菜单权限、按钮权限等

6.2 数据安全

  • 数据加密:敏感数据(如密码)采用BCrypt加密存储
  • 传输加密:使用HTTPS协议进行数据传输
  • 数据脱敏:敏感信息(如手机号、邮箱)在展示时进行脱敏处理
  • 数据备份:定期进行数据备份,确保数据安全

6.3 接口安全

  • 接口鉴权:所有接口都需要进行身份验证和权限检查
  • 防SQL注入:使用MyBatis-Plus的参数化查询,防止SQL注入攻击
  • 防XSS攻击:对输入数据进行过滤和转义,防止XSS攻击
  • 防CSRF攻击:使用token进行CSRF防护
  • 接口限流:对接口进行限流,防止恶意请求

6.4 系统安全

  • 日志记录:详细记录系统操作日志,便于审计和排查问题
  • 异常处理:统一的异常处理机制,避免敏感信息泄露
  • 安全审计:定期进行安全审计,发现和修复安全漏洞
  • 依赖管理:定期更新依赖包,修复已知安全漏洞

7. 部署与集成方案

7.1 部署架构

系统采用微服务架构,部署方案如下:

  1. 开发环境:本地开发,各服务独立运行
  2. 测试环境:集成测试,各服务部署在测试服务器
  3. 生产环境:正式部署,各服务部署在生产服务器,使用负载均衡

7.2 部署步骤

7.2.1 后端部署
  1. 环境准备

    • JDK 17+
    • MySQL 8.0+
    • Redis 7.0+
    • Maven 3.8+
  2. 数据库初始化

    • 创建数据库:`CREATE DATABASE erp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • 导入初始化脚本:SOURCE sql/init_database.sql;
  3. 编译打包

    bash 复制代码
    cd dev
    mvn clean install -DskipTests
  4. 启动服务

    bash 复制代码
    # 启动系统管理服务
    java -jar erp-service/service-system/target/service-system-1.0.0.jar
    
    # 启动基础信息服务
    java -jar erp-service/service-basic/target/service-basic-1.0.0.jar
    
    # 启动采购管理服务
    java -jar erp-service/service-purchase/target/service-purchase-1.0.0.jar
    
    # 启动销售管理服务
    java -jar erp-service/service-sales/target/service-sales-1.0.0.jar
    
    # 启动库存管理服务
    java -jar erp-service/service-inventory/target/service-inventory-1.0.0.jar
    
    # 启动财务管理服务
    java -jar erp-service/service-finance/target/service-finance-1.0.0.jar
    
    # 启动生产管理服务
    java -jar erp-service/service-production/target/service-production-1.0.0.jar
    
    # 启动流程中心服务
    java -jar erp-service/service-orion/target/service-orion-1.0.0.jar
7.2.2 前端部署
  1. 环境准备

    • Node.js 18+
    • npm 9+
  2. 安装依赖

    bash 复制代码
    cd dev/erp-web
    npm install
  3. 构建项目

    bash 复制代码
    npm run build
  4. 部署静态文件

    • dist 目录下的文件部署到Nginx或其他静态文件服务器

7.3 集成方案

7.3.1 与第三方系统集成
  • ERP与CRM集成:通过API接口实现客户数据的同步
  • ERP与MES集成:通过API接口实现生产数据的同步
  • ERP与财务系统集成:通过API接口实现财务数据的同步
  • ERP与OA系统集成:通过API接口实现流程的集成
7.3.2 数据接口
  • RESTful API:提供标准的RESTful API接口,支持第三方系统集成
  • Webhook:支持通过Webhook推送数据变更通知
  • 数据导出:支持Excel、CSV等格式的数据导出
  • 数据导入:支持Excel、CSV等格式的数据导入

8. 未来扩展计划

8.1 功能扩展

  • 移动应用:开发移动端应用,支持随时随地办公
  • 多语言支持:添加多语言支持,满足国际化需求
  • 多币种支持:添加多币种支持,满足跨境业务需求
  • BI报表:增强报表功能,提供更丰富的数据可视化
  • AI智能分析:引入AI技术,提供智能分析和预测功能

8.2 技术升级

  • 微服务优化:优化微服务架构,提高系统性能和可靠性
  • 容器化部署:采用Docker容器化部署,简化部署和管理
  • 云原生:采用云原生技术,提高系统的弹性和可扩展性
  • DevOps:引入DevOps实践,提高开发和部署效率

8.3 业务扩展

  • 行业解决方案:针对不同行业提供定制化的解决方案
  • 供应链管理:扩展供应链管理功能,实现供应链的协同
  • 电子商务:集成电子商务功能,实现线上线下一体化
  • 物联网集成:集成物联网技术,实现智能仓储和生产管理

9. 总结

KHFN-ERP 是一套完整的企业资源管理系统,采用微服务架构和前后端分离设计,具有以下特点:

  • 功能全面:包含采购、销售、库存、财务等核心业务模块
  • 技术先进:采用Java 17、Spring Boot 3.2、Vue 3等最新技术
  • 架构灵活:微服务架构,便于扩展和维护
  • 安全可靠:完善的安全设计,确保数据安全
  • 易于集成:提供标准的API接口,便于与第三方系统集成

系统的设计充分考虑了企业的实际需求,通过数字化管理提高企业的运营效率和管理水平,为企业的发展提供有力的支持。

10. 附录

10.1 术语定义

术语 解释
ERP Enterprise Resource Planning,企业资源计划
BOM Bill of Materials,物料清单
MRP Material Requirements Planning,物料需求计划
JWT JSON Web Token,无状态认证令牌
RBAC Role-Based Access Control,基于角色的访问控制
RESTful 一种软件架构风格,用于设计网络应用程序接口
BPMN Business Process Model and Notation,业务流程模型和标记法

10.2 系统默认账号

用户名 密码 角色
admin 123456 系统管理员
user 123456 普通用户

10.3 API文档

启动后端服务后,访问以下地址查看API文档:

相关推荐
大迪deblog3 小时前
系统架构设计-质量属性
系统架构·软件构建
arvin_xiaoting4 小时前
OpenClaw学习总结_I_核心架构_9:Multi-Agent详解
网络·学习·架构·系统架构·ai agent·multi-agent·openclaw
AI精钢6 小时前
AI时代,如何对单体应用进行微服务化重构?
微服务·系统架构
~央千澈~7 小时前
B/S端(浏览器/服务器架构)和C/S端(客户端/服务器架构)得攻防难易度区别?优雅草卓伊凡
系统架构
WHD3068 小时前
企业数据安全体系建设指南:从风险识别到技术落地的全流程(2026版)
大数据·网络·人工智能·安全·系统架构·密码学·安全架构
成都渲染101云渲染66661 天前
Houdini+Blender高效渲染方案(高配算力+全渲染器兼容)
前端·系统架构
arvin_xiaoting1 天前
OpenClaw学习总结_I_核心架构_6:Compaction详解
学习·系统架构·学习总结·ai agent·compaction·openclaw
arvin_xiaoting1 天前
OpenClaw学习总结_I_核心架构_5:Memory系统详解
学习·系统架构·学习总结·ai agent·openclaw·memory系统
慧一居士2 天前
springboot 项目集成 seate 分布式事务TCC使用nacos完整配置步骤及说明
系统架构