# 销售台账 — 协同审批
## 涉及页面
- **销售台账新增/编辑页面** — 新增时自动发起审批,列表展示审批状态
- **协同审批管理** — 审批模板配置、审批流程处理
- **生产主计划列表** — 展示审批状态列
## 后端变更说明
### 新增枚举
`TypeEnums` 新增 `SALES_LEDGER_APPROVAL(19L, "销售审批")`
### 审批状态
`SalesLedger.approvalStatus` 和 `ProductionPlan.approvalStatus`:
| 值 | 含义 |
|----|------|
| 0 | 待审批 |
| 1 | 审批中 |
| 2 | 已通过 |
| 3 | 已驳回 |
### 审批流程
1. 销售台账新增时自动发起审批,`sales_ledger.approval_status = 0`
2. 审批中状态变为 `1`,审批通过变为 `2`,审批驳回变为 `3`
3. 审批通过后,自动创建生产主计划,`production_plan.approval_status = 2`
4. 审批模板需要在**协同审批管理**中单独配置(不在协同审批模板列表中展示)
## API
无新增前端调用接口,审批由后端自动发起。
## 前端修改点
### 1. 销售台账列表 — 增加审批状态列
```html
待审批
审批中
已通过
已驳回
```
### 2. 销售台账详情 — 展示审批状态
```html
待审批
审批中
已通过
已驳回
```
### 3. 生产主计划列表 — 增加审批状态列
```html
已通过
已驳回
-
```
### 4. 审批模板配置
在**协同审批管理 > 审批模板**页面,新增模板时:
- **业务类型**选择"销售审批(19)"
- 配置审批节点
- 模板配置后,销售台账新增时自动匹配最新模板发起审批
### 5. 协同审批列表
审批列表已自动支持销售审批类型的展示:
- 审批标题格式:`{销售合同号}销售审批`
- 列表中的单号列展示销售合同号
## 数据库变更
执行文件:`doc/sql/20260613_sales_ledger_approval.sql`
```sql
ALTER TABLE sales_ledger
ADD COLUMN IF NOT EXISTS approval_status INT DEFAULT 0 COMMENT '审批状态:0-待审批,1-审批中,2-已通过,3-已驳回';
ALTER TABLE production_plan
ADD COLUMN IF NOT EXISTS approval_status INT DEFAULT NULL COMMENT '审批状态:0-待审批,1-审批中,2-已通过,3-已驳回';
```
## 注意事项
- 销售审批模板不在协同审批模板下拉列表中展示(与采购审批、报价审批、发货审批一致),需要在审批模板管理页面单独配置
- 审批通过后自动创建生产主计划,来源标记为"销售",下发状态为"未下发"
- 审批驳回后,销售台账可编辑重新提交(当前版本仅支持新增时发起审批)
- 导入的销售台账不会自动发起审批,如需审批需单独处理