# 农机变更历史示例数据 - 快速指南

## 📋 概述

为农机全生命周期档案提供了**25条真实场景的变更历史记录**，涵盖5台农机设备，展示各种信息修改场景，帮助用户了解变更追踪功能。

## 🎯 核心特性

### 简化版变更历史列表
- ✅ 去掉统计卡片
- ✅ 去掉搜索和过滤功能  
- ✅ 去掉时间轴视图
- ✅ 去掉按日期分组
- ✅ 只保留简洁的变更记录列表

### 完整的变更追踪
- ✅ 自动记录修改前后的值
- ✅ 记录操作人和操作时间
- ✅ 支持多种数据类型
- ✅ 按时间倒序显示

## 📊 示例数据概览

```
总变更记录: 25条
涉及设备: 5台
变更类型: 9种字段
操作人员: 12位
时间跨度: 50天
```

### 按设备分布

| 设备名称 | 变更次数 | 主要变更 |
|---------|---------|---------|
| 约翰迪尔拖拉机 | 7次 | 状态、位置、价格、保险 |
| 久保田收割机 | 6次 | 名称、位置、状态、标签 |
| 丰疆播种机 | 6次 | 操作人、状态、位置、保险 |
| 大疆植保无人机 | 3次 | 备注、位置、标签 |
| 雷沃拖拉机 | 3次 | 供应商、部门、备注 |

### 变更字段统计

```
设备状态: 6次
当前位置: 6次
备注信息: 4次
标签管理: 3次
操作人员: 2次
保险信息: 2次
价格调整: 1次
供应商: 1次
部门调整: 1次
```

## 🚀 快速开始

### 方法1：自动初始化（推荐）

系统首次运行时会自动创建示例数据：

```typescript
// 在 mockData.ts 中自动调用
initializeChangeHistoryMockData();
```

### 方法2：查看示例组件

```typescript
import { ChangeHistoryExamples } from './components/machinery/ChangeHistoryExamples';

function App() {
  return <ChangeHistoryExamples />;
}
```

### 方法3：在农机详情中查看

```typescript
import { ChangeHistoryList } from './components/machinery/ChangeHistoryList';

const history = machineryStorage.getChangeHistory(machineryId);

<ChangeHistoryList history={history} />
```

## 📝 示例数据详情

### 示例1：设备状态变更

```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 设备状态
修改前: 正常
修改后: 待维护
操作人: 张三
时间: 3天前
说明: 设备需要进行定期维护
```

### 示例2：位置信息更新

```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 当前位置
修改前: 1号地块
修改后: 3号地块
操作人: 李四
时间: 5天前
说明: 设备转场到新的作业地块
```

### 示例3：操作人员调整

```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 操作人员
修改前: 张三
修改后: 王五
操作人: 系统管理员
时间: 7天前
说明: 操作人员轮换安排
```

### 示例4：保险信息更新

```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 保险结束日期
修改前: 2025-03-31
修改后: 2026-03-31
操作人: 财务部-刘会计
时间: 10天前
说明: 保险续保，延长一年
```

### 示例5：价格调整

```yaml
设备: 约翰迪尔6B-1404拖拉机
字段: 购机价格
修改前: ¥350,000
修改后: ¥345,000
操作人: 财务部-刘会计
时间: 15天前
说明: 发票金额核对调整
```

### 示例6：设备名称规范化

```yaml
设备: 久保田收割机
字段: 设备名称
修改前: 久保田收割机
修改后: 久保田PRO988Q收割机
操作人: 资产管理员
时间: 30天前
说明: 补充完整的型号信息
```

### 示例7：标签管理

```yaml
设备: 久保田PRO988Q收割机
字段: 标签
修改前: 高效节能, 进口设备
修改后: 重点设备, 高效节能, 进口设备
操作人: 系统管理员
时间: 12天前
说明: 添加"重点设备"标签
```

### 示例8：部门调整

```yaml
设备: 雷沃欧豹1604拖拉机
字段: 所属部门
修改前: 第三生产队
修改后: 第一生产队
操作人: 人事部-郑主管
时间: 45天前
说明: 组织架构调整
```

## 🎨 界面展示

### 变更记录卡片布局

```
┌─────────────────────────────────────────────┐
│ 设备状态 已修改                    3天前     │
├─────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────┐ │
│ │ 修改前: 正常                            │ │
│ │           ↓                             │ │
│ │ 修改后: 待维护                          │ │
│ └─────────────────────────────────────────┘ │
├─────────────────────────────────────────────┤
│ 👤 操作人: 张三  🕐 2025-10-13 14:30:25    │
└─────────────────────────────────────────────┘
```

### 简洁列表视图

```
变更历史 (共 7 条记录)

🔹 设备状态 已修改                              1天前
   修改前: 待维护
      ↓
   修改后: 正常
   操作人: 维修班-李师傅

🔹 设备状态 已修改                              3天前
   修改前: 正常
      ↓
   修改后: 待维护
   操作人: 张三

🔹 当前位置 已修改                              5天前
   修改前: 1号地块
      ↓
   修改后: 3号地块
   操作人: 李四
```

## 💾 数据结构

### 完整变更记录

```typescript
{
  id: "change-1697461234567-001",
  machineryId: "machinery-1",
  fieldName: "status",
  fieldLabel: "设备状态",
  oldValue: "正常",
  newValue: "待维护",
  operator: "张三",
  operatedAt: "2025-10-13T14:30:25.000Z"
}
```

### 支持的字段类型

| 字段类型 | 示例 | 显示格式 |
|---------|------|---------|
| 文本 | 设备名称 | 直接显示 |
| 数字 | 购机价格 | ¥350,000 |
| 日期 | 保险结束日期 | 2025/03/31 |
| 数组 | 标签 | tag1, tag2 |
| 空值 | null/undefined | (空) |

## 📈 变更场景覆盖

### 1. 设备状态管理
```
正常 ↔ 待维护
- 设备需要保养时标记为待维护
- 维修完成后恢复为正常
- 追踪设备可用性变化
```

### 2. 位置追踪
```
机库 → 作业地块 → 机库
- 记录设备转场轨迹
- 追踪设备当前位置
- 优化调度决策
```

### 3. 人员管理
```
操作人员调整
- 记录责任人变更
- 追踪使用历史
- 绩效分析依据
```

### 4. 财务信息
```
价格调整、保险更新
- 资产价值变化
- 保险到期提醒
- 成本核算依据
```

### 5. 设备信息
```
名称规范、标签管理、备注更新
- 信息完善过程
- 分类管理优化
- 知识积累
```

## 🔧 API使用

### 获取变更历史

```typescript
import { machineryStorage } from './lib/machineryStorage';

// 获取指定农机的变更历史
const history = machineryStorage.getChangeHistory('machinery-1');

// 按时间排序
const sorted = history.sort((a, b) => 
  new Date(b.operatedAt).getTime() - new Date(a.operatedAt).getTime()
);
```

### 获取统计信息

```typescript
import { getChangeHistoryStatistics } from './lib/changeHistoryMockData';

const stats = getChangeHistoryStatistics();
console.log(stats);
// {
//   totalChanges: 25,
//   totalMachinery: 5,
//   changesByMachinery: { ... },
//   changesByField: { ... },
//   changesByOperator: { ... },
//   avgChangesPerMachinery: 5.0
// }
```

### 清除示例数据

```typescript
import { clearChangeHistory } from './lib/changeHistoryMockData';

// 仅用于测试
clearChangeHistory();
```

## 📦 文件结构

```
lib/
  ├── changeHistoryMockData.ts     # 示例数据生成
  └── mockData.ts                  # 集成初始化

components/machinery/
  ├── ChangeHistoryList.tsx        # 简化列表组件
  └── ChangeHistoryExamples.tsx    # 示例展示组件

文档/
  └── CHANGE_HISTORY_EXAMPLES.md   # 本文件
```

## 💡 使用场景

### 1. 查看设备变更轨迹
```
目标: 了解设备信息的修改历史
步骤:
1. 打开农机详情页
2. 切换到"变更历史"标签
3. 查看所有变更记录
4. 了解谁在什么时候修改了什么
```

### 2. 追溯问题根源
```
目标: 查找问题发生的时间点
步骤:
1. 发现设备信息异常
2. 查看变更历史
3. 找到最近的相关修改
4. 联系操作人确认
```

### 3. 审计合规
```
目标: 满足审计要求
步骤:
1. 导出变更历史记录
2. 提供完整的修改轨迹
3. 证明数据可追溯性
4. 符合管理规范
```

## ✅ 最佳实践

### 1. 及时查看
```
✅ 定期检查重要设备的变更记录
✅ 关注异常的频繁修改
✅ 验证关键信息的准确性
```

### 2. 权限管理
```
✅ 限制敏感字段的修改权限
✅ 要求操作人使用真实身份
✅ 定期审查变更记录
```

### 3. 数据分析
```
✅ 统计高频变更字段
✅ 分析变更模式
✅ 优化数据录入流程
```

## 🔍 与原组件的区别

### ChangeHistory.tsx (完整版)
```
✅ 统计卡片 (4个)
✅ 搜索功能
✅ 操作人筛选
✅ 字段筛选
✅ 时间轴视图
✅ 按日期分组视图
✅ 变更统计图表
```

### ChangeHistoryList.tsx (简化版)
```
✅ 只显示变更记录列表
✅ 按时间倒序排列
✅ 简洁的卡片布局
✅ 相对时间显示
✅ 完整时间tooltip
❌ 无统计卡片
❌ 无搜索过滤
❌ 无视图切换
```

## 📊 数据统计

### 按设备统计
```
约翰迪尔拖拉机:    7次变更
久保田收割机:      6次变更
丰疆播种机:        6次变更
大疆植保无人机:    3次变更
雷沃拖拉机:        3次变更
```

### 按字段统计
```
设备状态: 6次 (24%)
当前位置: 6次 (24%)
备注信息: 4次 (16%)
标签管理: 3次 (12%)
操作人员: 2次 (8%)
保险信息: 2次 (8%)
其他: 2次 (8%)
```

### 按操作人统计
```
系统管理员:     3次
张三:           2次
李四:           2次
财务部-刘会计:  2次
维修班相关:     3次
其他人员:       13次
```

## 🎓 学习要点

### 对用户
- 📚 了解变更追踪的重要性
- 💡 学习如何查看变更历史
- 🔧 掌握问题追溯方法
- 📊 理解数据审计流程

### 对开发者
- 🏗️ 学习变更追踪实现
- 🎨 掌握简化组件设计
- 📈 了解数据统计方法
- 🔄 理解自动记录机制

## ✨ 总结

变更历史示例数据功能提供了：

1. **25条真实变更记录**
   - 5台农机设备
   - 9种字段类型
   - 12位操作人员
   - 50天时间跨度

2. **简洁的列表展示**
   - 去除复杂的过滤功能
   - 专注于变更内容展示
   - 清晰的视觉层次
   - 友好的用户体验

3. **完整的示例场景**
   - 设备状态管理
   - 位置信息追踪
   - 人员调整记录
   - 财务信息更新

该功能帮助用户快速了解变更历史的价值和使用方法，建立数据可追溯性意识，提升系统管理规范性。

---

**创建时间**: 2025年10月16日  
**版本**: 1.0.0  
**状态**: ✅ 已完成
