# 工时记录功能快速测试指南

## 测试准备

### 1. 确保员工数据存在
前往：**系统配置 > 用户管理 > 员工管理**
- 确认至少有1-2个员工记录
- 记下员工姓名，后续会用到

### 2. 准备测试任务（可选）
前往：**农事管理 > 任务管理**
- 创建1-2个任务
- 将任务状态改为"已完成"
- 确保任务有执行人和实际起止时间

## 测试步骤

### 测试1：查看工时记录界面

1. 进入 **农事管理 > 绩效管理**
2. 切换到 **"工时记录"** 标签页
3. 检查页面是否正确显示：
   - ✅ 功能说明卡片（绿色背景）
   - ✅ 操作按钮：从任务同步工时、刷新数据、手动录入工时
   - ✅ 工时记录列表区域

**预期结果**：
- 如果没有工时数据，显示空状态提示
- 提示文字："暂无工时记录"
- 显示快捷操作按钮

---

### 测试2：手动录入工时

1. 点击 **"手动录入工时"** 按钮
2. 在弹出对话框中填写：
   - 员工：选择一个员工
   - 工作类型：选择"播种"
   - 日期：选择今天
   - 开始时间：08:00
   - 结束时间：12:00
   - 地块名称：东区1号地
   - 作业面积：50.5
   - 备注：测试工时记录
3. 观察 **"预计工时"** 提示卡片
4. 点击 **"保存工时记录"**

**预期结果**：
- ✅ 预计工时显示：4.00 小时
- ✅ 保存成功提示："工时记录添加成功"
- ✅ 对话框自动关闭
- ✅ 列表中出现新记录
- ✅ 记录状态为"待审核"
- ✅ 记录类型为"手动录入"

---

### 测试3：验证工时计算

检查新创建的工时记录卡片，确认：
- ✅ 员工姓名正确
- ✅ 工作类型显示"播种"
- ✅ 日期、时间正确：2024-XX-XX 08:00-12:00
- ✅ 总工时：4小时
- ✅ 地块：东区1号地
- ✅ 面积：50.5 亩
- ✅ 效率：12.63 亩/时 (50.5 ÷ 4)
- ✅ 关联任务：无
- ✅ 状态：橙色"待审核"徽章
- ✅ 类型：灰色"手动录入"徽章

---

### 测试4：编辑工时记录

1. 点击工时记录右侧的 **编辑按钮**（铅笔图标）
2. 在对话框中修改：
   - 结束时间改为：17:00
   - 备注改为：测试编辑工时
3. 观察预计工时变化
4. 点击 **"保存工时记录"**

**预期结果**：
- ✅ 预计工时更新为：9.00 小时
- ✅ 保存成功提示："工时记录更新成功"
- ✅ 列表中的记录总工时更新为 9小时
- ✅ 效率更新为：5.61 亩/时
- ✅ 备注信息已更新

---

### 测试5：审核工时

1. 找到状态为"待审核"的记录
2. 点击 **"审核通过"** 按钮

**预期结果**：
- ✅ 成功提示："工时已审核通过"
- ✅ 状态徽章变为绿色"已审核"
- ✅ "审核通过"和"驳回"按钮消失

---

### 测试6：驳回工时

1. 再创建一条新的工时记录
2. 对这条记录点击 **"驳回"** 按钮

**预期结果**：
- ✅ 成功提示："工时已驳回"
- ✅ 状态徽章变为红色"已驳回"

---

### 测试7：删除工时记录

1. 点击已驳回记录的 **删除按钮**（垃圾桶图标）
2. 在确认对话框中点击"确定"

**预期结果**：
- ✅ 确认提示："确定要删除该工时记录吗？此操作不可恢复。"
- ✅ 确认后提示："工时记录已删除"
- ✅ 记录从列表中消失

---

### 测试8：从任务同步工时（如果有已完成任务）

1. 点击 **"从任务同步工时"** 按钮
2. 等待处理

**预期结果（有任务）**：
- ✅ 成功提示："成功同步 X 条工时记录"
- ✅ 新增的工时记录：
  - 状态为"已审核"（自动通过）
  - 类型为"自动记录"
  - 有关联任务ID和名称
  - 备注显示"从任务...自动同步"

**预期结果（无任务）**：
- ✅ 提示："暂无已完成的任务可同步"

---

### 测试9：重复同步检查

1. 再次点击 **"从任务同步工时"** 按钮

**预期结果**：
- ✅ 提示："所有任务工时已同步，无新增记录"
- ✅ 不会创建重复的工时记录

---

### 测试10：刷新数据

1. 点击 **"刷新数据"** 按钮

**预期结果**：
- ✅ 工时列表重新加载
- ✅ 所有记录显示正常
- ✅ 控制台输出："加载工时记录: X 条"

---

### 测试11：数据持久化

1. 刷新整个浏览器页面（F5）
2. 重新进入 **农事管理 > 绩效管理 > 工时记录**

**预期结果**：
- ✅ 之前创建的工时记录依然存在
- ✅ 所有数据完整保留（时间、状态、备注等）

---

### 测试12：表单验证

尝试创建不完整的工时记录：

**场景A：缺少必填项**
1. 点击"手动录入工时"
2. 只填写员工，不填其他项
3. 点击"保存工时记录"
- ✅ 错误提示："请填写所有必填项（员工、工作类型、日期、起止时间）"

**场景B：时间无效**
1. 填写所有必填项
2. 开始时间：17:00
3. 结束时间：08:00
4. 点击"保存工时记录"
- ✅ 错误提示："结束时间必须晚于开始时间"
- ✅ 预计工时显示："请确认时间有效性"

---

## 检查数据存储

打开浏览器开发者工具（F12）：
1. 进入 **Application/应用程序** 标签
2. 左侧选择 **Local Storage**
3. 找到 `smart_agriculture_work_hours` 键

**预期内容**：
```json
[
  {
    "id": "hour-1234567890",
    "staffId": "emp-xxx",
    "staffName": "张三",
    "date": "2024-10-20",
    "startTime": "08:00",
    "endTime": "17:00",
    "totalHours": 9,
    "workType": "播种",
    "fieldName": "东区1号地",
    "area": 50.5,
    "notes": "测试编辑工时",
    "status": "已审核",
    "recordType": "手动录入",
    "createdAt": "2024-10-20T..."
  }
]
```

---

## 统计数据验证

查看页面顶部的统计卡片：

- **在职人员**：显示员工数量
- **总工时**：所有工时记录的总和
- **待审核**：待审核状态的记录数量
- **平均效率**：绩效数据的平均值

---

## 常见问题排查

### 问题1：员工下拉框为空
- 检查：前往"系统配置 > 用户管理 > 员工管理"
- 确保至少有一个状态为"正常"的员工

### 问题2：从任务同步无数据
- 检查：前往"农事管理 > 任务管理"
- 确保有状态为"已完成"的任务
- 确保任务有执行人和实际起止时间

### 问题3：数据不持久化
- 检查浏览器是否启用了 LocalStorage
- 检查是否处于隐私/无痕模式
- 清除浏览器缓存后重试

---

## 测试完成清单

完成所有测试后，确认：

- [x] 能够手动录入工时
- [x] 能够编辑已有工时
- [x] 能够审核/驳回工时
- [x] 能够删除工时
- [x] 能够从任务同步工时
- [x] 工时计算准确
- [x] 效率计算正确
- [x] 表单验证有效
- [x] 数据持久化正常
- [x] 状态流转正确
- [x] 防重复同步有效

---

## 性能测试（可选）

### 大数据量测试
1. 手动创建20+条工时记录
2. 检查列表滚动是否流畅
3. 检查搜索/筛选是否快速

### 并发测试
1. 同时打开多个浏览器标签
2. 在不同标签中操作工时
3. 检查数据同步是否正常

---

## 反馈

如果测试过程中发现问题，请记录：
- 问题描述
- 复现步骤
- 预期结果 vs 实际结果
- 浏览器类型和版本
- 控制台错误信息（如有）
