Files
aiot-platform-cloud/.qoder/repowiki/zh/content/API接口文档/业务模块API/ERP企业资源计划API.md

412 lines
19 KiB
Markdown
Raw Normal View History

# ERP企业资源计划API
<cite>
**本文档引用的文件**
- [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)
</cite>
## 目录
1. [简介](#简介)
2. [项目结构](#项目结构)
3. [核心组件](#核心组件)
4. [架构概览](#架构概览)
5. [详细组件分析](#详细组件分析)
6. [依赖关系分析](#依赖关系分析)
7. [性能考虑](#性能考虑)
8. [故障排除指南](#故障排除指南)
9. [结论](#结论)
## 简介
本文件为ERP企业资源计划模块的全面API接口文档覆盖采购管理、销售管理、库存管理、财务管理等核心业务的RESTful API接口。文档详细记录了采购订单管理接口包括采购入库、退货处理、供应商管理、销售管理接口销售出库、订单处理、客户管理、库存管理接口库存盘点、移库操作、库存调整、财务管理系统接口账户管理、收付款处理、财务报表并说明业务流程接口采购到付款、销售到收款的完整流程。同时文档包含数据验证规则、权限控制和业务规则约束以及各模块间的数据流转接口和集成方案。
## 项目结构
ERP模块采用标准的分层架构包含API定义层、服务实现层、数据访问层和控制器层。模块启动类位于server包配置文件位于resources目录API常量和错误码定义在api包控制器、服务和数据对象分别位于controller、service、dal包中。
```mermaid
graph TB
subgraph "ERP模块结构"
A[启动类 ErpServerApplication] --> B[配置文件 application.yaml]
C[API常量 ApiConstants] --> D[错误码定义 ErrorCodeConstants]
E[审核状态 ErpAuditStatus] --> F[控制器层]
G[服务实现层] --> H[数据访问层]
F --> G
G --> H
end
```
**图表来源**
- [ErpServerApplication.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/ErpServerApplication.java#L1-L31)
- [application.yaml](file://viewsh-module-erp/viewsh-module-erp-server/src/main/resources/application.yaml#L1-L125)
**章节来源**
- [ErpServerApplication.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/ErpServerApplication.java#L1-L31)
- [application.yaml](file://viewsh-module-erp/viewsh-module-erp-server/src/main/resources/application.yaml#L1-L125)
## 核心组件
ERP模块的核心组件包括
- API常量定义服务名、API前缀和版本号
- 错误码定义:统一管理各模块的错误码
- 审核状态枚举:定义审核状态(未审核、已审核)
- 控制器层提供RESTful API接口
- 服务实现层:处理业务逻辑和数据验证
- 数据访问层:提供数据库操作接口
**章节来源**
- [ApiConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ApiConstants.java#L1-L24)
- [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java#L1-L169)
- [ErpAuditStatus.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErpAuditStatus.java#L1-L40)
## 架构概览
ERP模块采用分层架构控制器负责接收HTTP请求服务层处理业务逻辑数据访问层负责数据库操作。模块通过权限注解进行权限控制通过Swagger提供API文档。
```mermaid
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](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java#L1-L164)
- [ErpSaleOrderController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/sale/ErpSaleOrderController.java#L1-L164)
- [ErpStockController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/stock/ErpStockController.java#L1-L112)
- [ErpAccountController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/finance/ErpAccountController.java#L1-L116)
## 详细组件分析
### 采购管理API
#### 采购订单管理接口
采购订单管理提供完整的采购订单生命周期管理,包括创建、更新、状态更新、删除、查询和导出功能。
```mermaid
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 : 成功响应
```
**图表来源**
- [ErpPurchaseOrderController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java#L62-L67)
- [ErpPurchaseOrderServiceImpl.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java#L62-L86)
主要接口包括:
- 创建采购订单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
**章节来源**
- [ErpPurchaseOrderController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java#L62-L134)
- [ErpPurchaseOrderServiceImpl.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java#L62-L200)
#### 采购入库接口
采购入库接口用于处理采购货物的入库操作,包括入库单的创建、更新、状态管理和查询功能。
```mermaid
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
```
**图表来源**
- [ErpPurchaseOrderServiceImpl.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java#L190-L296)
#### 供应商管理接口
供应商管理接口提供供应商的增删改查、状态管理和查询功能,支持供应商的启用/停用操作。
**章节来源**
- [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java#L12-L28)
### 销售管理API
#### 销售订单管理接口
销售订单管理提供完整的销售订单生命周期管理,包括创建、更新、状态更新、删除、查询和导出功能。
```mermaid
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 : 成功响应
```
**图表来源**
- [ErpSaleOrderController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/sale/ErpSaleOrderController.java#L62-L67)
主要接口包括:
- 创建销售订单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
**章节来源**
- [ErpSaleOrderController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/sale/ErpSaleOrderController.java#L62-L134)
#### 销售出库接口
销售出库接口用于处理销售货物的出库操作,包括出库单的创建、更新、状态管理和查询功能。
**章节来源**
- [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java#L68-L78)
#### 客户管理接口
客户管理接口提供客户的增删改查、状态管理和查询功能,支持客户的启用/停用操作。
**章节来源**
- [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java#L51-L54)
### 库存管理API
#### 库存查询接口
库存查询接口提供产品库存的查询和分页功能,支持按产品和仓库维度查询库存数量。
```mermaid
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 : 成功响应
```
**图表来源**
- [ErpStockController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/stock/ErpStockController.java#L63-L68)
主要接口包括:
- 获取产品库存GET /erp/stock/get
- 获取产品库存数量GET /erp/stock/get-count
- 产品库存分页查询GET /erp/stock/page
- 导出产品库存GET /erp/stock/export-excel
**章节来源**
- [ErpStockController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/stock/ErpStockController.java#L55-L95)
#### 库存盘点接口
库存盘点接口用于处理库存盘点操作,支持盘点单的创建、更新、状态管理和查询功能。
**章节来源**
- [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java#L118-L125)
#### 库存调拨接口
库存调拨接口用于处理库存在不同仓库间的调拨操作,支持调拨单的创建、更新、状态管理和查询功能。
**章节来源**
- [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java#L110-L117)
### 财务管理API
#### 账户管理接口
账户管理接口提供结算账户的增删改查、状态管理和查询功能,支持账户的启用/停用和默认状态设置。
```mermaid
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 : 成功响应
```
**图表来源**
- [ErpAccountController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/finance/ErpAccountController.java#L42-L47)
主要接口包括:
- 创建结算账户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
**章节来源**
- [ErpAccountController.java](file://viewsh-module-erp/viewsh-module-erp-server/src/main/java/com/viewsh/module/erp/controller/admin/finance/ErpAccountController.java#L42-L116)
#### 收付款处理接口
收付款处理接口提供收款单和付款单的管理功能,支持收付款单的创建、更新、状态管理和查询功能。
**章节来源**
- [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java#L152-L167)
### 业务流程接口
#### 采购到付款流程
采购到付款流程涵盖了从采购订单创建到付款完成的完整业务流程,包括采购入库、采购退货、付款处理等环节。
```mermaid
flowchart TD
PurchaseOrder[采购订单] --> PurchaseIn[采购入库]
PurchaseIn --> Payment[付款处理]
PurchaseOrder --> PurchaseReturn[采购退货]
PurchaseReturn --> Refund[退款处理]
Payment --> FinancialReport[财务报表]
Refund --> FinancialReport
PurchaseIn --> Inventory[库存更新]
PurchaseReturn --> Inventory
```
#### 销售到收款流程
销售到收款流程涵盖了从销售订单创建到收款完成的完整业务流程,包括销售出库、销售退货、收款处理等环节。
```mermaid
flowchart TD
SaleOrder[销售订单] --> SaleOut[销售出库]
SaleOut --> Receipt[收款处理]
SaleOrder --> SaleReturn[销售退货]
SaleReturn --> Refund[退款处理]
Receipt --> FinancialReport[财务报表]
Refund --> FinancialReport
SaleOut --> Inventory[库存更新]
SaleReturn --> Inventory
```
## 依赖关系分析
ERP模块的依赖关系清晰控制器层依赖服务层服务层依赖数据访问层。模块通过权限注解实现权限控制通过Swagger提供API文档。
```mermaid
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
```
**图表来源**
- [application.yaml](file://viewsh-module-erp/viewsh-module-erp-server/src/main/resources/application.yaml#L45-L58)
- [application.yaml](file://viewsh-module-erp/viewsh-module-erp-server/src/main/resources/application.yaml#L61-L80)
**章节来源**
- [application.yaml](file://viewsh-module-erp/viewsh-module-erp-server/src/main/resources/application.yaml#L45-L125)
## 性能考虑
ERP模块在性能方面采用了多项优化措施
- 缓存策略使用Redis缓存热点数据提高查询性能
- 分页查询:所有列表查询都支持分页,避免大数据量查询
- 批量操作:订单项的增删改采用批量操作,减少数据库交互
- 权限控制:通过注解实现细粒度的权限控制,避免不必要的数据查询
- Swagger集成提供API文档便于前端开发和调试
## 故障排除指南
ERP模块的错误码定义统一规范便于问题定位和解决
### 常见错误类型
- 供应商相关错误:供应商不存在、供应商未启用
- 订单相关错误:订单不存在、订单已审核无法修改、反审核失败
- 库存相关错误:库存不足、库存数量为负数
- 财务相关错误:账户不存在、账户未启用
### 排错步骤
1. 检查请求参数是否正确
2. 验证用户权限是否足够
3. 查看相关单据状态是否符合业务要求
4. 检查库存数量是否充足
5. 确认财务账户状态正常
**章节来源**
- [ErrorCodeConstants.java](file://viewsh-module-erp/viewsh-module-erp-api/src/main/java/com/viewsh/module/erp/enums/ErrorCodeConstants.java#L1-L169)
## 结论
ERP企业资源计划模块提供了完整的API接口体系涵盖了采购、销售、库存、财务等核心业务领域。模块采用分层架构设计具有良好的可扩展性和维护性。通过统一的错误码定义、权限控制和业务规则约束确保了系统的稳定性和可靠性。建议在实际使用中结合具体业务场景合理配置参数和权限确保系统能够满足企业的业务需求。