# 农机变更历史示例数据 - 快速指南 ## 📋 概述 为农机全生命周期档案提供了**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 ; } ``` ### 方法3:在农机详情中查看 ```typescript import { ChangeHistoryList } from './components/machinery/ChangeHistoryList'; const history = machineryStorage.getChangeHistory(machineryId); ``` ## 📝 示例数据详情 ### 示例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 **状态**: ✅ 已完成