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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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