522 lines
21 KiB
Markdown
522 lines
21 KiB
Markdown
|
|
# 采购管理模块 - 数据模型
|
||
|
|
|
||
|
|
> 本文档定义采购管理模块的数据库表结构、实体关系和视图设计。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 1. 实体关系图 (ER Diagram)
|
||
|
|
|
||
|
|
```
|
||
|
|
┌─────────────────┐ 1:N ┌─────────────────┐
|
||
|
|
│ po_supplier │◄─────────────►│ po_order │
|
||
|
|
│ (供应商) │ │ (采购订单) │
|
||
|
|
└─────────────────┘ └────────┬────────┘
|
||
|
|
│ 1:N
|
||
|
|
▼
|
||
|
|
┌─────────────────┐
|
||
|
|
│ po_order_line │
|
||
|
|
│ (采购订单明细) │
|
||
|
|
└────────┬────────┘
|
||
|
|
│
|
||
|
|
┌───────────────────────────────┼───────────────────────────────┐
|
||
|
|
│ │ │
|
||
|
|
▼ 1:N ▼ 1:N ▼ 1:N
|
||
|
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||
|
|
│ po_checkin │ │ po_invoice │ │ po_reject │
|
||
|
|
│ (采购到货) │ │ (采购发票) │ │ (采购退货) │
|
||
|
|
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
|
||
|
|
│ 1:N │ 1:N │ 1:N
|
||
|
|
▼ ▼ ▼
|
||
|
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||
|
|
│ po_checkin_line │ │ po_invoice_line │ │ po_reject_line │
|
||
|
|
│ (到货单明细) │ │ (发票明细) │ │ (退货单明细) │
|
||
|
|
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||
|
|
|
||
|
|
关联表:
|
||
|
|
┌─────────────────┐
|
||
|
|
│ md_item │ ◄──── 采购订单明细、到货明细、退货明细关联
|
||
|
|
│ (物料档案) │
|
||
|
|
└─────────────────┘
|
||
|
|
|
||
|
|
┌─────────────────┐
|
||
|
|
│ wm_warehouse │ ◄──── 到货单、入库单关联
|
||
|
|
│ (仓库) │
|
||
|
|
└─────────────────┘
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. 供应商档案表 (po_supplier)
|
||
|
|
|
||
|
|
> API 路径: `/po/supplier`
|
||
|
|
|
||
|
|
### 2.1 主表结构
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| supplierId | bigint | - | N | - | 供应商ID (主键) |
|
||
|
|
| supplierCode | varchar | 32 | N | - | 供应商编码 |
|
||
|
|
| supplierName | varchar | 100 | N | - | 供应商名称 |
|
||
|
|
| supplierAlias | varchar | 100 | Y | - | 供应商别名 |
|
||
|
|
| supplierNick | varchar | 50 | Y | - | 供应商简称 |
|
||
|
|
| supplierType | varchar | 20 | Y | - | 供应商分类 |
|
||
|
|
| supplierLevel | varchar | 10 | Y | 'B' | 供应商等级(A/B/C/D) |
|
||
|
|
| province | varchar | 50 | Y | - | 省份 |
|
||
|
|
| city | varchar | 50 | Y | - | 城市 |
|
||
|
|
| address | varchar | 200 | Y | - | 公司地址 |
|
||
|
|
| zipCode | varchar | 10 | Y | - | 邮编 |
|
||
|
|
| tel | varchar | 20 | Y | - | 电话 |
|
||
|
|
| fax | varchar | 20 | Y | - | 传真 |
|
||
|
|
| email | varchar | 100 | Y | - | 邮箱 |
|
||
|
|
| website | varchar | 200 | Y | - | 网址 |
|
||
|
|
| contact1 | varchar | 50 | Y | - | 业务联系人 |
|
||
|
|
| contact1Tel | varchar | 20 | Y | - | 业务联系人电话 |
|
||
|
|
| contact2 | varchar | 50 | Y | - | 财务联系人 |
|
||
|
|
| contact2Tel | varchar | 20 | Y | - | 财务联系人电话 |
|
||
|
|
| bankName | varchar | 100 | Y | - | 开户银行 |
|
||
|
|
| bankAccount | varchar | 30 | Y | - | 银行账号 |
|
||
|
|
| bankAddress | varchar | 200 | Y | - | 开票地址电话 |
|
||
|
|
| taxNo | varchar | 30 | Y | - | 税号 |
|
||
|
|
| supplyItems | varchar | 500 | Y | - | 供应料品(逗号分隔) |
|
||
|
|
| remark | varchar | 500 | Y | - | 备注 |
|
||
|
|
| enableFlag | char | 1 | N | 'Y' | 启用状态(Y/N) |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createBy | varchar | 64 | Y | - | 创建者 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| updateBy | varchar | 64 | Y | - | 更新者 |
|
||
|
|
| updateTime | datetime | - | Y | - | 更新时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
### 2.2 索引设计
|
||
|
|
|
||
|
|
| 索引名 | 索引字段 | 类型 | 说明 |
|
||
|
|
|--------|----------|------|------|
|
||
|
|
| pk_supplier | supplierId | 主键 | 主键索引 |
|
||
|
|
| uk_supplier_code | supplierCode, tenantId | 唯一 | 供应商编码唯一 |
|
||
|
|
| idx_supplier_name | supplierName | 普通 | 名称查询 |
|
||
|
|
| idx_supplier_tenant | tenantId | 普通 | 租户筛选 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. 采购订单表 (po_order)
|
||
|
|
|
||
|
|
> API 路径: `/po/order`
|
||
|
|
|
||
|
|
### 3.1 主表结构
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| orderId | bigint | - | N | - | 订单ID (主键) |
|
||
|
|
| orderCode | varchar | 32 | N | - | 订单编码 |
|
||
|
|
| orderDate | date | - | N | - | 订单日期 |
|
||
|
|
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
|
||
|
|
| businessStatus | varchar | 20 | Y | 'NORMAL' | 业务状态 |
|
||
|
|
| businessType | varchar | 20 | N | - | 业务类型 |
|
||
|
|
| orderType | varchar | 20 | N | - | 单据类型 |
|
||
|
|
| materialNeed | varchar | 20 | N | - | 用料需求 |
|
||
|
|
| supplierId | bigint | - | Y | - | 供应商ID |
|
||
|
|
| supplierName | varchar | 100 | Y | - | 供应商名称 |
|
||
|
|
| deptId | bigint | - | Y | - | 采购部门ID |
|
||
|
|
| deptName | varchar | 50 | Y | - | 采购部门名称 |
|
||
|
|
| userId | bigint | - | Y | - | 采购人员ID |
|
||
|
|
| userName | varchar | 50 | Y | - | 采购人员名称 |
|
||
|
|
| deliveryDate | date | - | Y | - | 到货日期 |
|
||
|
|
| contractNo | varchar | 50 | Y | - | 合同号 |
|
||
|
|
| contractFile | varchar | 500 | Y | - | 合同附件 |
|
||
|
|
| totalQuantity | decimal | 18,4 | Y | 0 | 总数量 |
|
||
|
|
| totalAmount | decimal | 18,2 | Y | 0 | 总金额 |
|
||
|
|
| arrivedQuantity | decimal | 18,4 | Y | 0 | 已到货数量 |
|
||
|
|
| remark | varchar | 500 | Y | - | 备注 |
|
||
|
|
| operatorId | bigint | - | Y | - | 操作员ID |
|
||
|
|
| operatorName | varchar | 50 | Y | - | 操作员名称 |
|
||
|
|
| approverId | bigint | - | Y | - | 审核员ID |
|
||
|
|
| approverName | varchar | 50 | Y | - | 审核员名称 |
|
||
|
|
| approveDate | datetime | - | Y | - | 审核日期 |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createBy | varchar | 64 | Y | - | 创建者 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| updateBy | varchar | 64 | Y | - | 更新者 |
|
||
|
|
| updateTime | datetime | - | Y | - | 更新时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
### 3.2 明细表结构 (po_order_line)
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| lineId | bigint | - | N | - | 明细ID (主键) |
|
||
|
|
| orderId | bigint | - | N | - | 订单ID (外键) |
|
||
|
|
| orderCode | varchar | 32 | N | - | 订单编码 |
|
||
|
|
| lineNo | int | - | N | - | 行号 |
|
||
|
|
| trackCode | varchar | 32 | Y | - | 跟单编号 |
|
||
|
|
| planCode | varchar | 32 | Y | - | 计划单号 |
|
||
|
|
| planLineId | bigint | - | Y | - | 计划明细ID |
|
||
|
|
| itemId | bigint | - | N | - | 物料ID |
|
||
|
|
| itemCode | varchar | 32 | N | - | 物料编码 |
|
||
|
|
| itemName | varchar | 100 | N | - | 物料名称 |
|
||
|
|
| specification | varchar | 200 | Y | - | 型号规格 |
|
||
|
|
| unitId | bigint | - | Y | - | 计量单位ID |
|
||
|
|
| unitName | varchar | 20 | Y | - | 计量单位 |
|
||
|
|
| needDate | date | - | Y | - | 需求日期 |
|
||
|
|
| quantity | decimal | 18,4 | N | 0 | 采购数量 |
|
||
|
|
| unitPrice | decimal | 18,4 | Y | 0 | 采购单价 |
|
||
|
|
| amount | decimal | 18,2 | Y | 0 | 金额 |
|
||
|
|
| arrivedQuantity | decimal | 18,4 | Y | 0 | 已到货数量 |
|
||
|
|
| remark | varchar | 200 | Y | - | 采购说明 |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
### 3.3 索引设计
|
||
|
|
|
||
|
|
| 索引名 | 索引字段 | 类型 | 说明 |
|
||
|
|
|--------|----------|------|------|
|
||
|
|
| pk_order | orderId | 主键 | 主键索引 |
|
||
|
|
| uk_order_code | orderCode, tenantId | 唯一 | 订单编码唯一 |
|
||
|
|
| idx_order_supplier | supplierId | 普通 | 供应商查询 |
|
||
|
|
| idx_order_date | orderDate | 普通 | 日期查询 |
|
||
|
|
| idx_order_status | status | 普通 | 状态查询 |
|
||
|
|
| pk_order_line | lineId | 主键 | 明细主键 |
|
||
|
|
| idx_line_order | orderId | 普通 | 订单关联 |
|
||
|
|
| idx_line_item | itemId | 普通 | 物料查询 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. 采购到货单表 (po_checkin)
|
||
|
|
|
||
|
|
> API 路径: `/po/checkin`
|
||
|
|
|
||
|
|
### 4.1 主表结构
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| checkinId | bigint | - | N | - | 到货单ID (主键) |
|
||
|
|
| checkinCode | varchar | 32 | N | - | 到货单编码 |
|
||
|
|
| checkinDate | date | - | N | - | 到货日期 |
|
||
|
|
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
|
||
|
|
| businessType | varchar | 20 | N | - | 业务类型 |
|
||
|
|
| orderId | bigint | - | Y | - | 采购订单ID |
|
||
|
|
| orderCode | varchar | 32 | Y | - | 采购订单编码 |
|
||
|
|
| supplierId | bigint | - | Y | - | 供应商ID |
|
||
|
|
| supplierName | varchar | 100 | Y | - | 供应商名称 |
|
||
|
|
| warehouseId | bigint | - | Y | - | 仓库ID |
|
||
|
|
| warehouseName | varchar | 50 | Y | - | 仓库名称 |
|
||
|
|
| totalQuantity | decimal | 18,4 | Y | 0 | 总到货数量 |
|
||
|
|
| stockedQuantity | decimal | 18,4 | Y | 0 | 已入库数量 |
|
||
|
|
| remark | varchar | 500 | Y | - | 备注 |
|
||
|
|
| operatorId | bigint | - | Y | - | 操作员ID |
|
||
|
|
| operatorName | varchar | 50 | Y | - | 操作员名称 |
|
||
|
|
| approverId | bigint | - | Y | - | 审核员ID |
|
||
|
|
| approverName | varchar | 50 | Y | - | 审核员名称 |
|
||
|
|
| approveDate | datetime | - | Y | - | 审核日期 |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createBy | varchar | 64 | Y | - | 创建者 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| updateBy | varchar | 64 | Y | - | 更新者 |
|
||
|
|
| updateTime | datetime | - | Y | - | 更新时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
### 4.2 明细表结构 (po_checkin_line)
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| lineId | bigint | - | N | - | 明细ID (主键) |
|
||
|
|
| checkinId | bigint | - | N | - | 到货单ID (外键) |
|
||
|
|
| checkinCode | varchar | 32 | N | - | 到货单编码 |
|
||
|
|
| lineNo | int | - | N | - | 行号 |
|
||
|
|
| orderLineId | bigint | - | Y | - | 采购订单明细ID |
|
||
|
|
| trackCode | varchar | 32 | Y | - | 跟单编号 |
|
||
|
|
| itemId | bigint | - | N | - | 物料ID |
|
||
|
|
| itemCode | varchar | 32 | N | - | 物料编码 |
|
||
|
|
| itemName | varchar | 100 | N | - | 物料名称 |
|
||
|
|
| specification | varchar | 200 | Y | - | 型号规格 |
|
||
|
|
| unitName | varchar | 20 | Y | - | 计量单位 |
|
||
|
|
| orderQuantity | decimal | 18,4 | Y | 0 | 订单数量 |
|
||
|
|
| quantity | decimal | 18,4 | N | 0 | 到货数量 |
|
||
|
|
| stockedQuantity | decimal | 18,4 | Y | 0 | 已入库数量 |
|
||
|
|
| remark | varchar | 200 | Y | - | 备注 |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. 采购发票表 (po_invoice)
|
||
|
|
|
||
|
|
> API 路径: `/po/invoice`
|
||
|
|
|
||
|
|
### 5.1 主表结构
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| invoiceId | bigint | - | N | - | 发票ID (主键) |
|
||
|
|
| invoiceCode | varchar | 32 | N | - | 发票单据编码 |
|
||
|
|
| invoiceDate | date | - | N | - | 单据日期 |
|
||
|
|
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
|
||
|
|
| financeStatus | varchar | 20 | N | 'RECORDED' | 财务状态 |
|
||
|
|
| businessType | varchar | 20 | N | - | 业务类型 |
|
||
|
|
| supplierId | bigint | - | N | - | 供应商ID |
|
||
|
|
| supplierName | varchar | 100 | N | - | 供应商名称 |
|
||
|
|
| invoiceNo | varchar | 50 | Y | - | 发票号码 |
|
||
|
|
| invoiceAmount | decimal | 18,2 | N | 0 | 发票金额(不含税) |
|
||
|
|
| taxRate | decimal | 5,2 | Y | 0 | 税率(%) |
|
||
|
|
| taxAmount | decimal | 18,2 | Y | 0 | 税额 |
|
||
|
|
| totalAmount | decimal | 18,2 | Y | 0 | 价税合计 |
|
||
|
|
| remark | varchar | 500 | Y | - | 备注 |
|
||
|
|
| operatorId | bigint | - | Y | - | 操作员ID |
|
||
|
|
| operatorName | varchar | 50 | Y | - | 操作员名称 |
|
||
|
|
| approverId | bigint | - | Y | - | 审核员ID |
|
||
|
|
| approverName | varchar | 50 | Y | - | 审核员名称 |
|
||
|
|
| approveDate | datetime | - | Y | - | 审核日期 |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createBy | varchar | 64 | Y | - | 创建者 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| updateBy | varchar | 64 | Y | - | 更新者 |
|
||
|
|
| updateTime | datetime | - | Y | - | 更新时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
### 5.2 明细表结构 (po_invoice_line)
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| lineId | bigint | - | N | - | 明细ID (主键) |
|
||
|
|
| invoiceId | bigint | - | N | - | 发票ID (外键) |
|
||
|
|
| invoiceCode | varchar | 32 | N | - | 发票单据编码 |
|
||
|
|
| lineNo | int | - | N | - | 行号 |
|
||
|
|
| checkinLineId | bigint | - | Y | - | 到货明细ID |
|
||
|
|
| itemId | bigint | - | N | - | 物料ID |
|
||
|
|
| itemCode | varchar | 32 | N | - | 物料编码 |
|
||
|
|
| itemName | varchar | 100 | N | - | 物料名称 |
|
||
|
|
| specification | varchar | 200 | Y | - | 型号规格 |
|
||
|
|
| unitName | varchar | 20 | Y | - | 计量单位 |
|
||
|
|
| quantity | decimal | 18,4 | N | 0 | 开票数量 |
|
||
|
|
| unitPrice | decimal | 18,4 | Y | 0 | 单价 |
|
||
|
|
| amount | decimal | 18,2 | Y | 0 | 金额 |
|
||
|
|
| taxAmount | decimal | 18,2 | Y | 0 | 税额 |
|
||
|
|
| remark | varchar | 200 | Y | - | 备注 |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 6. 采购退货单表 (po_reject)
|
||
|
|
|
||
|
|
> API 路径: `/po/reject`
|
||
|
|
|
||
|
|
### 6.1 主表结构
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| rejectId | bigint | - | N | - | 退货单ID (主键) |
|
||
|
|
| rejectCode | varchar | 32 | N | - | 退货单编码 |
|
||
|
|
| rejectDate | date | - | N | - | 退货日期 |
|
||
|
|
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
|
||
|
|
| businessType | varchar | 20 | N | - | 业务类型 |
|
||
|
|
| supplierId | bigint | - | N | - | 供应商ID |
|
||
|
|
| supplierName | varchar | 100 | N | - | 供应商名称 |
|
||
|
|
| checkinId | bigint | - | Y | - | 到货单ID |
|
||
|
|
| checkinCode | varchar | 32 | Y | - | 到货单编码 |
|
||
|
|
| totalQuantity | decimal | 18,4 | Y | 0 | 退货总数量 |
|
||
|
|
| outQuantity | decimal | 18,4 | Y | 0 | 已出库数量 |
|
||
|
|
| returnQuantity | decimal | 18,4 | Y | 0 | 补收数量 |
|
||
|
|
| reason | varchar | 500 | Y | - | 退货原因 |
|
||
|
|
| remark | varchar | 500 | Y | - | 备注 |
|
||
|
|
| operatorId | bigint | - | Y | - | 操作员ID |
|
||
|
|
| operatorName | varchar | 50 | Y | - | 操作员名称 |
|
||
|
|
| approverId | bigint | - | Y | - | 审核员ID |
|
||
|
|
| approverName | varchar | 50 | Y | - | 审核员名称 |
|
||
|
|
| approveDate | datetime | - | Y | - | 审核日期 |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createBy | varchar | 64 | Y | - | 创建者 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| updateBy | varchar | 64 | Y | - | 更新者 |
|
||
|
|
| updateTime | datetime | - | Y | - | 更新时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
### 6.2 明细表结构 (po_reject_line)
|
||
|
|
|
||
|
|
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|
||
|
|
|--------|------|------|--------|--------|------|
|
||
|
|
| lineId | bigint | - | N | - | 明细ID (主键) |
|
||
|
|
| rejectId | bigint | - | N | - | 退货单ID (外键) |
|
||
|
|
| rejectCode | varchar | 32 | N | - | 退货单编码 |
|
||
|
|
| lineNo | int | - | N | - | 行号 |
|
||
|
|
| checkinLineId | bigint | - | Y | - | 到货明细ID |
|
||
|
|
| trackCode | varchar | 32 | Y | - | 跟单编号 |
|
||
|
|
| itemId | bigint | - | N | - | 物料ID |
|
||
|
|
| itemCode | varchar | 32 | N | - | 物料编码 |
|
||
|
|
| itemName | varchar | 100 | N | - | 物料名称 |
|
||
|
|
| specification | varchar | 200 | Y | - | 型号规格 |
|
||
|
|
| unitName | varchar | 20 | Y | - | 计量单位 |
|
||
|
|
| quantity | decimal | 18,4 | N | 0 | 退货数量 |
|
||
|
|
| outQuantity | decimal | 18,4 | Y | 0 | 已出库数量 |
|
||
|
|
| returnQuantity | decimal | 18,4 | Y | 0 | 补收数量 |
|
||
|
|
| reason | varchar | 200 | Y | - | 退货原因 |
|
||
|
|
| remark | varchar | 200 | Y | - | 备注 |
|
||
|
|
| delFlag | char | 1 | N | '0' | 删除标志 |
|
||
|
|
| createTime | datetime | - | Y | - | 创建时间 |
|
||
|
|
| tenantId | varchar | 20 | N | - | 租户ID |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 7. 视图设计
|
||
|
|
|
||
|
|
### 7.1 采购订单明细视图 (v_po_order_detail)
|
||
|
|
|
||
|
|
```sql
|
||
|
|
CREATE VIEW v_po_order_detail AS
|
||
|
|
SELECT
|
||
|
|
l.lineId,
|
||
|
|
l.orderId,
|
||
|
|
o.orderCode,
|
||
|
|
o.orderDate,
|
||
|
|
o.status,
|
||
|
|
o.businessType,
|
||
|
|
o.materialNeed,
|
||
|
|
o.supplierId,
|
||
|
|
o.supplierName,
|
||
|
|
l.trackCode,
|
||
|
|
l.planCode,
|
||
|
|
l.itemId,
|
||
|
|
l.itemCode,
|
||
|
|
l.itemName,
|
||
|
|
l.specification,
|
||
|
|
l.unitName,
|
||
|
|
l.needDate,
|
||
|
|
l.quantity AS orderQuantity,
|
||
|
|
l.unitPrice,
|
||
|
|
l.amount,
|
||
|
|
l.arrivedQuantity,
|
||
|
|
(l.quantity - IFNULL(l.arrivedQuantity, 0)) AS pendingQuantity,
|
||
|
|
o.tenantId
|
||
|
|
FROM po_order_line l
|
||
|
|
INNER JOIN po_order o ON l.orderId = o.orderId
|
||
|
|
WHERE l.delFlag = '0' AND o.delFlag = '0';
|
||
|
|
```
|
||
|
|
|
||
|
|
### 7.2 采购执行汇总视图 (v_po_order_summary)
|
||
|
|
|
||
|
|
```sql
|
||
|
|
CREATE VIEW v_po_order_summary AS
|
||
|
|
SELECT
|
||
|
|
i.itemTypeCode AS itemTypeCode,
|
||
|
|
i.itemTypeName AS itemTypeName,
|
||
|
|
l.itemId,
|
||
|
|
l.itemCode,
|
||
|
|
l.itemName,
|
||
|
|
SUM(l.quantity) AS totalOrderQty,
|
||
|
|
SUM(IFNULL(l.arrivedQuantity, 0)) AS totalArrivedQty,
|
||
|
|
SUM(l.quantity - IFNULL(l.arrivedQuantity, 0)) AS totalPendingQty,
|
||
|
|
o.tenantId
|
||
|
|
FROM po_order_line l
|
||
|
|
INNER JOIN po_order o ON l.orderId = o.orderId AND o.status = 'APPROVED'
|
||
|
|
LEFT JOIN md_item i ON l.itemId = i.itemId
|
||
|
|
WHERE l.delFlag = '0' AND o.delFlag = '0'
|
||
|
|
GROUP BY i.itemTypeCode, i.itemTypeName, l.itemId, l.itemCode, l.itemName, o.tenantId;
|
||
|
|
```
|
||
|
|
|
||
|
|
### 7.3 采购到货明细视图 (v_po_checkin_detail)
|
||
|
|
|
||
|
|
```sql
|
||
|
|
CREATE VIEW v_po_checkin_detail AS
|
||
|
|
SELECT
|
||
|
|
l.lineId,
|
||
|
|
l.checkinId,
|
||
|
|
c.checkinCode,
|
||
|
|
c.checkinDate,
|
||
|
|
c.status,
|
||
|
|
c.businessType,
|
||
|
|
c.orderCode,
|
||
|
|
c.supplierId,
|
||
|
|
c.supplierName,
|
||
|
|
l.trackCode,
|
||
|
|
l.itemId,
|
||
|
|
l.itemCode,
|
||
|
|
l.itemName,
|
||
|
|
l.specification,
|
||
|
|
l.unitName,
|
||
|
|
l.orderQuantity,
|
||
|
|
l.quantity AS checkinQuantity,
|
||
|
|
l.stockedQuantity,
|
||
|
|
c.tenantId
|
||
|
|
FROM po_checkin_line l
|
||
|
|
INNER JOIN po_checkin c ON l.checkinId = c.checkinId
|
||
|
|
WHERE l.delFlag = '0' AND c.delFlag = '0';
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8. 状态枚举定义
|
||
|
|
|
||
|
|
### 8.1 单据状态 (status)
|
||
|
|
|
||
|
|
| 枚举值 | 中文名 | 说明 |
|
||
|
|
|--------|--------|------|
|
||
|
|
| DRAFT | 开立 | 草稿,可编辑 |
|
||
|
|
| APPROVED | 审核 | 已审核,不可编辑 |
|
||
|
|
| CLOSED | 关闭 | 已关闭 |
|
||
|
|
| RETURNED | 退回 | 已退回(发票专用) |
|
||
|
|
|
||
|
|
### 8.2 财务状态 (financeStatus)
|
||
|
|
|
||
|
|
| 枚举值 | 中文名 | 说明 |
|
||
|
|
|--------|--------|------|
|
||
|
|
| RECORDED | 录入 | 已录入 |
|
||
|
|
| ENTERED | 入账 | 已入账 |
|
||
|
|
|
||
|
|
### 8.3 业务状态 (businessStatus)
|
||
|
|
|
||
|
|
| 枚举值 | 中文名 | 说明 |
|
||
|
|
|--------|--------|------|
|
||
|
|
| NORMAL | 正常 | 正常执行 |
|
||
|
|
| PAUSE | 暂停 | 暂停执行 |
|
||
|
|
| CANCEL | 取消 | 已取消 |
|
||
|
|
|
||
|
|
### 8.4 业务类型 (businessType)
|
||
|
|
|
||
|
|
| 枚举值 | 中文名 | 说明 |
|
||
|
|
|--------|--------|------|
|
||
|
|
| RAW_MATERIAL | 原材料 | 原材料采购 |
|
||
|
|
| PARTS | 零部件 | 零部件采购 |
|
||
|
|
| ASSEMBLY | 装配件 | 装配件采购 |
|
||
|
|
| FINISHED | 成品 | 成品采购 |
|
||
|
|
| HARDWARE | 五金件 | 五金件采购 |
|
||
|
|
| PACKAGING | 包装物 | 包装物采购 |
|
||
|
|
|
||
|
|
### 8.5 用料需求 (materialNeed)
|
||
|
|
|
||
|
|
| 枚举值 | 中文名 | 说明 |
|
||
|
|
|--------|--------|------|
|
||
|
|
| ORDER_USE | 订单用料 | 按订单需求采购 |
|
||
|
|
| STOCK_USE | 备库用料 | 备库采购 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 9. API 模块路径对照
|
||
|
|
|
||
|
|
| 业务模块 | API前缀 | 说明 |
|
||
|
|
|----------|---------|------|
|
||
|
|
| 供应商 | /po/supplier | 供应商档案 |
|
||
|
|
| 采购订单 | /po/order | 采购订单 |
|
||
|
|
| 采购到货 | /po/checkin | 采购到货单 |
|
||
|
|
| 采购发票 | /po/invoice | 采购发票 |
|
||
|
|
| 采购退货 | /po/reject | 采购退货单 |
|
||
|
|
| 采购报表 | /po/report | 采购统计报表 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 10. 数据权限说明
|
||
|
|
|
||
|
|
### 10.1 租户隔离
|
||
|
|
|
||
|
|
所有表都包含 `tenantId` 字段,用于多租户数据隔离。
|
||
|
|
|
||
|
|
### 10.2 数据权限范围
|
||
|
|
|
||
|
|
| 权限类型 | 说明 |
|
||
|
|
|----------|------|
|
||
|
|
| 全部数据 | 可查看所有数据 |
|
||
|
|
| 部门数据 | 只能查看本部门数据 |
|
||
|
|
| 部门及以下数据 | 可查看本部门及下级部门数据 |
|
||
|
|
| 仅本人数据 | 只能查看自己创建的数据 |
|