# 农牧户数据填报 — 测试用例 > **接口 Base Path**:`/dataModel/farmerHousehold` > **建表**:执行 `sql/biz_farmer_household.sql` > **模板**:`farmer_household_import_template.xlsx` | 编号 | 场景 | 期望 | | --- | --- | --- | | UT-001 | 解析运行模板样例 | 2 行;乡镇/村/户数/禁牧面积/是否纯牧户正确 | | UT-002 | 派生计算 | 草场承包总面积、补助奖励总资金、补助合计(=补助奖励总资金+封顶保底后+村级监督员)正确 | | API-001 | 新增 | 选村+年月成功;乡镇回填 | | API-002 | 唯一键 | 同年同月同村再增失败 | | API-003 | 导入 upsert | 已有更新、新建插入;不删同月其他记录 | | API-004 | 导入失败 | 乡镇/村无法识别 → 整批不写 | | API-005 | 导出 | 选年月导出;可选乡镇;派生列回写;填表人为当前用户 | | API-005a | 列表已选乡镇后导出 | 导出弹窗所属乡镇与列表一致;传 `townDeptId` 仅该乡镇 | | API-005b | 导出弹窗清空乡镇 | 不传 `townDeptId`,导出全部乡镇 | | API-006 | 草畜失衡 | 载畜量<存栏绵羊单位 → `biz_grass_livestock_imbalance_warning` 有 `data_source=farmer_household`、`source_key=FH-{id}` 记录;改平衡后该预警消失(不再写疾病预警 type=6) | | UI-001 | 列表筛选 | 年/月/乡镇 | | UI-002 | 表单村级联 | 只选村;新增默认本年本月 | | UI-003 | 列表选某乡镇后打开导出 | 标签/选项与列表相同,且已选中该乡镇 | 对应单测:`FarmerHouseholdExcelParserTest`