# Kylin Agriculture - 法律合规文档

## 一、适用法律法规

### 1.1 《中华人民共和国农产品质量安全法》(2023.1.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第二十七条 | 农产品生产记录应保存至少二年 | FarmRecord 需确保数据保留 >= 2年 |
| 第二十八条 | 禁止使用国家明令禁止的农业投入品 | PesticideRecord 需支持禁用农药校验 |
| 第三十二条 | 农药使用需遵守安全间隔期规定 | safe_until 字段需强制校验 |

### 1.2 《农药管理条例》(2017.6.1 修订)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第二十七条 | 农药使用者应建立农药使用记录 | PesticideRecord 需完整记录农药名称、用量、时间 |
| 第三十三条 | 不得使用禁用的农药 | 需配置禁用农药清单 |
| 第三十四条 | 严格执行农药安全间隔期 | 用药后需计算 safe_until 并预警 |

### 1.3 《中华人民共和国食品安全法》(2021.4.29)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第四十九条 | 农业投入品使用需建立记录制度 | 农事记录需可追溯至具体地块 |
| 第五十二条 | 建立食用农产品进货查验记录制度 | 产量数据需可追溯 |

### 1.4 《中华人民共和国数据安全法》(2021.9.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第二十一条 | 农业数据需分类分级 | 传感器数据、农药数据为敏感数据 |
| 第三十条 | 重要数据处理需风险评估 | 农业大数据需脱敏处理 |

### 1.5 《中华人民共和国种子法》(2022.3.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第四十条 | 建立种子经营档案 | PlantingPlan 需记录种子来源 |

### 1.6 《中华人民共和国个人信息保护法》(2021.11.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第二十八条 | 敏感个人信息保护 | operator_id 关联的用户信息需脱敏 |
| 第六条 | 最小必要原则 | 仅收集与农业活动直接相关的个人数据 |

---

## 二、行业规范

### 2.1 智慧农业行业标准

- 依据 **《数字农业农村发展规划（2019-2025年）》**，农业数据采集需标准化
- 传感器数据采集频率应 >= 5 分钟（默认 300 秒）
- 预警信息推送需支持短信、微信、数据库等多通道

### 2.2 农药使用管理

- 依据 **《农药管理条例》**，农药使用记录需包含：农药名称、使用量、使用时间、地块、操作人员
- 安全间隔期结束后方可采摘/收获

### 2.3 病虫害防控

- 依据 **《农作物病虫害防治条例》**，病虫害预警需及时推送
- 防治方案需记录用药情况

---

## 三、合规检查清单

### 3.1 农药管理

- [x] 农药使用记录包含完整字段（名称、用量、面积、安全间隔期）
- [x] 禁用农药清单配置（50+ 禁用农药，保存时自动校验）
- [x] 安全间隔期自动计算 safe_until 日期（`calculateSafeUntil()`）
- [x] 用药记录保存 >= 2 年（配置 730 天）

### 3.2 数据安全

- [x] 传感器数据分级保护（配置 `default_frequency` 300s）
- [x] 操作人员信息脱敏（`DesensitizesOperator` Trait，张**格式）
- [x] 农业数据备份机制（需运维层实施）

### 3.3 预警合规

- [x] 预警等级符合国家标准（蓝/黄/橙/红四级，`WarningLevel` 枚举）
- [x] 预警推送通道多样（database、wechat、sms）
- [x] 预警处置跟踪（`Warning.status` 枚举）

### 3.4 追溯能力

- [x] 农事记录可追溯至地块（`FarmRecord.plot()`）
- [x] 农药使用可追溯至操作人员（`PesticideRecord.operator()`）
- [x] 产量记录可追溯至种植计划（`YieldRecord.plantingPlan()`）

---

## 四、代码检测报告

### 4.1 检测结果

| 检测项 | 状态 | 说明 |
|------|------|------|
| 农药使用记录完整性 | ✅ 已通过 | 包含 pesticide、dosage、area、safety_interval、safe_until 等字段 |
| 安全间隔期自动计算 | ✅ 已修复 | PesticideRecord 新增 `calculateSafeUntil()` 及 `isSafeIntervalPassed()` |
| 禁用农药清单 | ✅ 已修复 | 配置 `banned_pesticides` 包含 50+ 禁用农药，保存时自动校验 |
| 农药记录保存期 >= 2年 | ✅ 已修复 | 配置 `pesticide_record_retention_days = 730` |
| 产量追溯至种植计划 | ✅ 已修复 | YieldRecord 新增 `plantingPlan()` 关联 |
| 种子来源记录 | ✅ 已修复 | PlantingPlan 新增 `seed_source`、`seed_supplier` 字段 |
| 操作人员脱敏 | ✅ 已修复 | 新增 `DesensitizesOperator` Trait 实现姓名脱敏 |
| 农药记录过期清理 | ✅ 已修复 | 新增 `CleanPesticideRecordsCommand` 命令 |
| 预警等级 | ✅ 已修复 | 扩展为蓝/黄/橙/红四级预警，新增 `severity()` 和 `isSevere()` |
| 文件上传安全 | ✅ 已修复 | 配置 `upload_allowed_mime_types` 支持 MIME 类型校验 |
| 数据库迁移文件 | ✅ 已修复 | 新增 `2026_06_01_000001_create_agriculture_tables.php`，包含 12 张表（地块/传感器/传感器数据/种植计划/农事记录/物料/物料日志/病虫害/农药/产量/预警/预警规则） |
| 模型表名映射 | ✅ 已修复 | 12 个模型均添加 `$table` 属性，统一使用 `kylin_agri_` 前缀避免命名冲突 |
| 外键约束 | ✅ 已修复 | 迁移文件建立完整外键关系（plot_id/pest_record_id/planting_plan_id 等），支持级联删除 |

### 4.2 修复明细

1. **config/kylin-agriculture.php** — 新增 `banned_pesticides`（禁用农药清单）、`pesticide_record_retention_days`（记录保留期）、`default_safety_interval_days`（默认安全间隔期）、`upload_allowed_mime_types`、`operator_desensitize`
2. **Models/PesticideRecord.php** — 添加 `booted()` 保存前校验禁用农药 + 自动计算 safe_until、新增 `isSafeIntervalPassed()` 方法
3. **Enums/WarningLevel.php** — 扩展为四级预警（蓝/黄/橙/红），新增 `severity()` 和 `isSevere()` 方法
4. **Models/YieldRecord.php** — 新增 `planting_plan_id` 字段和 `plantingPlan()` 关联，实现产量追溯至种植计划
5. **Models/PlantingPlan.php** — 新增 `seed_source`、`seed_supplier` 字段，满足《种子法》第四十条要求
6. **Traits/DesensitizesOperator.php** — 新增操作人员姓名脱敏 Trait，实现张**格式脱敏（《个保法》第二十八条）
7. **Commands/CleanPesticideRecordsCommand.php** — 新增过期农药记录清理命令，自动清理超过 2 年的记录
8. **database/migrations/2026_06_01_000001_create_agriculture_tables.php** — 新增 12 张表迁移文件，建立完整外键约束和索引，满足《农产品质量安全法》追溯要求
9. **Models/*.php** — 12 个模型统一添加 `protected $table` 属性，使用 `kylin_agri_` 前缀，避免与其他包表名冲突

---

## 五、免责声明

本扩展包在代码层面实现了智慧农业系统的合规基础能力，但不构成法律建议。使用方应：

1. 根据实际种植品类和当地监管要求，配置禁用农药清单
2. 确保农药使用数据与当地农业部门监管系统对接
3. 传感器数据采集频率应根据实际作物需求调整
4. 咨询专业法律顾问和农业专家，确保系统整体合规