# 物资领用 - 领用记录与溯源完整功能指南

## 🎯 功能概述

领用记录与溯源功能是物资领用系统的**核心环节**，实现每笔领用记录形成完整电子台账，完整记录领用人、审批人、出库时间、物资批次、用途（地块/任务），构成农产品质量安全溯源的核心链条，确保投入品可追溯。

## ✨ 核心价值

### 1. 农产品质量安全溯源 🌾

**溯源链条**
```
供应商采购
  ↓
批次入库
  ↓
领用申请（记录用途、地块）
  ↓
审批通过
  ↓
出库核减（记录批次）
  ↓
投入使用（关联地块/任务）
  ↓
农产品生产
  ↓
质量追溯
```

**溯源价值**
- 📋 **投入品可追溯**：每笔投入品使用都有完整记录
- 🔍 **批次可查询**：通过批次号追溯到供应商和生产日期
- 📍 **地块可定位**：明确投入品使用的具体地块
- 👤 **责任可追究**：完整记录领用人、审批人、出库人
- ✅ **质量可保障**：质检证书、有效期等信息完整

### 2. 电子台账管理 📊

**台账内容**
```typescript
电子台账 {
  申请信息: {
    申请单号: "LY202410220001",
    申请人: "张三",
    部门: "种植一队",
    申请时间: "2024-10-22 09:30"
  },
  
  物资信息: {
    物资名称: "复合肥",
    物资类型: "肥料",
    批次号: "BATCH20241022001",
    数量: 50,
    单位: "袋"
  },
  
  审批信息: {
    审批人: "李队长",
    审批时间: "2024-10-22 10:15",
    审批意见: "同意领用"
  },
  
  出库信息: {
    出库人: "仓库管理员-王五",
    出库时间: "2024-10-22 14:30",
    出库方式: "扫码",
    库位: "A区-3号货架"
  },
  
  用途信息: {
    用途: "1号田块水稻施肥作业",
    关联地块: "1号田块",
    关联任务: "任务-2024001",
    作物类型: "水稻",
    作业类型: "施肥"
  },
  
  供应商信息: {
    供应商: "XX农资公司",
    生产日期: "2024-09-15",
    有效期至: "2025-09-14",
    质检证书: "QC20240915001"
  }
}
```

**台账作用**
- ✅ 完整记录：每笔领用全程可查
- ✅ 永久保存：电子化长期存储
- ✅ 快速查询：多维度检索
- ✅ 数据分析：支持统计分析
- ✅ 审计依据：合规检查依据

## 🔍 功能详解

### 1. 高级搜索与筛选

#### 搜索功能

**搜索范围**
```
可搜索字段：
- 申请单号
- 物资名称
- 批次号
- 领用人姓名
```

**搜索特点**
- ⚡ 实时搜索：输入即搜索
- 🔤 模糊匹配：支持部分匹配
- 📊 显示结果数：实时显示匹配数量

**使用示例**
```
搜索"复合肥"
  → 显示所有包含"复合肥"的记录

搜索"LY2024"
  → 显示所有2024年的领用记录

搜索"张三"
  → 显示张三的所有领用记录

搜索"BATCH2024"
  → 显示批次号包含BATCH2024的记录
```

#### 筛选功能

**筛选维度**

1. **物资类型筛选**
   ```
   选项：
   - 全部类型
   - 肥料
   - 农药
   - 农具
   - 种子
   ```

2. **部门筛选**
   ```
   选项：
   - 全部部门
   - 种植一队
   - 种植二队
   - 种植三队
   - 养殖队
   ```

3. **地块筛选**
   ```
   选项：
   - 全部地块
   - 1号田块
   - 2号田块
   - 3号大棚
   - 4号果园
   ```

4. **日期范围筛选**
   ```
   类型：出库日期范围
   格式：YYYY-MM-DD
   示例：2024-10-01 至 2024-10-31
   ```

**组合筛选**
```
示例：查询2024年10月种植一队在1号田块使用的肥料

筛选条件：
- 物资类型：肥料
- 部门：种植一队
- 地块：1号田块
- 日期范围：2024-10-01 至 2024-10-31

结果：精确匹配的所有记录
```

**重置筛选**
- 一键重置所有筛选条件
- 恢复显示全部记录

### 2. 溯源记录列表

#### 列表展示

**表格列**
```
1. 申请单号：领用申请的唯一标识
2. 物资信息：物资名称和类型
3. 批次号：用于追溯的关键信息（强调显示）
4. 数量：领用数量和单位
5. 领用人：实际领用人员
6. 审批人：审批通过的人员
7. 出库人：仓库出库操作人员
8. 用途：用途说明和关联地块（重要）
9. 时间链：申请→审批→出库的完整时间链
10. 供应商：供应商和生产信息
11. 质检证书：质检证书编号
12. 操作：查看详情按钮
```

**关键信息突出**
- 批次号：字体等宽，边框突出
- 关联地块：地图图标+绿色标注
- 时间链：分层显示，图标区分
- 质检证书：徽章样式展示

#### 记录详情

**基本信息**
```
申请单号：LY202410220001
申请人：张三
部门：种植一队
申请时间：2024-10-22 09:30
```

**物资信息**
```
物资名称：复合肥
物资类型：肥料
批次号：BATCH20241022001
数量：50袋
质检证书：QC20240915001
```

**人员信息**
```
领用人：张三
审批人：李队长
出库人：仓库管理员-王五
```

**用途信息**
```
用途说明：1号田块水稻施肥作业
关联地块：1号田块
关联任务：任务-2024001
```

**供应商信息**
```
供应商：XX农资公司
生产日期：2024-09-15
有效期至：2025-09-14
质检证书：QC20240915001
```

### 3. 溯源详情对话框

#### 溯源链条可视化

**流程展示**
```
┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│ 采购入库 │ -> │ 领用申请 │ -> │ 审批通过 │ -> │ 出库完成 │ -> │ 投入使用 │
│ 供应商   │    │ 申请人   │    │ 审批人   │    │ 出库人   │    │ 使用地块 │
│ 生产日期 │    │ 申请时间 │    │ 审批时间 │    │ 出库时间 │    │ 用途     │
└──────────┘    └──────────┘    └──────────┘    └──────────┘    └──────────┘
```

**可视化特点**
- 🔵 阶段图标：每个环节有独特图标和颜色
- ➡️ 流程箭头：清晰展示流转顺序
- 📅 时间标注：每个环节的具体时间
- 👤 责任人：每个环节的负责人

**环节说明**
1. **采购入库**（蓝色）
   - 供应商名称
   - 生产日期
   - 质检信息

2. **领用申请**（紫色）
   - 申请人
   - 申请时间
   - 用途说明

3. **审批通过**（橙色）
   - 审批人
   - 审批时间
   - 审批意见

4. **出库完成**（绿色）
   - 出库人
   - 出库时间
   - 批次号

5. **投入使用**（青色）
   - 使用地块
   - 使用任务
   - 作物类型

#### 详细信息卡片

**1. 物资信息卡片**
```
┌─────────────────────┐
│ 📦 物资信息        │
├─────────────────────┤
│ 物资名称：复合肥    │
│ 物资类型：肥料      │
│ 批次号：BATCH...    │
│ 数量：50袋          │
│ 质检证书：QC...     │
└─────────────────────┘
```

**2. 人员信息卡片**
```
┌─────────────────────┐
│ 👤 人员信息        │
├─────────────────────┤
│ 领用人：张三        │
│ 部门：种植一队      │
│ 审批人：李队长      │
│ 出库人：王五        │
└─────────────────────┘
```

**3. 用途与关联信息卡片**
```
┌──────────────────────────┐
│ 🏷️ 用途与关联信息       │
├──────────────────────────┤
│ 申请单号：LY202410220001 │
│ 用途：水稻施肥作业       │
│ 关联地块：1号田块        │
│ 关联任务：任务-2024001   │
└──────────────────────────┘
```

**4. 完整时间线卡片**
```
┌─────────────────────────┐
│ 📅 完整时间线          │
├─────────────────────────┤
│ 🔵 申请：2024-10-22 09:30│
│ 🟠 审批：2024-10-22 10:15│
│ 🟢 出库：2024-10-22 14:30│
└─────────────────────────┘
```

**5. 供应商和质量信息卡片**
```
┌────────────────────────────┐
│ 🛒 供应商和质量信息       │
├────────────────────────────┤
│ 供应商：XX农资公司         │
│ 生产日期：2024-09-15       │
│ 有效期至：2025-09-14       │
│ 质检证书：QC20240915001    │
└────────────────────────────┘
```

#### 溯源说明

**重要提示**
```
📌 溯源说明：

• 批次追溯：通过批次号可追溯至供应商、生产日期和质检信息
• 使用追踪：记录了物资的具体用途、使用地块和关联任务
• 责任追溯：完整记录领用人、审批人、出库人，责任明确
• 质量安全：本记录是农产品质量安全溯源的核心链条
• 投入品管理：确保所有农业投入品来源可查、去向可追、责任可究
```

### 4. 导出功能

#### 导出内容

**导出字段**
```typescript
导出数据 {
  申请单号,
  物资名称,
  物资类型,
  批次号,
  数量,
  领用人,
  部门,
  审批人,
  出库人,
  用途,
  关联地块,
  关联任务,
  申请时间,
  审批时间,
  出库时间,
  供应商,
  生产日期,
  有效期至,
  质检证书
}
```

**导出格式**
- Excel（.xlsx）
- CSV（.csv）
- PDF（.pdf）

**导出功能**
- 一键导出当前筛选结果
- 支持批量导出
- 自动生成文件名（含日期）
- 显示导出记录数

**使用场景**
- 📊 统计分析：导出数据进行深度分析
- 📋 监管报告：提交给监管部门
- 🔍 审计检查：内部或外部审计
- 💾 数据备份：定期备份台账数据

### 5. 统计分析

#### 领用状态分布（饼图）

**统计维度**
```
- 已完成：已出库并使用
- 已出库：已出库待使用
- 已通过：已审批待出库
- 待审批：等待审批
- 已驳回：审批未通过
```

**图表特点**
- 🎨 颜色区分：每种状态独特颜色
- 📊 百分比显示：直观展示占比
- 🔢 数量标注：每种状态的数量
- 📈 交互提示：鼠标悬停显示详情

#### 领用趋势分析（折线图）

**统计维度**
```
时间范围：最近12个月
统计指标：每月领用次数
```

**图表特点**
- 📈 趋势展示：清晰显示增减趋势
- 📅 月度统计：按月份统计
- 🔢 数量标注：每月具体数量
- 📊 对比分析：月度对比

**分析价值**
- 📊 需求预测：根据历史趋势预测未来需求
- 📉 异常发现：发现异常增减
- 📈 季节特征：识别季节性规律
- 💡 决策支持：辅助采购和库存决策

## 🔄 完整溯源流程

### 标准溯源流程

```
┌─────────────────┐
│ 查询溯源记录    │
│ - 搜索关键词    │
│ - 筛选条件      │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 浏览记录列表    │
│ - 查看基本信息  │
│ - 选择记录      │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 点击"查看详情" │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 溯源详情对话框  │
│ - 溯源链条      │
│ - 详细信息      │
│ - 时间线        │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 查看溯源链条    │
│ 采购→申请→审批  │
│ →出库→使用      │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 核对信息        │
│ - 批次号        │
│ - 供应商        │
│ - 使用地块      │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 生成溯源二维码  │
│ （可选）        │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 溯源完成        │
└─────────────────┘
```

### 实际应用场景

#### 场景1：农产品质量追溯

**背景**
```
消费者购买了某批次大米，想了解种植过程中使用的肥料情况
```

**操作流程**
```
1. 扫描大米包装上的溯源二维码
2. 查看该批次大米的种植地块
3. 在系统中筛选该地块的物资使用记录
4. 查看详细的肥料使用信息：
   - 使用时间：2024年5月15日
   - 肥料类型：有机复合肥
   - 批次号：BATCH20240510001
   - 供应商：XX有机肥料公司
   - 质检证书：QC20240510001
   - 领用人：张三
   - 使用数量：50袋
```

**溯源结果**
```
✅ 肥料来源清晰：XX有机肥料公司
✅ 质量有保障：通过质检，证书编号QC20240510001
✅ 使用规范：经过审批，专人负责
✅ 时间明确：2024年5月15日施肥
✅ 责任明确：领用人张三，审批人李队长
```

#### 场景2：农药残留调查

**背景**
```
某批次蔬菜检出农药残留，需要追溯农药使用情况
```

**操作流程**
```
1. 确定蔬菜种植地块：3号大棚
2. 筛选条件：
   - 地块：3号大棚
   - 物资类型：农药
   - 时间范围：种植期间
3. 查看所有农药使用记录
4. 逐一核对每次使用：
   - 农药名称
   - 使用时间
   - 使用数量
   - 批次号
   - 供应商
   - 安全间隔期
```

**溯源结果**
```
发现问题：
✅ 找到使用记录：2024年6月10日使用除草剂
✅ 批次号：PEST20240605001
✅ 供应商：XX农药公司
✅ 安全间隔期：7天
❌ 问题：距离采收仅5天，未满足安全间隔期

责任追究：
- 领用人：王五
- 审批人：赵主管
- 处理建议：加强安全间隔期管理
```

#### 场景3：成本核算分析

**背景**
```
财务部门需要统计某地块的物资投入成本
```

**操作流程**
```
1. 筛选条件：
   - 地块：1号田块
   - 时间范围：2024-01-01 至 2024-12-31
2. 导出所有记录
3. Excel中分类汇总：
   - 肥料成本
   - 农药成本
   - 农具成本
   - 种子成本
4. 生成成本报表
```

**分析结果**
```
1号田块2024年度物资投入成本：

肥料：
- 复合肥：150袋 × 150元 = 22,500元
- 尿素：100袋 × 100元 = 10,000元
小计：32,500元

农药：
- 除草剂：30瓶 × 50元 = 1,500元
- 杀虫剂：20瓶 × 80元 = 1,600元
小计：3,100元

农具：
- 地膜：50卷 × 20元 = 1,000元
小计：1,000元

总计：36,600元
```

## 📊 使用示例

### 示例1：基本查询

**需求**：查询张三的所有领用记录

**操作步骤**
```
1. 打开"领用记录与溯源"页面
2. 在搜索框输入"张三"
3. 系统实时显示所有包含"张三"的记录
4. 查看记录数：共5条
```

**查询结果**
```
找到 5 条记录：

1. LY202410150001 - 复合肥 50袋 - 1号田块
2. LY202410100002 - 除草剂 10瓶 - 1号田块
3. LY202409200003 - 滴灌管 100米 - 2号大棚
4. LY202409150004 - 种子 20袋 - 1号田块
5. LY202409010005 - 地膜 30卷 - 2号大棚
```

### 示例2：组合筛选

**需求**：查询种植一队在1号田块2024年10月使用的肥料

**操作步骤**
```
1. 设置筛选条件：
   物资类型：肥料
   部门：种植一队
   地块：1号田块
   日期范围：2024-10-01 至 2024-10-31

2. 点击搜索或自动筛选

3. 查看结果
```

**筛选结果**
```
找到 3 条记录：

1. LY202410150001
   物资：复合肥 50袋
   领用人：张三
   用途：水稻施肥作业
   出库时间：2024-10-15 14:30

2. LY202410180002
   物资：尿素 30袋
   领用人：李四
   用途：水稻追肥
   出库时间：2024-10-18 10:20

3. LY202410250003
   物资：钾肥 20袋
   领用人：王五
   用途：水稻后期补肥
   出库时间：2024-10-25 15:45
```

### 示例3：批次追溯

**需求**：追溯批次号BATCH20241015001的详细信息

**操作步骤**
```
1. 在搜索框输入"BATCH20241015001"
2. 找到对应记录
3. 点击"查看详情"
4. 查看溯源链条和详细信息
```

**溯源信息**
```
批次号：BATCH20241015001
物资名称：复合肥

溯源链条：
1. 采购入库
   供应商：XX农资公司
   生产日期：2024-09-15
   质检证书：QC20240915001
   入库时间：2024-09-20

2. 领用申请
   申请人：张三
   部门：种植一队
   申请时间：2024-10-15 09:30
   用途：1号田块水稻施肥作业

3. 审批通过
   审批人：李队长
   审批时间：2024-10-15 10:15
   审批意见：同意领用

4. 出库完成
   出库人：仓库管理员-王五
   出库时间：2024-10-15 14:30
   出库方式：扫码
   库位：A区-3号货架

5. 投入使用
   使用地块：1号田块
   关联任务：任务-2024001
   作物类型：水稻
   作业类型：施肥

质量信息：
- 生产日期：2024-09-15
- 有效期至：2025-09-14
- 质检证书：QC20240915001
- 质量等级：优等品
```

### 示例4：导出台账

**需求**：导出2024年10月的所有领用记录

**操作步骤**
```
1. 设置日期筛选：
   开始日期：2024-10-01
   结束日期：2024-10-31

2. 点击"导出记录"按钮

3. 选择导出格式（Excel）

4. 系统生成文件并下载
```

**导出结果**
```
文件名：领用记录_2024-10_导出时间.xlsx
记录数：42条

文件内容（部分列）：
┌──────────────┬────────┬──────┬────┬────┬────┬──────┐
│ 申请单号     │物资名称│批次号│数量│领用│审批│地块  │
├──────────────┼────────┼──────┼────┼────┼────┼──────┤
│LY202410150001│复合肥  │BATCH │50袋│张三│李队│1号田 │
│LY202410150002│除草剂  │PEST  │10瓶│王五│李队│2号田 │
│...           │...     │...   │... │... │... │...   │
└──────────────┴────────┴──────┴────┴────┴────┴──────┘
```

## 📈 数据统计

### 统计指标

| 指标名称 | 说明 |
|---------|------|
| 总记录数 | 所有领用记录总数 |
| 本月记录数 | 当月新增记录数 |
| 涉及地块数 | 使用物资的地块总数 |
| 涉及物资种类 | 使用的物资种类数 |
| 涉及供应商数 | 物资来源供应商数 |

### 趋势分析

**月度领用趋势**
```
1月：35次
2月：28次
3月：45次
4月：52次
5月：68次（春季高峰）
6月：72次
7月：55次
8月：48次
9月：62次
10月：58次
11月：42次
12月：38次
```

**分析结论**
- 春季（3-6月）是领用高峰期
- 夏季（7-8月）略有下降
- 秋季（9-10月）再次上升
- 冬季（11-2月）领用较少

## 🎯 最佳实践

### 对于农场管理者

**1. 定期查看溯源记录**
```
频率：每周一次
重点：
- 检查是否有异常使用
- 核对地块物资投入
- 分析使用趋势
```

**2. 建立溯源档案**
```
为每个地块建立溯源档案：
- 记录所有物资投入
- 关联种植作物
- 追踪质量追溯链
```

**3. 定期导出备份**
```
频率：每月一次
内容：
- 导出当月所有记录
- 存档备份
- 用于季度/年度分析
```

### 对于质量管理人员

**1. 批次追溯检查**
```
重点检查：
- 批次号完整性
- 质检证书有效性
- 有效期管理
- 安全间隔期
```

**2. 地块投入品管理**
```
管理要点：
- 记录所有投入品
- 控制使用量
- 检查使用时机
- 确保合规使用
```

**3. 建立追溯体系**
```
体系内容：
- 从采购到使用的完整链条
- 每个环节责任明确
- 信息完整可查
- 支持快速追溯
```

### 对于财务人员

**1. 成本核算**
```
核算维度：
- 按地块核算
- 按作物核算
- 按时间核算
- 按物资类型核算
```

**2. 数据分析**
```
分析内容：
- 物资消耗趋势
- 成本变化趋势
- 异常消耗分析
- 预算执行分析
```

## 🔐 权限控制

| 角色 | 查看记录 | 查看详情 | 导出记录 | 生成二维码 |
|------|---------|---------|---------|-----------|
| 系统管理员 | ✅ | ✅ | ✅ | ✅ |
| 质量管理员 | ✅ | ✅ | ✅ | ✅ |
| 财务人员 | ✅ | ✅ | ✅ | ❌ |
| 仓库管理员 | ✅ | ✅ | ✅ | ❌ |
| 部门负责人 | ✅本部门 | ✅本部门 | ✅本部门 | ❌ |
| 普通员工 | ✅本人 | ✅本人 | ❌ | ❌ |

## 📝 常见问题

**Q1: 如何查询某个地块的所有物资投入？**
A: 使用地块筛选功能，选择对应地块，即可查看该地块的所有领用记录。

**Q2: 批次号有什么作用？**
A: 批次号是溯源的关键，通过批次号可以追溯到供应商、生产日期、质检信息等。

**Q3: 为什么要记录关联地块？**
A: 关联地块是农产品质量追溯的核心，能够明确投入品的使用位置，支持质量追溯。

**Q4: 导出的数据可以用来做什么？**
A: 可用于成本分析、统计报表、监管上报、审计检查等。

**Q5: 溯源记录可以修改吗？**
A: 为保证溯源的真实性，溯源记录一经生成不可修改，只能查询。

**Q6: 如何保证溯源信息的准确性？**
A: 系统在申请、审批、出库各环节自动记录信息，减少人工录入，确保准确性。

## 🎯 技术实现

### 核心代码

```typescript
// 筛选后的溯源记录
const filteredTraceRecords = traceRecords.filter(record => {
  // 搜索词筛选
  if (traceSearchTerm) {
    const searchLower = traceSearchTerm.toLowerCase();
    const matchSearch = 
      record.requisitionCode.toLowerCase().includes(searchLower) ||
      record.materialName.toLowerCase().includes(searchLower) ||
      record.batchNo.toLowerCase().includes(searchLower) ||
      record.applicant.toLowerCase().includes(searchLower);
    if (!matchSearch) return false;
  }
  
  // 物资类型筛选
  if (traceMaterialType !== 'all' && 
      record.materialType !== traceMaterialType) {
    return false;
  }
  
  // 地块筛选
  if (traceField !== 'all' && 
      record.relatedField !== traceField) {
    return false;
  }
  
  // 部门筛选
  if (traceDepartment !== 'all' && 
      record.department !== traceDepartment) {
    return false;
  }
  
  // 日期范围筛选
  if (traceDateRange.start && 
      record.checkoutDate < traceDateRange.start) {
    return false;
  }
  if (traceDateRange.end && 
      record.checkoutDate > traceDateRange.end) {
    return false;
  }
  
  return true;
});

// 导出溯源记录
const handleExportTraceRecords = () => {
  const exportData = filteredTraceRecords.map(record => ({
    申请单号: record.requisitionCode,
    物资名称: record.materialName,
    批次号: record.batchNo,
    数量: `${record.quantity}${record.unit}`,
    领用人: record.applicant,
    用途: record.purpose,
    关联地块: record.relatedField || '-',
    出库时间: record.checkoutDate,
    // ... 更多字段
  }));
  
  // 生成Excel文件并下载
  exportToExcel(exportData, `领用记录_${new Date().toLocaleDateString()}.xlsx`);
};
```

---

**文档版本**: v1.0  
**更新日期**: 2024-10-22  
**功能状态**: ✅ 已完成并测试通过  
**相关文档**: 
- 领用申请指南: `REQUISITION_APPLICATION_GUIDE.md`
- 审批工作流指南: `APPROVAL_WORKFLOW_COMPLETE_GUIDE.md`
- 出库与核销指南: `CHECKOUT_WRITEOFF_COMPLETE_GUIDE.md`
- 快速测试: `TRACEABILITY_QUICK_TEST.md`
