// 农机负载设备数据类型定义 // 设备库中的设备实例 export interface DeviceInstance { id: string; deviceTypeId: string; // 设备类型ID // 设备信息 deviceName: string; serialNumber: string; // 设备序列号 purchaseDate?: string; // 采购日期 warrantyExpiry?: string; // 保修期限 // 设备参数配置(根据设备类型的参数模板配置) parameters: Record; // 设备状态 status: 'available' | 'mounted' | 'maintenance' | 'damaged' | 'retired'; currentMachineryId?: string; // 当前挂载的农机ID(如果已挂载) // 备注 remarks?: string; // 操作记录 createdBy: string; createdAt: string; updatedAt: string; } // 挂载记录(设备与农机的关联关系) export interface MountRecord { id: string; machineryId: string; // 所属农机ID deviceId: string; // 设备实例ID // 挂载信息 mountedAt: string; // 挂载时间 unmountedAt?: string; // 拆卸时间 status: 'mounted' | 'unmounted'; // 备注 mountRemarks?: string; // 挂载备注 unmountRemarks?: string; // 拆卸备注 // 操作记录 mountedBy: string; unmountedBy?: string; createdAt: string; updatedAt: string; } // 兼容旧的 MountedDevice 类型(逐步迁移) export interface MountedDevice { id: string; machineryId: string; deviceTypeId: string; deviceName: string; serialNumber: string; mountedAt: string; unmountedAt?: string; status: 'mounted' | 'unmounted'; parameters: Record; remarks?: string; operator: string; createdAt: string; updatedAt: string; } export interface DeviceType { id: string; name: string; category: DeviceCategory; // 元数据 manufacturer?: string; // 品牌 model?: string; // 型号 communicationProtocol?: string; // 通信协议:MQTT, HTTP, RS485等 dataFormat?: string; // 数据格式:JSON, XML, Binary等 // 参数定义 parameterDefinitions: ParameterDefinition[]; // 其他 description?: string; icon?: string; createdAt: string; updatedAt: string; } export type DeviceCategory = | '摄像头' | '北斗终端' | 'GPS终端' | '转速传感器' | '油耗传感器' | '温度传感器' | '湿度传感器' | '深度传感器' | '流量传感器' | '其他'; export interface ParameterDefinition { key: string; label: string; type: 'string' | 'number' | 'boolean' | 'select'; required?: boolean; defaultValue?: any; options?: { label: string; value: any }[]; unit?: string; min?: number; max?: number; description?: string; } // 设备监控数据 export interface DeviceMonitoringData { deviceId: string; machineryId: string; timestamp: string; data: Record; } // 实时位置数据 export interface LocationData { machineryId: string; latitude: number; longitude: number; altitude?: number; speed?: number; // km/h heading?: number; // 方位角,0-360度 accuracy?: number; // 定位精度,米 timestamp: string; } // 工作状态 export interface MachineryWorkState { machineryId: string; state: WorkState; // 工况数据 ignition: boolean; // 点火状态 speed: number; // 行驶速度 km/h ptoStatus: boolean; // PTO(动力输出)状态 engineRpm?: number; // 发动机转速 fuelLevel?: number; // 油量百分比 // 作业数据 workingArea?: number; // 作业面积(亩) workingRate?: number; // 作业速率(亩/小时) timestamp: string; } export type WorkState = '熄火' | '行驶中' | '作业中' | '故障' | '待机'; // 作业轨迹 export interface WorkTrack { id: string; machineryId: string; taskId?: string; startTime: string; endTime?: string; points: LocationData[]; totalDistance?: number; // 总距离,公里 totalArea?: number; // 总作业面积,亩 averageSpeed?: number; // 平均速度 km/h } // 故障诊断 export interface FaultDiagnosis { id: string; machineryId: string; machineryName?: string; // 故障信息 faultCode: string; faultName: string; faultLevel: 'info' | 'warning' | 'error' | 'critical'; description: string; // 诊断结果 diagnosis?: string; predictedCause?: string; solution?: string; knowledgeBaseIds?: string[]; // 关联的知识库 // 时间 detectedAt: string; resolvedAt?: string; // 状态 status: '待处理' | '已处理' | '已忽略'; // 处理信息 handler?: string; handleNotes?: string; } // 健康评估 export interface HealthAssessment { machineryId: string; machineryName?: string; // 评估结果 score: number; // 0-100 level: '优秀' | '良好' | '注意' | '警告'; // 评估指标 metrics: { runningHours: number; // 运行小时数 faultCount: number; // 故障次数 maintenanceScore: number; // 维保得分 workloadScore: number; // 作业负荷得分 }; // 趋势分析 trend: 'improving' | 'stable' | 'declining'; // 建议 recommendations: string[]; assessedAt: string; assessedBy: string; } // 地理坐标点 export interface GeoPoint { latitude: number; longitude: number; } // 电子围栏 export interface GeoFence { id: string; name: string; type: 'circle' | 'polygon'; // 圆形围栏 center?: GeoPoint; radius?: number; // 米 // 多边形围栏 points?: GeoPoint[]; // 关联农机 machineryIds: string[]; // 规则 alertOnExit: boolean; // 离开围栏时报警 alertOnEnter: boolean; // 进入围栏时报警 // 工时核算 countWorkHours: boolean; // 是否计算围栏内工时 // 状态 enabled: boolean; createdAt: string; updatedAt: string; createdBy: string; updatedBy?: string; } // 围栏报警记录 export interface GeoFenceAlert { id: string; fenceId: string; fenceName: string; machineryId: string; machineryName?: string; alertType: 'enter' | 'exit'; location: GeoPoint; alertedAt: string; // 处理状态 acknowledged: boolean; acknowledgedBy?: string; acknowledgedAt?: string; }