# 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


