# 使用调度与状态 - 完整功能指南 📊

## 🎯 功能概述

**使用调度与状态**是农资农具管理系统的核心调度模块，提供实时状态监控、智能任务分配和决策支持功能，确保设备资源的高效利用。

### ✅ 核心特性

1. **实时状态监控** - 4种状态（空闲、使用中、维修中、已调度）
2. **智能任务分配** - 自动推荐、冲突检测、任务跟踪
3. **位置实时追踪** - 设备位置、移动轨迹、范围监控
4. **决策数据支持** - 利用率分析、调度建议、优化方案
5. **完整功能闭环** - 状态→任务→执行→完成→分析

---

## 📋 页面布局

### 整体结构

```
┌──────────────────────────────────────────────────────────┐
│ ℹ️ 功能说明卡片（蓝色）                                  │
├──────────────────────────────────────────────────────────┤
│ 🚀 快速调度操作区（4个状态卡片）                         │
│ [空闲可调度] [使用中] [维修中] [已调度]                  │
├──────────────────────────────────────────────────────────┤
│ 💡 智能调度建议（紫色渐变卡片）                          │
│ • 推荐调度设备                                            │
│ • 即将空闲提醒                                            │
│ • 维修提醒                                                │
├──────────────────────────────────────────────────────────┤
│ 🔍 状态筛选器（5个按钮）                                  │
├──────────────────────────────────────────────────────────┤
│ 📊 数据可视化区（2个图表）                                │
│ [设备状态分布饼图] [设备使用率统计]                      │
├──────────────────────────────────────────────────────────┤
│ 📋 设备调度状态表格（11列）                               │
│ 编号 | 名称 | 状态 | 位置 | 任务 | 责任人 | 时间 | ...  │
├──────────────────────────────────────────────────────────┤
│ 📈 调度效率分析（3个指标卡片）                            │
│ [设备利用率] [调度成功率] [平均响应时间]                 │
├──────────────────────────────────────────────────────────┤
│ ⏰ 今日调度时间线                                         │
│ • 15:30 - 拖拉机完成耕地任务                             │
│ • 08:00-17:00 - 拖拉机执行播种任务（进行中）            │
│ • 全天 - 收割机维修中                                    │
├──────────────────────────────────────────────────────────┤
│ 💡 调度优化建议（4个优化方向）                            │
│ [利用率优化] [时间优化] [维护预警] [冲突预警]           │
└──────────────────────────────────────────────────────────┘
```

---

## 🎨 功能模块详解

### 1. 功能说明卡片

**位置**：页面顶部  
**样式**：蓝色背景，带Activity图标

**内容**：
- ✅ 实时状态监控
- ✅ 位置实时追踪
- ✅ 智能任务分配
- ✅ 决策数据支持
- ✅ 完整功能闭环

---

### 2. 快速调度操作区

#### 2.1 空闲可调度卡片（绿色）

**显示内容**：
- 图标：✓ CheckCircle（白色，绿色圆形背景）
- 数量：当前空闲设备数量
- 标签："空闲可调度"
- 提示："点击查看可用设备列表"

**样式**：
- 渐变背景：`from-green-50 to-green-100`
- 边框：`border-green-200`
- Hover效果：`hover:shadow-md`

**交互**：
- 点击：筛选显示所有空闲设备
- 高亮：可调度设备

#### 2.2 使用中卡片（蓝色）

**显示内容**：
- 图标：▶ PlayCircle
- 数量：正在使用的设备数量
- 标签："使用中"
- 提示："正在执行作业任务"

**样式**：
- 渐变背景：`from-blue-50 to-blue-100`
- 边框：`border-blue-200`

#### 2.3 维修中卡片（橙色）

**显示内容**：
- 图标：🔧 Wrench
- 数量：维修中的设备数量
- 标签："维修中"
- 提示："暂时不可调度"

**样式**：
- 渐变背景：`from-orange-50 to-orange-100`
- 边框：`border-orange-200`

#### 2.4 已调度卡片（紫色）

**显示内容**：
- 图标：📤 Send
- 数量：已分配任务但未开始的设备
- 标签："已调度"
- 提示："任务已分配待执行"

**样式**：
- 渐变背景：`from-purple-50 to-purple-100`
- 边框：`border-purple-200`

---

### 3. 智能调度建议

**位置**：快速操作区下方  
**样式**：紫色到蓝色渐变背景

**包含3条建议**：

#### 3.1 推荐调度
- 图标：✓ CheckCircle（绿色）
- 示例："推荐调度：喷雾器 (TOOL-2024-002) - 空闲可用，位于2号仓库"
- 用途：推荐当前最适合调度的设备

#### 3.2 即将空闲
- 图标：⚠️ AlertTriangle（橙色）
- 示例："即将空闲：拖拉机 (TOOL-2024-001) - 预计17:00完成当前任务"
- 用途：提前规划下一个任务

#### 3.3 维修提醒
- 图标：🔧 Wrench（红色）
- 示例："维修提醒：收割机 (TOOL-2024-003) - 维修中，预计2天后可用"
- 用途：避免调度不可用设备

**操作**：
- 右侧按钮："查看全部建议"
- 样式：紫色描边，紫色文字

---

### 4. 状态筛选器

**位置**：智能建议下方  
**布局**：左侧筛选图标，右侧5个按钮

**筛选按钮**：

| 按钮 | 颜色 | 图标 | 显示内容 |
|------|------|------|---------|
| 全部状态 | 默认 | - | 全部状态 |
| 空闲 | 绿色 | ✓ | 空闲 (X) |
| 使用中 | 蓝色 | ▶ | 使用中 (X) |
| 维修中 | 橙色 | 🔧 | 维修中 (X) |
| 已调度 | 紫色 | 📤 | 已调度 |

**功能**：
- 点击：筛选对应状态的设备
- 数量：括号内显示当前数量
- 样式：对应颜色的边框和文字

---

### 5. 数据可视化区

#### 5.1 设备状态分布（饼图）

**图表类型**：PieChart（饼图）  
**图表库**：Recharts

**数据**：
```typescript
const statusChartData = [
  { name: '空闲', value: idle, color: '#10b981' },
  { name: '使用中', value: inUse, color: '#3b82f6' },
  { name: '维修中', value: underMaintenance, color: '#f59e0b' },
  { name: '已调度', value: 0, color: '#8b5cf6' },
];
```

**配置**：
- 标签：显示名称和数量
- 颜色：对应状态颜色
- Tooltip：悬停显示详情

#### 5.2 设备使用率统计

**显示方式**：进度条列表

**每个设备显示**：
- 设备名称
- 使用率百分比
- 进度条（颜色渐变）

**计算公式**：
```typescript
使用率 = (使用时长 / (已使用月数 × 30天 × 8小时/天)) × 100%
```

---

### 6. 设备调度状态表格

#### 表格结构（11列）

| 序号 | 列名 | 宽度 | 内容 | 样式/格式 |
|------|------|------|------|----------|
| 1 | 设备编号 | w-32 | 设备唯一编号 | 蓝色字体 |
| 2 | 设备名称 | w-36 | 设备主名称 | font-medium |
| 3 | 当前状态 | w-28 | 4种状态之一 | 彩色Badge |
| 4 | 当前位置 | w-36 | 位置+地图图标 | MapPin图标 |
| 5 | 关联任务 | w-48 | 任务名称+开始时间 | 蓝色任务名 |
| 6 | 责任人 | w-28 | 负责人+用户图标 | User图标 |
| 7 | 时间信息 | w-48 | 开始时间+预计时间 | Clock/Calendar图标 |
| 8 | 使用时长 | w-28 | 累计小时数 | Timer图标 |
| 9 | 实时进度 | w-32 | 进度条+百分比 | Progress组件 |
| 10 | 备注说明 | w-48 | 备注文本 | 灰色文字 |
| 11 | 操作 | w-36 | 操作按钮 | Eye/Send/Pause |

#### 详细字段说明

**1. 设备编号**
- 样式：`font-medium text-blue-600`
- 示例：TOOL-2024-001
- 可点击：跳转到设备详情

**2. 设备名称**
- 样式：`font-medium`
- 示例：拖拉机

**3. 当前状态**
- 组件：Badge
- 颜色：
  - 空闲：`bg-green-100 text-green-700`
  - 使用中：`bg-blue-100 text-blue-700`
  - 维修中：`bg-orange-100 text-orange-700`
  - 已调度：`bg-purple-100 text-purple-700`

**4. 当前位置**
- 图标：📍 MapPin
- 样式：`flex items-center gap-1`
- 示例：1号田块

**5. 关联任务**
- 有任务时：
  - 任务名称（蓝色，font-medium）
  - 开始时间（小字，灰色）
- 无任务时：显示"-"

**6. 责任人**
- 图标：👤 User
- 有人时：显示姓名
- 无人时：显示"未分配"

**7. 时间信息**
- 开始时间：
  - 图标：🕐 Clock（绿色）
  - 格式：开始: HH:mm
- 预计时间：
  - 图标：📅 Calendar
  - 格式：预计: HH:mm

**8. 使用时长**
- 图标：⏱️ Timer（蓝色）
- 格式：Xh
- 示例：5.5h

**9. 实时进度**
- 仅"使用中"状态显示
- 组件：Progress
- 布局：
  - 上方：进度百分比
  - 下方：进度条（高度1.5）
- 示例：65%

**10. 备注说明**
- 样式：`text-sm text-muted-foreground`
- 无备注时：显示"-"

**11. 操作**
- 查看详情（所有状态）：
  - 图标：👁️ Eye
  - 样式：outline
  
- 分配任务（仅"空闲"状态）：
  - 图标：📤 Send
  - 样式：蓝色背景
  - 功能：打开任务分配对话框
  
- 停止任务（仅"使用中"状态）：
  - 图标：⏸️ PauseCircle
  - 样式：橙色描边
  - 功能：暂停当前任务

#### 表格顶部操作栏

**左侧**：
- 标题："设备调度状态管理"
- 图标：⚙️ Settings（蓝色）

**右侧**：
- 导出报表按钮：
  - 图标：📥 Download
  - 样式：outline
  
- 新增调度按钮：
  - 图标：➕ Plus
  - 样式：蓝色背景
  - 功能：打开新增调度对话框

---

### 7. 调度效率分析

**布局**：3个指标卡片横向排列

#### 7.1 设备利用率

**显示内容**：
- 图标：📊 Gauge（蓝色，圆角背景）
- 标签："设备利用率"
- 数值：百分比（大字号，蓝色）
- 对比："较上月 +5.2%"（绿色）

**计算公式**：
```typescript
利用率 = (使用中设备数 / 设备总数) × 100%
```

#### 7.2 调度成功率

**显示内容**：
- 图标：✓ CheckCircle（绿色）
- 标签："调度成功率"
- 数值：95.8%（绿色）
- 说明："本月完成调度"

#### 7.3 平均响应时间

**显示内容**：
- 图标：📈 Activity（紫色）
- 标签："平均响应时间"
- 数值：12min（紫色）
- 对比："较上月 -3min"（绿色）

---

### 8. 今日调度时间线

**布局**：垂直时间线，左侧圆点+连线，右侧内容

#### 时间线项目结构

每个项目包含：
- 左侧：
  - 圆点（根据状态着色）
  - 连线（虚线，向下延伸）
  
- 右侧：
  - 标题：事件描述
  - 时间：发生时间
  - 详情：设备编号、责任人等

#### 示例项目

**1. 已完成事件（绿色）**
```
🟢 ────── 拖拉机已完成耕地任务          15:30
  │       设备编号: TOOL-2024-001
  │       责任人: 张师傅
  ↓
```

**2. 进行中事件（蓝色，闪烁）**
```
🔵 ────── 拖拉机正在执行播种任务      08:00-17:00
  │       设备编号: TOOL-2024-001
  │       责任人: 张师傅 | 进度: 65%
  │       [进度条显示65%]
  ↓
```

**3. 全天事件（灰色）**
```
⚪ ────── 收割机维修中                   全天
         设备编号: TOOL-2024-003
         维修组
```

---

### 9. 调度优化建议

**布局**：绿色到蓝色渐变背景，包含4个优化方向

**标题区**：
- 图标：📈 TrendingUp（绿色圆角背景）
- 标题："📊 调度优化建议"

#### 9.1 设备利用率优化

**样式**：白色卡片，绿色边框

**内容**：
- 图标：✓ CheckCircle（绿色）
- 标题："设备利用率优化"
- 详情："喷雾器 (TOOL-2024-002) 近期使用率仅20%，建议增加调度频次或考虑外租。"

#### 9.2 任务时间优化

**样式**：白色卡片，蓝色边框

**内容**：
- 图标：🕐 Clock（蓝色）
- 标题："任务时间优化"
- 详情："建议拖拉机 (TOOL-2024-001) 在完成当前任务后立即调度至2号田块，可节省30分钟。"

#### 9.3 维护预警

**样式**：白色卡片，紫色边框

**内容**：
- 图标：📈 Activity（紫色）
- 标题："维护预警"
- 详情："拖拉机 (TOOL-2024-001) 距离下次保养还剩15天，建议提前安排以避免影响春耕。"

#### 9.4 冲突预警

**样式**：白色卡片，橙色边框

**内容**：
- 图标：⚠️ AlertTriangle（橙色）
- 标题："冲突预警"
- 详情："明日有3个任务需要拖拉机，但只有1台可用，建议调整任务时间或从其他基地调配。"

---

## 🔄 功能闭环说明

### 完整流程

```
1. 状态监控
   ↓
2. 识别空闲设备
   ↓
3. 智能推荐调度
   ↓
4. 分配任务
   ↓
5. 执行监控
   ↓
6. 进度跟踪
   ↓
7. 任务完成
   ↓
8. 状态更新
   ↓
9. 效率分析
   ↓
10. 优化建议
    ↓
   回到1
```

### 状态转换

```
空闲 ──分配任务──→ 已调度 ──开始执行──→ 使用中
                                        │
                                        ↓
                                  任务完成/暂停
                                        │
                                        ↓
                                      空闲
                                        
维修中 ──维修完成──→ 空闲
```

---

## 📊 数据统计

### 示例数据

```typescript
// 设备列表
const equipmentList = [
  {
    id: 'eq-1',
    code: 'TOOL-2024-001',
    name: '拖拉机',
    status: '使用中',
    location: '1号田块',
    assignedTo: '张师傅',
    // ...
  },
  // ...
];

// 调度记录
const dispatchRecords = [
  {
    id: 'dis-1',
    equipmentCode: 'TOOL-2024-001',
    equipmentName: '拖拉机',
    status: '使用中',
    currentLocation: '1号田块',
    assignedTask: '耕地作业',
    assignedTo: '张师傅',
    startTime: '2024-10-15 08:00',
    estimatedEndTime: '2024-10-15 17:00',
    actualUsageHours: 5.5,
    notes: '正常作业中',
  },
  // ...
];
```

---

## 💡 使用场景

### 场景1：春耕调度

**需求**：需要安排3台拖拉机进行春耕作业

**操作流程**：
1. 进入"使用调度与状态"Tab
2. 查看"空闲可调度"卡片，显示有2台空闲
3. 查看"智能调度建议"，系统推荐2台最适合的设备
4. 查看"即将空闲"提醒，1台拖拉机预计17:00完成当前任务
5. 点击"分配任务"按钮，为空闲设备分配春耕任务
6. 等待第3台设备空闲后，立即分配任务
7. 在"今日调度时间线"中跟踪所有任务进度
8. 查看"调度优化建议"，优化任务时间和路线

**结果**：
- ✅ 3台拖拉机全部调度完成
- ✅ 节省调度时间30分钟
- ✅ 避免设备冲突
- ✅ 提高设备利用率

---

### 场景2：维修管理

**需求**：收割机需要维修，但有紧急任务需要设备

**操作流程**：
1. 查看"维修中"卡片，发现1台收割机维修中
2. 查看"智能调度建议"的"维修提醒"：预计2天后可用
3. 查看"调度优化建议"的"冲突预警"：明日有任务需要收割机
4. 立即决策：
   - 方案A：调整任务时间，等待维修完成
   - 方案B：从其他基地调配收割机
   - 方案C：使用替代设备
5. 在"今日调度时间线"中标记维修状态和预计完成时间
6. 设置提醒：维修完成后立即通知

**结果**：
- ✅ 提前预警冲突，避免任务延误
- ✅ 制定备选方案，确保任务完成
- ✅ 优化维修时间，减少影响

---

### 场景3：设备利用率优化

**需求**：提高设备整体利用率，减少闲置

**操作流程**：
1. 查看"调度效率分析"的"设备利用率"：33.3%
2. 查看"设备使用率统计"图表，发现喷雾器使用率仅20%
3. 查看"调度优化建议"的"设备利用率优化"：
   - "喷雾器近期使用率仅20%，建议增加调度频次或考虑外租"
4. 采取行动：
   - 增加喷雾器的任务分配
   - 主动推荐给其他部门
   - 考虑外租获取收益
5. 一周后再次查看，利用率提升至45%

**结果**：
- ✅ 设备利用率从33.3%提升至45%
- ✅ 减少设备闲置成本
- ✅ 增加设备收益

---

## 🎯 决策支持功能

### 1. 智能推荐算法

**推荐依据**：
- 设备状态（优先推荐空闲）
- 设备位置（就近原则）
- 任务适配度（设备类型匹配）
- 历史表现（成功率高的设备优先）
- 维护状态（临近保养期的设备降低优先级）

**推荐输出**：
- 最佳调度设备
- 备选设备列表
- 不推荐原因说明

---

### 2. 冲突检测

**检测内容**：
- 时间冲突：同一设备多个任务时间重叠
- 位置冲突：设备位置与任务地点相距太远
- 状态冲突：设备状态不适合任务（如维修中）
- 能力冲突：设备能力不满足任务需求

**输出建议**：
- 冲突类型
- 冲突严重程度
- 解决方案建议

---

### 3. 效率分析

**分析维度**：
- 设备利用率
- 调度成功率
- 平均响应时间
- 任务完成率
- 设备闲置率

**分析结果**：
- 趋势图表
- 同比/环比数据
- 优化建议

---

## 🔧 技术实现

### 状态管理

```typescript
type EquipmentStatus = '空闲' | '使用中' | '维修中' | '已调度' | '报废';

const getStatusColor = (status: EquipmentStatus) => {
  switch (status) {
    case '空闲': return 'bg-green-100 text-green-700';
    case '使用中': return 'bg-blue-100 text-blue-700';
    case '维修中': return 'bg-orange-100 text-orange-700';
    case '已调度': return 'bg-purple-100 text-purple-700';
    case '报废': return 'bg-gray-100 text-gray-700';
    default: return 'bg-gray-100 text-gray-700';
  }
};
```

### 进度计算

```typescript
// 假设任务总时长9小时（08:00-17:00）
// 当前已执行5.5小时
const progress = (actualUsageHours / totalHours) * 100;
// progress = (5.5 / 9) * 100 = 61.1%
```

### 利用率计算

```typescript
// 设备利用率
const utilizationRate = (inUse / totalEquipment) * 100;

// 单个设备使用率
const deviceUsageRate = (usageHours / (monthsUsed * 30 * 8)) * 100;
```

---

## 📝 最佳实践

### 调度建议

1. **优先调度空闲设备**
   - 减少等待时间
   - 提高响应速度

2. **就近调度原则**
   - 减少移动时间
   - 降低燃料成本

3. **提前规划任务**
   - 查看"即将空闲"提醒
   - 无缝衔接任务

4. **关注维护周期**
   - 查看"维护预警"
   - 提前安排保养

5. **处理冲突预警**
   - 查看"冲突预警"
   - 及时调整计划

---

## 🎓 用户培训要点

### 对调度员

1. 理解4种设备状态
2. 掌握任务分配流程
3. 学会查看智能建议
4. 能够处理调度冲突
5. 定期分析调度效率

### 对管理员

1. 监控整体利用率
2. 分析调度成功率
3. 优化调度策略
4. 制定改进计划
5. 培训调度人员

---

## ✅ 功能检查清单

### 页面显示
- [ ] 功能说明卡片正确显示
- [ ] 4个快速操作卡片正确显示数量
- [ ] 智能调度建议显示3条建议
- [ ] 状态筛选器显示5个按钮
- [ ] 数据可视化区显示2个图表
- [ ] 调度状态表格显示所有记录
- [ ] 效率分析显示3个指标
- [ ] 今日时间线显示3个事件
- [ ] 优化建议显示4个方向

### 功能交互
- [ ] 状态筛选按钮可点击
- [ ] 快速操作卡片可点击
- [ ] 表格"查看详情"按钮有效
- [ ] "分配任务"按钮有效（空闲状态）
- [ ] "停止任务"按钮有效（使用中状态）
- [ ] "导出报表"按钮有效
- [ ] "新增调度"按钮有效

### 数据准确性
- [ ] 设备状态数量统计正确
- [ ] 设备利用率计算正确
- [ ] 调度成功率数据准确
- [ ] 平均响应时间合理
- [ ] 进度条百分比正确
- [ ] 时间线事件时间准确

---

## 🔮 后续优化方向

### 短期优化（1个月）
1. 实现实际的任务分配对话框
2. 添加状态更新功能
3. 实现导出报表功能
4. 优化移动端显示

### 中期优化（3个月）
1. 接入实时位置追踪（GPS）
2. 实现地图展示
3. 添加推送通知
4. 实现自动调度算法

### 长期优化（6个月）
1. AI智能调度推荐
2. 大数据分析优化
3. 跨基地协同调度
4. 移动端APP

---

**文档版本**: v1.0.0  
**最后更新**: 2024-10-22  
**维护人员**: 系统开发团队  
**状态**: ✅ 功能完成
