# 待安装任务导出字段映射说明

## 数据库字段对照表

| Excel列名 | 数据库字段 | 字段说明 | 是否必填 |
|---------|----------|---------|---------|
| 申请单号 | application_number | 申请单号 | 是 |
| 保单编号 | policy_number | 保单编号 | 是 |
| 产品名称 | product_name | 产品名称 | 是 |
| 客户姓名 | customer_name | 客户姓名 | 是 |
| 证件类型 | id_type | 证件类型 | 是 |
| 证件号码 | id_number | 证件号码 | 是 |
| 养殖生资种类 | livestock_supply_type | 养殖生资种类 | 否 |
| 安装状态 | installation_status | 安装状态 | 是 |
| 优先级 | priority | 任务优先级 | 是 |
| 安装地址 | installation_address | 安装地址 | 否 |
| 联系电话 | contact_phone | 联系电话 | 否 |
| 任务生成时间 | task_generated_time | 任务生成时间 | 否 |
| 安装完成时间 | installation_completed_time | 安装完成时间 | 否 |
| 创建时间 | created_at | 创建时间 | 是 |
| 更新时间 | updated_at | 更新时间 | 是 |

## 字段值说明

### 证件类型 (id_type)
- 身份证
- 护照
- 军官证
- 士兵证
- 港澳台居民居住证
- 其他

### 安装状态 (installation_status)
- 待安装
- 安装中
- 已安装
- 安装失败
- 已取消

### 优先级 (priority)
- 低
- 中
- 高
- 紧急

## 注意事项

1. **数据库字段格式**：使用下划线命名（snake_case）
2. **模型字段格式**：使用驼峰命名（camelCase）
3. **raw查询返回**：返回的是数据库字段名（下划线格式）
4. **空值处理**：
   - 字符串字段：显示为空字符串 `''`
   - 日期字段：通过 `ExcelExport.formatDate()` 处理，空值显示为空字符串
5. **状态值**：直接使用数据库中的中文值，不需要额外映射

## 导出示例数据

```json
{
  "applicationNumber": "APP001",
  "policyNumber": "POL001",
  "productName": "智能耳标监控系统",
  "customerName": "张三",
  "idType": "身份证",
  "idNumber": "110101199001011234",
  "livestockSupplyType": "牛养殖",
  "installationStatus": "待安装",
  "priority": "高",
  "installationAddress": null,
  "contactPhone": null,
  "taskGeneratedTime": "2025-09-22 18:28:58",
  "installationCompletedTime": null,
  "createdAt": "2025-09-22 18:28:58",
  "updatedAt": "2025-09-22 18:28:58"
}
```

## 修复历史

### 2025-10-09 修复内容
1. ✅ 修复字段映射错误（驼峰 → 下划线）
2. ✅ 添加缺失字段：证件类型、优先级、安装地址、联系电话、更新时间
3. ✅ 移除不存在的字段映射
4. ✅ 删除多余的状态映射逻辑
5. ✅ 统一空值处理方式

