You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

742 lines
17 KiB
Markdown

4 months ago
# ERP系统前端接口文档
## 📋 目录
- [系统概述](#系统概述)
- [API接口文件](#api接口文件)
- [页面路由](#页面路由)
- [后端接口详情](#后端接口详情)
---
## 系统概述
本ERP系统前端项目包含以下核心功能模块
- **数据看板** - 实时展示ERP系统各项统计数据和图表
- **检验单管理** - 质检单据的增删改查
- **销售订单管理** - 销售订单全生命周期管理
- **采购订单管理** - 采购订单管理
- **生产订单管理** - 生产工单管理
- **生产入库管理** - 生产入库单据管理
---
## API接口文件
### 📁 文件结构
```
xiyan-ui/src/api/erp/
├── dashboard.js # 看板统计接口
├── inspectBill.js # 检验单接口
├── saleOrder.js # 销售订单接口
├── purchaseOrder.js # 采购订单接口
├── productionOrder.js # 生产订单接口
└── productionInstock.js # 生产入库接口
```
### 1. 看板统计接口 (dashboard.js)
```javascript
// 同步销售订单
syncSaleOrder()
// 获取今日质检单总数
getInspectBillToDay()
// 统计一周内的生产工单排产、已完成数量
getProductionOrdersToWeek()
// 统计工单数量,分别统计排产、已完成的数量
getCountProductionOrders()
// 统计今年的销售出库总量和生产报工总量以及采购入库单总量
getStatistics()
// 统计今年各月份的销售出库总量和生产报工总量
getCountBySalOutAndPrdIn()
// 一周内的报工重量
getWeightToWeek()
```
### 2. 检验单接口 (inspectBill.js)
```javascript
// 查询检验单列表
listInspectBill(query)
// 查询检验单详细
getInspectBill(id)
// 新增检验单
addInspectBill(data)
// 修改检验单
updateInspectBill(data)
// 删除检验单
delInspectBill(id)
// 获取今日质检单总数
getInspectBillToDay()
```
### 3. 销售订单接口 (saleOrder.js)
```javascript
// 查询销售订单列表
listSaleOrder(query)
// 查询销售订单详细
getSaleOrder(id)
// 新增销售订单
addSaleOrder(data)
// 修改销售订单
updateSaleOrder(data)
// 删除销售订单
delSaleOrder(id)
```
### 4. 采购订单接口 (purchaseOrder.js)
```javascript
// 查询采购订单列表
listPurchaseOrder(query)
// 查询采购订单详细
getPurchaseOrder(id)
// 新增采购订单
addPurchaseOrder(data)
// 修改采购订单
updatePurchaseOrder(data)
// 删除采购订单
delPurchaseOrder(id)
```
### 5. 生产订单接口 (productionOrder.js)
```javascript
// 查询生产订单列表
listProductionOrder(query)
// 查询生产订单详细
getProductionOrder(id)
// 新增生产订单
addProductionOrder(data)
// 修改生产订单
updateProductionOrder(data)
// 删除生产订单
delProductionOrder(id)
// 统计一周内的生产工单排产、已完成数量
getProductionOrdersToWeek()
// 统计工单数量,分别统计排产、已完成的数量
getCountProductionOrders()
```
### 6. 生产入库接口 (productionInstock.js)
```javascript
// 查询生产入库单列表
listProductionInstock(query)
// 查询生产入库单详细
getProductionInstock(id)
// 新增生产入库单
addProductionInstock(data)
// 修改生产入库单
updateProductionInstock(data)
// 删除生产入库单
delProductionInstock(id)
// 统计今年的销售出库总量和生产报工总量以及采购入库单总量
getStatistics()
// 统计今年各月份的销售出库总量和生产报工总量
getCountBySalOutAndPrdIn()
// 一周内的报工重量
getWeightToWeek()
```
---
## 页面路由
### 📁 页面文件结构
```
xiyan-ui/src/views/
├── board/
│ └── kanban/
│ └── index.vue # ERP数据看板
└── erp/
├── inspectBill/
│ └── index.vue # 检验单管理
├── saleOrder/
│ └── index.vue # 销售订单管理
├── purchaseOrder/
│ └── index.vue # 采购订单管理
├── productionOrder/
│ └── index.vue # 生产订单管理
└── productionInstock/
└── index.vue # 生产入库管理
```
---
## 后端接口详情
### 1. 检验单管理 (ErpInspectBillController)
**Base URL:** `/erpInspectBill`
#### 1.1 分页查询
- **接口路径:** `GET /erpInspectBill/list`
- **接口描述:** 分页查询检验单列表
- **请求参数:**
- `pageNum`: 页码
- `pageSize`: 每页条数
- `billNo`: 单据号(可选)
- `documentStatus`: 文档状态可选Z-暂存/C-审核中/A-已审核
- `businessType`: 业务类型(可选)
- `createDate`: 创建日期范围(可选)
- **响应数据:**
```json
{
"total": 100,
"rows": [
{
"id": 1,
"billNo": "JY202510001",
"documentStatus": "A",
"businessType": "来料检验",
"checkQty": 100.00,
"createDate": "2025-10-29 10:00:00",
"approveDate": "2025-10-29 11:00:00",
"isSynced": 1
}
]
}
```
#### 1.2 查询详情
- **接口路径:** `GET /erpInspectBill/{id}`
- **接口描述:** 通过主键查询单条检验单数据
- **请求参数:**
- `id`: 主键ID
#### 1.3 新增检验单
- **接口路径:** `POST /erpInspectBill`
- **接口描述:** 新增检验单
- **请求体:**
```json
{
"billNo": "JY202510001",
"documentStatus": "Z",
"businessType": "来料检验",
"checkQty": 100.00,
"fDate": "2025-10-29",
"defScanBox": "BOX001"
}
```
#### 1.4 修改检验单
- **接口路径:** `PUT /erpInspectBill`
- **接口描述:** 修改检验单
- **请求体:** 同新增需包含id
#### 1.5 删除检验单
- **接口路径:** `DELETE /erpInspectBill/{id}`
- **接口描述:** 删除检验单
- **请求参数:**
- `id`: 主键ID
#### 1.6 今日质检单总数
- **接口路径:** `GET /erpInspectBill/getByInspectBillToDay`
- **接口描述:** 获取今日质检单总数
- **响应数据:**
```json
{
"total": 25,
"countDate": "2025-10-29"
}
```
---
### 2. 销售订单管理 (ErpSaleOrderController)
**Base URL:** `/erpSaleOrder`
#### 2.1 分页查询
- **接口路径:** `GET /erpSaleOrder/list`
- **接口描述:** 分页查询销售订单列表
- **请求参数:**
- `pageNum`: 页码
- `pageSize`: 每页条数
- `billNo`: 单据号(可选)
- `documentStatus`: 文档状态(可选)
- `businessType`: 业务类型(可选)
- `custId`: 客户ID可选
- **响应数据:**
```json
{
"total": 200,
"rows": [
{
"id": 1,
"billNo": "XS202510001",
"documentStatus": "A",
"businessType": "标准销售",
"custId": "CUST001",
"fLinkMan": "张三",
"fLinkPhone": "13800138000",
"receiveAddress": "上海市浦东新区XXX",
"date": "2025-10-29 10:00:00",
"createDate": "2025-10-29 09:00:00"
}
]
}
```
#### 2.2 查询详情
- **接口路径:** `GET /erpSaleOrder/{id}`
#### 2.3 新增销售订单
- **接口路径:** `POST /erpSaleOrder`
- **请求体:**
```json
{
"billNo": "XS202510001",
"documentStatus": "Z",
"businessType": "标准销售",
"custId": "CUST001",
"date": "2025-10-29 10:00:00",
"fLinkMan": "张三",
"fLinkPhone": "13800138000",
"receiveAddress": "上海市浦东新区XXX",
"note": "备注信息"
}
```
#### 2.4 修改销售订单
- **接口路径:** `PUT /erpSaleOrder`
#### 2.5 删除销售订单
- **接口路径:** `DELETE /erpSaleOrder/{id}`
---
### 3. 采购订单管理 (ErpPurchaseOrderController)
**Base URL:** `/erpPurchaseOrder`
#### 3.1 分页查询
- **接口路径:** `GET /erpPurchaseOrder/list`
- **请求参数:**
- `pageNum`: 页码
- `pageSize`: 每页条数
- `billNo`: 单据号(可选)
- `documentStatus`: 文档状态(可选)
- `businessType`: 业务类型(可选)
- `supplierId`: 供应商ID可选
- **响应数据:**
```json
{
"total": 150,
"rows": [
{
"id": 1,
"billNo": "CG202510001",
"documentStatus": "A",
"businessType": "标准采购",
"supplierId": "SUPP001",
"providerContact": "李四",
"providerAddress": "江苏省苏州市XXX",
"date": "2025-10-29 10:00:00",
"closeStatus": "B",
"cancelStatus": "B"
}
]
}
```
#### 3.2 查询详情
- **接口路径:** `GET /erpPurchaseOrder/{id}`
#### 3.3 新增采购订单
- **接口路径:** `POST /erpPurchaseOrder`
- **请求体:**
```json
{
"billNo": "CG202510001",
"documentStatus": "Z",
"businessType": "标准采购",
"supplierId": "SUPP001",
"date": "2025-10-29 10:00:00",
"providerContact": "李四",
"providerAddress": "江苏省苏州市XXX"
}
```
#### 3.4 修改采购订单
- **接口路径:** `PUT /erpPurchaseOrder`
#### 3.5 删除采购订单
- **接口路径:** `DELETE /erpPurchaseOrder/{id}`
---
### 4. 生产订单管理 (ErpProductionOrdersController)
**Base URL:** `/erpProductionOrders`
#### 4.1 分页查询
- **接口路径:** `GET /erpProductionOrders/list`
- **请求参数:**
- `pageNum`: 页码
- `pageSize`: 每页条数
- `billNo`: 单据号(可选)
- `documentStatus`: 文档状态(可选)
- `businessType`: 业务类型(可选)
- **响应数据:**
```json
{
"total": 300,
"rows": [
{
"id": 1,
"billNo": "SC202510001",
"documentStatus": "A",
"businessType": "标准生产",
"isRework": 0,
"isEntrust": 0,
"createDate": "2025-10-29 08:00:00",
"approveDate": "2025-10-29 09:00:00",
"cancelStatus": "B"
}
]
}
```
#### 4.2 查询详情
- **接口路径:** `GET /erpProductionOrders/{id}`
#### 4.3 新增生产订单
- **接口路径:** `POST /erpProductionOrders`
- **请求体:**
```json
{
"billNo": "SC202510001",
"documentStatus": "Z",
"businessType": "标准生产",
"date": "2025-10-29 10:00:00",
"prdOrgIdId": "ORG001",
"workShopIdId": 1,
"isRework": 0,
"isEntrust": 0
}
```
#### 4.4 修改生产订单
- **接口路径:** `PUT /erpProductionOrders`
#### 4.5 删除生产订单
- **接口路径:** `DELETE /erpProductionOrders/{id}`
#### 4.6 一周内工单统计
- **接口路径:** `GET /erpProductionOrders/getProductionOrdersToWeek`
- **接口描述:** 统计一周内的生产工单排产、已完成数量
- **响应数据:**
```json
{
"countScheduling": "150",
"countFinishOrder": "120",
"countWeek": 120
}
```
#### 4.7 工单数量统计
- **接口路径:** `GET /erpProductionOrders/getCountProductionOrders`
- **接口描述:** 统计工单数量,分别统计排产、已完成的数量
- **响应数据:**
```json
[
{
"orderType": "排产",
"orderCount": 150
},
{
"orderType": "已完成",
"orderCount": 120
}
]
```
---
### 5. 生产入库管理 (PrdInstockMainController)
**Base URL:** `/prdInstockMain`
#### 5.1 分页查询
- **接口路径:** `GET /prdInstockMain/list`
- **请求参数:**
- `pageNum`: 页码
- `pageSize`: 每页条数
- `billNo`: 单据编号(可选)
- `documentStatus`: 单据状态(可选)
- `prdOrgName`: 生产组织(可选)
- `billDate`: 单据日期范围(可选)
- **响应数据:**
```json
{
"total": 250,
"rows": [
{
"id": 1,
"billNo": "RK202510001",
"documentStatus": "A",
"prdOrgName": "生产一车间",
"stockOrgName": "原材料仓库",
"ownerName": "公司A",
"billTypeName": "标准入库",
"billDate": "2025-10-29",
"creatorName": "王五",
"createDate": "2025-10-29 10:00:00",
"cancelStatus": "B"
}
]
}
```
#### 5.2 查询详情
- **接口路径:** `GET /prdInstockMain/{id}`
#### 5.3 新增生产入库单
- **接口路径:** `POST /prdInstockMain`
- **请求体:**
```json
{
"billNo": "RK202510001",
"documentStatus": "Z",
"billDate": "2025-10-29 10:00:00",
"billTypeId": "TYPE001",
"prdOrgId": 1,
"stockOrgId": 1,
"ownerId": 1,
"isEntrust": 0
}
```
#### 5.4 修改生产入库单
- **接口路径:** `PUT /prdInstockMain`
#### 5.5 删除生产入库单
- **接口路径:** `DELETE /prdInstockMain/{id}`
#### 5.6 年度统计
- **接口路径:** `GET /prdInstockMain/statistics`
- **接口描述:** 统计今年的销售出库总量和生产报工总量以及采购入库单总量
- **响应数据:**
```json
{
"salesOutboundWeight": 15000.50,
"productionInboundWeight": 18000.75,
"salStockInWeight": 12000.30
}
```
#### 5.7 月度产销对比
- **接口路径:** `GET /prdInstockMain/getCountBySalOutAndPrdIn`
- **接口描述:** 统计今年各月份的销售出库总量和生产报工总量
- **响应数据:**
```json
[
{
"month": "1",
"salesOutboundWeight": 1200.50,
"productionInboundWeight": 1500.75
},
{
"month": "2",
"salesOutboundWeight": 1300.60,
"productionInboundWeight": 1600.80
}
]
```
#### 5.8 一周报工重量
- **接口路径:** `GET /prdInstockMain/getWeightToWeek`
- **接口描述:** 一周内的报工重量
- **响应数据:**
```json
[
{
"countDate": "2025-10-23",
"dailyProductionWeight": 250.50
},
{
"countDate": "2025-10-24",
"dailyProductionWeight": 280.75
}
]
```
---
## 数据看板功能
### 看板页面路径
`xiyan-ui/src/views/board/kanban/index.vue`
### 看板展示内容
#### 1. 统计卡片4个
- **今日质检单** - 显示当天质检单总数
- **本周完成工单** - 显示本周已完成的生产工单数量
- **年度生产总量** - 显示今年生产入库总重量(吨)
- **年度销售总量** - 显示今年销售出库总重量(吨)
#### 2. 图表展示4个
- **工单统计** - 饼图,展示排产和已完成工单的占比
- **一周生产趋势** - 折线图,展示最近一周每天的生产重量
- **年度产销对比** - 柱状图,对比销售出库、生产入库、采购入库的总量
- **今年各月份产销趋势** - 折线图,展示每月的销售出库和生产入库趋势
### 看板特性
- ✅ 响应式设计,自适应各种屏幕尺寸
- ✅ 使用ECharts图表库支持交互和动画效果
- ✅ 实时数据刷新功能
- ✅ 卡片悬浮效果和渐变色设计
- ✅ 图表自适应窗口大小变化
---
## 权限标识
### 检验单管理
- `erp:inspectBill:list` - 查询列表
- `erp:inspectBill:query` - 查询详情
- `erp:inspectBill:add` - 新增
- `erp:inspectBill:edit` - 修改
- `erp:inspectBill:remove` - 删除
- `erp:inspectBill:export` - 导出
### 销售订单管理
- `erp:saleOrder:list` - 查询列表
- `erp:saleOrder:query` - 查询详情
- `erp:saleOrder:add` - 新增
- `erp:saleOrder:edit` - 修改
- `erp:saleOrder:remove` - 删除
- `erp:saleOrder:export` - 导出
### 采购订单管理
- `erp:purchaseOrder:list` - 查询列表
- `erp:purchaseOrder:query` - 查询详情
- `erp:purchaseOrder:add` - 新增
- `erp:purchaseOrder:edit` - 修改
- `erp:purchaseOrder:remove` - 删除
- `erp:purchaseOrder:export` - 导出
### 生产订单管理
- `erp:productionOrder:list` - 查询列表
- `erp:productionOrder:query` - 查询详情
- `erp:productionOrder:add` - 新增
- `erp:productionOrder:edit` - 修改
- `erp:productionOrder:remove` - 删除
- `erp:productionOrder:export` - 导出
### 生产入库管理
- `erp:productionInstock:list` - 查询列表
- `erp:productionInstock:query` - 查询详情
- `erp:productionInstock:add` - 新增
- `erp:productionInstock:edit` - 修改
- `erp:productionInstock:remove` - 删除
- `erp:productionInstock:export` - 导出
---
## 技术栈
- **前端框架:** Vue 2.x
- **UI组件库:** Element UI
- **图表库:** ECharts
- **HTTP客户端:** Axios
- **状态管理:** Vuex
- **路由管理:** Vue Router
---
## 页面功能特性
### 共同特性
所有管理页面都包含以下功能:
- ✅ 分页查询
- ✅ 高级搜索(支持多条件组合搜索)
- ✅ 新增/编辑/删除/查看详情
- ✅ 批量删除
- ✅ 数据导出Excel
- ✅ 表格列排序
- ✅ 响应式布局
- ✅ 表单验证
- ✅ 权限控制
### 表单设计
- 使用Tab分页组织复杂表单
- 查看模式禁用所有输入控件
- 编辑模式下的实时验证
- 支持日期范围选择
- 支持下拉选择和开关控件
---
## 注意事项
1. **日期格式:** 所有日期时间统一使用 `yyyy-MM-dd HH:mm:ss` 格式
2. **状态值:**
- 文档状态: Z-暂存, C-审核中, A-已审核
- 取消状态: A-已取消, B-正常
- 关闭状态: A-已关闭, B-正常
3. **权限控制:** 所有操作按钮都需要相应的权限标识
4. **数据导出:** 导出功能需要后端支持对应的export接口
5. **错误处理:** 所有API调用都有统一的错误处理机制
---
## 开发建议
1. **路由配置:** 需要在 `router/index.js` 中配置相应的路由
2. **菜单配置:** 需要在系统菜单管理中添加对应的菜单项
3. **权限配置:** 需要在角色管理中配置相应的权限
4. **后端接口:** 确保后端接口已正确实现并返回规范的数据格式
5. **跨域配置:** 开发环境需要配置代理解决跨域问题
---
## 联系方式
如有问题,请联系开发团队。
**文档版本:** v1.0
**最后更新:** 2025-10-29