19 KiB
ERP企业资源计划API
**本文档引用的文件** - [ErpServerApplication.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/ErpServerApplication.java) - [application.yaml](file://viewsh-module-erp/viewsh-module-erp-server/src/main/resources/application.yaml) - [ApiConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ApiConstants.java) - [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java) - [ErpAuditStatus.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErpAuditStatus.java) - [ErpPurchaseOrderController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java) - [ErpSaleOrderController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/sale/ErpSaleOrderController.java) - [ErpStockController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/stock/ErpStockController.java) - [ErpAccountController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/finance/ErpAccountController.java) - [ErpPurchaseOrderServiceImpl.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java)目录
简介
本文件为ERP企业资源计划模块的全面API接口文档,覆盖采购管理、销售管理、库存管理、财务管理等核心业务的RESTful API接口。文档详细记录了采购订单管理接口(包括采购入库、退货处理、供应商管理)、销售管理接口(销售出库、订单处理、客户管理)、库存管理接口(库存盘点、移库操作、库存调整)、财务管理系统接口(账户管理、收付款处理、财务报表),并说明业务流程接口(采购到付款、销售到收款的完整流程)。同时,文档包含数据验证规则、权限控制和业务规则约束,以及各模块间的数据流转接口和集成方案。
项目结构
ERP模块采用标准的分层架构,包含API定义层、服务实现层、数据访问层和控制器层。模块启动类位于server包,配置文件位于resources目录,API常量和错误码定义在api包,控制器、服务和数据对象分别位于controller、service、dal包中。
graph TB
subgraph "ERP模块结构"
A[启动类 ErpServerApplication] --> B[配置文件 application.yaml]
C[API常量 ApiConstants] --> D[错误码定义 ErrorCodeConstants]
E[审核状态 ErpAuditStatus] --> F[控制器层]
G[服务实现层] --> H[数据访问层]
F --> G
G --> H
end
图表来源
章节来源
核心组件
ERP模块的核心组件包括:
- API常量:定义服务名、API前缀和版本号
- 错误码定义:统一管理各模块的错误码
- 审核状态枚举:定义审核状态(未审核、已审核)
- 控制器层:提供RESTful API接口
- 服务实现层:处理业务逻辑和数据验证
- 数据访问层:提供数据库操作接口
章节来源
架构概览
ERP模块采用分层架构,控制器负责接收HTTP请求,服务层处理业务逻辑,数据访问层负责数据库操作。模块通过权限注解进行权限控制,通过Swagger提供API文档。
graph TB
subgraph "API层"
A[采购订单控制器]
B[销售订单控制器]
C[库存控制器]
D[账户控制器]
end
subgraph "服务层"
E[采购订单服务实现]
F[销售订单服务实现]
G[库存服务实现]
H[账户服务实现]
end
subgraph "数据访问层"
I[采购订单Mapper]
J[销售订单Mapper]
K[库存Mapper]
L[账户Mapper]
end
A --> E
B --> F
C --> G
D --> H
E --> I
F --> J
G --> K
H --> L
图表来源
- ErpPurchaseOrderController.java
- ErpSaleOrderController.java
- ErpStockController.java
- ErpAccountController.java
详细组件分析
采购管理API
采购订单管理接口
采购订单管理提供完整的采购订单生命周期管理,包括创建、更新、状态更新、删除、查询和导出功能。
sequenceDiagram
participant Client as "客户端"
participant Controller as "采购订单控制器"
participant Service as "采购订单服务实现"
participant Mapper as "采购订单Mapper"
participant Redis as "Redis生成单号"
Client->>Controller : POST /erp/purchase-order/create
Controller->>Service : createPurchaseOrder(reqVO)
Service->>Redis : generate(采购订单号前缀)
Redis-->>Service : 返回单号
Service->>Service : 校验供应商和结算账户
Service->>Service : 校验订单项有效性
Service->>Service : 计算总价
Service->>Mapper : insert(订单)
Service->>Mapper : insertBatch(订单项)
Mapper-->>Service : 返回订单ID
Service-->>Controller : 返回订单ID
Controller-->>Client : 成功响应
图表来源
主要接口包括:
- 创建采购订单:POST /erp/purchase-order/create
- 更新采购订单:PUT /erp/purchase-order/update
- 更新采购订单状态:PUT /erp/purchase-order/update-status
- 删除采购订单:DELETE /erp/purchase-order/delete
- 获取采购订单:GET /erp/purchase-order/get
- 采购订单分页查询:GET /erp/purchase-order/page
- 导出采购订单:GET /erp/purchase-order/export-excel
章节来源
采购入库接口
采购入库接口用于处理采购货物的入库操作,包括入库单的创建、更新、状态管理和查询功能。
flowchart TD
Start([开始入库流程]) --> ValidateOrder["校验采购订单存在性"]
ValidateOrder --> CheckApprove{"是否已审核?"}
CheckApprove --> |否| ErrorApprove["抛出未审核错误"]
CheckApprove --> |是| ValidateStock["校验库存数量"]
ValidateStock --> StockEnough{"库存是否充足?"}
StockEnough --> |否| ErrorStock["抛出库存不足错误"]
StockEnough --> |是| CreateInOrder["创建入库单"]
CreateInOrder --> UpdateOrder["更新采购订单入库数量"]
UpdateOrder --> UpdateStock["更新库存数量"]
UpdateStock --> ApproveIn["审核入库单"]
ApproveIn --> End([完成入库])
ErrorApprove --> End
ErrorStock --> End
图表来源
供应商管理接口
供应商管理接口提供供应商的增删改查、状态管理和查询功能,支持供应商的启用/停用操作。
章节来源
销售管理API
销售订单管理接口
销售订单管理提供完整的销售订单生命周期管理,包括创建、更新、状态更新、删除、查询和导出功能。
sequenceDiagram
participant Client as "客户端"
participant Controller as "销售订单控制器"
participant Service as "销售订单服务实现"
participant Mapper as "销售订单Mapper"
participant Redis as "Redis生成单号"
Client->>Controller : POST /erp/sale-order/create
Controller->>Service : createSaleOrder(reqVO)
Service->>Redis : generate(销售订单号前缀)
Redis-->>Service : 返回单号
Service->>Service : 校验客户和结算账户
Service->>Service : 校验订单项有效性
Service->>Service : 计算总价
Service->>Mapper : insert(订单)
Service->>Mapper : insertBatch(订单项)
Mapper-->>Service : 返回订单ID
Service-->>Controller : 返回订单ID
Controller-->>Client : 成功响应
图表来源
主要接口包括:
- 创建销售订单:POST /erp/sale-order/create
- 更新销售订单:PUT /erp/sale-order/update
- 更新销售订单状态:PUT /erp/sale-order/update-status
- 删除销售订单:DELETE /erp/sale-order/delete
- 获取销售订单:GET /erp/sale-order/get
- 销售订单分页查询:GET /erp/sale-order/page
- 导出销售订单:GET /erp/sale-order/export-excel
章节来源
销售出库接口
销售出库接口用于处理销售货物的出库操作,包括出库单的创建、更新、状态管理和查询功能。
章节来源
客户管理接口
客户管理接口提供客户的增删改查、状态管理和查询功能,支持客户的启用/停用操作。
章节来源
库存管理API
库存查询接口
库存查询接口提供产品库存的查询和分页功能,支持按产品和仓库维度查询库存数量。
sequenceDiagram
participant Client as "客户端"
participant Controller as "库存控制器"
participant Service as "库存服务实现"
participant Mapper as "库存Mapper"
Client->>Controller : GET /erp/stock/get
Controller->>Service : getStock(productId, warehouseId)
Service->>Mapper : selectOne(条件查询)
Mapper-->>Service : 返回库存记录
Service-->>Controller : 返回库存VO
Controller-->>Client : 成功响应
图表来源
主要接口包括:
- 获取产品库存:GET /erp/stock/get
- 获取产品库存数量:GET /erp/stock/get-count
- 产品库存分页查询:GET /erp/stock/page
- 导出产品库存:GET /erp/stock/export-excel
章节来源
库存盘点接口
库存盘点接口用于处理库存盘点操作,支持盘点单的创建、更新、状态管理和查询功能。
章节来源
库存调拨接口
库存调拨接口用于处理库存在不同仓库间的调拨操作,支持调拨单的创建、更新、状态管理和查询功能。
章节来源
财务管理API
账户管理接口
账户管理接口提供结算账户的增删改查、状态管理和查询功能,支持账户的启用/停用和默认状态设置。
sequenceDiagram
participant Client as "客户端"
participant Controller as "账户控制器"
participant Service as "账户服务实现"
participant Mapper as "账户Mapper"
Client->>Controller : POST /erp/account/create
Controller->>Service : createAccount(reqVO)
Service->>Service : 校验账户状态
Service->>Mapper : insert(账户)
Mapper-->>Service : 返回账户ID
Service-->>Controller : 返回账户ID
Controller-->>Client : 成功响应
图表来源
主要接口包括:
- 创建结算账户:POST /erp/account/create
- 更新结算账户:PUT /erp/account/update
- 更新结算账户默认状态:PUT /erp/account/update-default-status
- 删除结算账户:DELETE /erp/account/delete
- 获取结算账户:GET /erp/account/get
- 获取结算账户精简列表:GET /erp/account/simple-list
- 结算账户分页查询:GET /erp/account/page
- 导出结算账户:GET /erp/account/export-excel
章节来源
收付款处理接口
收付款处理接口提供收款单和付款单的管理功能,支持收付款单的创建、更新、状态管理和查询功能。
章节来源
业务流程接口
采购到付款流程
采购到付款流程涵盖了从采购订单创建到付款完成的完整业务流程,包括采购入库、采购退货、付款处理等环节。
flowchart TD
PurchaseOrder[采购订单] --> PurchaseIn[采购入库]
PurchaseIn --> Payment[付款处理]
PurchaseOrder --> PurchaseReturn[采购退货]
PurchaseReturn --> Refund[退款处理]
Payment --> FinancialReport[财务报表]
Refund --> FinancialReport
PurchaseIn --> Inventory[库存更新]
PurchaseReturn --> Inventory
销售到收款流程
销售到收款流程涵盖了从销售订单创建到收款完成的完整业务流程,包括销售出库、销售退货、收款处理等环节。
flowchart TD
SaleOrder[销售订单] --> SaleOut[销售出库]
SaleOut --> Receipt[收款处理]
SaleOrder --> SaleReturn[销售退货]
SaleReturn --> Refund[退款处理]
Receipt --> FinancialReport[财务报表]
Refund --> FinancialReport
SaleOut --> Inventory[库存更新]
SaleReturn --> Inventory
依赖关系分析
ERP模块的依赖关系清晰,控制器层依赖服务层,服务层依赖数据访问层。模块通过权限注解实现权限控制,通过Swagger提供API文档。
graph TB
subgraph "外部依赖"
A[Spring Security]
B[Swagger/OpenAPI]
C[MyBatis Plus]
D[Redis]
end
subgraph "内部模块"
E[控制器层]
F[服务层]
G[数据访问层]
H[数据模型层]
end
A --> E
B --> E
C --> G
D --> F
E --> F
F --> G
G --> H
图表来源
章节来源
性能考虑
ERP模块在性能方面采用了多项优化措施:
- 缓存策略:使用Redis缓存热点数据,提高查询性能
- 分页查询:所有列表查询都支持分页,避免大数据量查询
- 批量操作:订单项的增删改采用批量操作,减少数据库交互
- 权限控制:通过注解实现细粒度的权限控制,避免不必要的数据查询
- Swagger集成:提供API文档,便于前端开发和调试
故障排除指南
ERP模块的错误码定义统一规范,便于问题定位和解决:
常见错误类型
- 供应商相关错误:供应商不存在、供应商未启用
- 订单相关错误:订单不存在、订单已审核无法修改、反审核失败
- 库存相关错误:库存不足、库存数量为负数
- 财务相关错误:账户不存在、账户未启用
排错步骤
- 检查请求参数是否正确
- 验证用户权限是否足够
- 查看相关单据状态是否符合业务要求
- 检查库存数量是否充足
- 确认财务账户状态正常
章节来源
结论
ERP企业资源计划模块提供了完整的API接口体系,涵盖了采购、销售、库存、财务等核心业务领域。模块采用分层架构设计,具有良好的可扩展性和维护性。通过统一的错误码定义、权限控制和业务规则约束,确保了系统的稳定性和可靠性。建议在实际使用中结合具体业务场景,合理配置参数和权限,确保系统能够满足企业的业务需求。