# 车辆三检模块改动说明

## 1. 本次改动

本次对车辆三检模块新增了以下能力：

1. 新增字段 `rejectReason`，表示审核不通过原因。
2. 新增批量审核接口，管理员可以一键审核多条不同的车辆三检内容。

## 2. 字段变更

### 2.1 新增字段

- 字段名：`rejectReason`
- 含义：审核不通过原因
- 生效场景：仅在审核不通过时有值

### 2.2 使用规则

- 当审核通过时：
  - 后端自动将 `rejectReason` 置空
- 当审核不通过时：
  - 前端需要传入 `rejectReason`
  - 若未传，后端会返回业务异常：
    - `审核不通过时，不通过原因不能为空`

### 2.3 数据库说明

车辆三检表需要新增字段：

```sql
ALTER TABLE hot_vehicle_three_inspect
ADD COLUMN reject_reason varchar(500) NULL COMMENT '审核不通过原因';
```

## 3. 单条审核接口调整

### 3.1 接口信息

- 路径：`POST /securityManagement/vehicleThreeInspect/audit`

### 3.2 新增请求字段

- `rejectReason`：审核不通过原因

### 3.3 审核规则

- 当前仍以 `hasHiddenDanger` 作为是否通过的判断依据：
  - `hasHiddenDanger = 0`：审核通过
  - `hasHiddenDanger = 1`：审核不通过
- 审核不通过时必须传 `rejectReason`
- 审核通过时 `rejectReason` 不入库

## 4. 批量审核接口

### 4.1 接口信息

- 路径：`POST /securityManagement/vehicleThreeInspect/batchAudit`
- 说明：管理员可一次性审核多条不同三检记录

### 4.2 请求体

```json
{
  "auditItems": [
    {
      "id": 101,
      "taskId": "task_001",
      "auditTime": "2026-05-22 10:00:00",
      "hasHiddenDanger": 0,
      "auditResult": "审核通过",
      "auditorSignImgUrl": "12345"
    },
    {
      "id": 102,
      "taskId": "task_002",
      "auditTime": "2026-05-22 10:05:00",
      "hasHiddenDanger": 1,
      "auditResult": "发现问题需整改",
      "rejectReason": "轮胎磨损超标",
      "auditorSignImgUrl": "12345"
    }
  ]
}
```

### 4.3 请求字段说明

批量项沿用单条审核字段，核心包括：

- `id`：三检记录ID
- `taskId`：流程任务ID
- `auditTime`：审核时间
- `hasHiddenDanger`：是否存在隐患
- `auditResult`：审核结论
- `rejectReason`：审核不通过原因
- `auditorSignImgUrl`：审核人签名

### 4.4 处理规则

接口会逐条执行以下逻辑：

1. 校验三检记录ID和流程任务ID。
2. 校验审核时间不能早于检查时间。
3. 若传了审核签名，则校验签名归属。
4. 根据 `hasHiddenDanger` 处理通过/不通过逻辑。
5. 审核不通过时校验 `rejectReason` 必填。
6. 更新三检记录并推进对应流程任务。

## 5. 影响范围

- 详情接口、列表接口、导出接口会返回 `rejectReason` 字段。
- 审核驳回通知优先展示 `rejectReason`，没有时才回退展示 `auditResult`。
