# 数据结构
## 采购单
| 字段key          | 字段名称   | 类型              | 格式           | 说明 |
| ---------------- | ---------- | ----------------- | -------------- | ---- |
| purchase_no      | 采购单单号 | string            |                |      |
| purchase_date    | 采购日期   | date              | yyyyMMddHHmmss |      |
| supplier         | 供应商     | string            |                |      |
## 采购单明细
| 字段key     | 字段名称   | 类型   | 格式 | 说明 |
| ----------- | ---------- | ------ | ---- | ---- |
| purchase_no | 采购单单号 | string |      |      |
| item_no     | 料号       | string |      |      |
# 项目
## 采购签核项目
```mermaid
graph LR;
start((start))-->preProcessTask-->purchaseApproveTask
purchaseApproveTask--签核通过-->stop0((stop0))
purchaseApproveTask--签核不通过-->checkDataTask-->stop1((stop1))
```
- start
名称：采购发起
类型：侦测
描述：每天早上8点调用采购单api获取新增的采购单数据发起采购签核项目
- preProcessTask
名称：采购单预处理
类型：自动
描述：对任务进行预处理，调用接口获取每个采购单阈值，并过滤掉不良率小于0.1的采购单
- purchaseApproveTask
名称：采购单签核
类型：签核
描述：采购单数据进行签核，采用顺序签的形式，签核人为直接主管
- checkDataTask
名称：采购单检查
类型：人工
描述：人工确认没有被审核通过的数据，并调用esp接口requisitions.data.get对未审核通过的采购单进行更新，标记为“审核不通过”
# 资料录入
## 采购单不良率阈值
维护每个采购单的不良率阈值，字段包括：采购单号、采购单名称、供应商编号、阈值。
阈值是number类型小数，取值0～1
# 报表
## 采购单统计
- 采购单总量
- 各个供应商分组柱状图
- 采购单时间分布图