# 大屏 — 首页统计 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 大屏首页统计 | | 使用场景 | 领导参观、指挥调度、对外展示等**大屏端**只读看板(首页/总览页) | | 目标 | 按**统计年份**集中展示养殖产业、流通交易、线下服务预约、惠农补贴、养殖标准、农技与实战培训等核心指标,形成县域牧业综合态势一屏总览 | | 数据来源 | **养殖产业数据**相关台账(牦牛资产、牧场、草场、疾病预警等)、**交易市场平台**(供应商、承销商、交易市场)、**牧业疫病诊疗服务**(服务预约)、**产业政策**(补贴发放记录)、**养殖标准体系**(各子类标准)、**牧业养殖科技服务**(视频课程)、**科技平台与服务**(实战业务培训);大屏**不录入、不修改、不删除**业务数据 | | 修订依据 | 同目录 `大屏首页功能需求-草稿.md`、`Snipaste_2026-05-25_20-14-49.jpg`、`Snipaste_2026-05-25_20-15-28.jpg`;指标口径与《养殖产业数据功能需求》《补贴发放记录功能需求》《实战业务培训功能需求》《畜牧医疗资源管理功能需求》《畜牧科技资源管理功能需求》《养殖标准管理功能需求》及关联子标准模块对齐 | | 关联维护 | 台账补录、发布、下架、预约、补贴登记、标准维护须在对应业务后台完成;大屏刷新后展示最新结果 | 本文档仅描述**功能需求、业务规则与展示逻辑**,不涉及数据库结构、接口路径、请求体字段及技术实现选型。 --- ## 2. 术语与口径 ### 2.1 统计年份 - 大屏顶部(或全局筛选区)提供**统计年份**选择,格式为自然年 **YYYY**(如 `2026`)。 - 进入大屏时默认选中**当前自然年**。 - 变更统计年份后,本页**全部统计区块**须**同步**按新年份重新计算与展示,不得出现区块之间年份不一致。 ### 2.2 统计日与历史年末时点 记用户打开或刷新大屏时的系统日期为**统计日**。 | 场景 | 时点约定 | | --- | --- | | 统计年份 **Y = 当前自然年** | 「时点类」指标以**统计日**为基准(与《养殖产业数据功能需求》**§2.2** 一致) | | 统计年份 **Y 为历史年** | 「时点类」指标以 **Y 年 12 月 31 日** 为还原时点(月末存栏还原规则见 **§2.5**) | ### 2.3 统计月份(按月图表) 大屏存在两类按月图表,横轴刻度规则**不同**: | 类型 | 适用区块 | 横轴规则 | | --- | --- | --- | | **统计年 Y 内 12 月** | 线下服务预约堆叠柱、实战培训报名趋势等 | 固定 **1 月~12 月** 共 12 个刻度,数据范围限定在 **Y 年** | | **滚动最近 12 个月** | **牦牛存栏变动**、**牦牛出栏统计**、**线下服务预约**(堆叠柱)、**实战培训报名** | 以服务器当前年月为锚点,取**含当月在内向前连续 12 个自然月**;**不**随页面「统计年份 **Y**」切换 | **统计年 Y 内 12 月(预约、培训等)** - **缺月规则:** 该月在 **Y 年** 内无任何纳入统计的业务记录时,当月指标按 **0** 展示;**不**省略刻度、**不**断线留空、**不**插值。 - **当前年未到来月份:** 当 **Y** 为当前年时,**晚于统计日** 的月份按 **0** 展示。 **滚动最近 12 个月(存栏变动、出栏统计)** - 接口每条记录含 **`statYear`(自然年)**、**`month`(1~12)**;按时间升序固定返回 **12** 条。 - 某自然月在填报表中无全县合计数据时,该月 **`bullCount`/`cowCount`/`outboundCount` 为 0**。 - **前端横轴**仅展示月份(如 `8月`);**鼠标悬停**展示完整年月(如 `2025年8月`)及数值。 - 切换统计年份 **Y** 时,上述两区块**仍展示同一滚动窗口**(与 **Y** 无关)。 ### 2.4 指标类型与年份关系(总览) | 指标类型 | 代表指标 | 与统计年份 **Y** 的关系 | | --- | --- | --- | | **年内累计** | 牦牛年出栏量、补贴发放金额、预约人次(年度卡片合计) | 仅汇总 **Y 年** 内满足纳入条件的记录 | | **时点/还原** | 牦牛存栏总量、公母牛数、年龄结构、牧场/草场数量与面积 | 按 **§2.2** 时点或月末还原 | | **主数据实时快照** | 供应商数量、承销商数量、交易市场数量 | **不随 Y 切换**;始终为当前有效主数据条数(见 **§2.6**) | > 草稿写「产业总览统计当前年份」;对**主数据条数**三类,正式口径收束为**实时快照**;牦牛存栏/出栏/农牧户取填报表**最近年月**;存栏变动/出栏统计为**滚动 12 月**(与 **Y** 无关);预约、补贴、培训等仍按 **Y** 与 **§2.2** 计算。 ### 2.5 牦牛产业口径(大屏首页) 大屏首页牦牛相关指标取自**乡镇填报表**(`biz_yak_herd_inventory`、`biz_yak_outbound_report`),全县乡镇合计;**不**直接按牦牛资产档案月末还原(档案口径仍用于「养殖产业数据」专看板)。 | 主题 | 规则摘要 | | --- | --- | | **产业总览·存栏** | 所选年 **Y** 内 `stat_year=Y` 的**最大 `stat_month`**,全县村级 `yak_total` 合计;接口字段 **`inventoryTotal`**;该年无填报为 **0** | | **产业总览·出栏** | 所选年 **Y** 内出栏表最大填报月全县村级 `yak_outbound_count` 合计;接口字段 **`annualOutbound`** | | **产业总览·农牧户** | 所选年 **Y** 内 `biz_farmer_household` 最大填报月全县村级 `household_count` 合计;接口字段 **`pastureCount`** | | **产业总览·合作社** | 所选年 **Y** 内 `biz_cooperative_development` 最大填报月记录条数;接口字段 **`cooperativeCount`** | | **产业总览·家庭牧场** | 所选年 **Y** 内 `biz_family_ranch` 最大填报月记录条数;接口字段 **`familyRanchCount`** | | **产业总览·养殖大户** | 所选年 **Y** 内 `biz_large_livestock_farmer` 最大填报月记录条数;接口字段 **`largeLivestockFarmerCount`** | | **产业总览·有畜户数** | 所选年 **Y** 内 `biz_livestock_ownership_household` 最大填报月全县村级 `with_livestock_household_count` 合计;接口字段 **`withLivestockHouseholdCount`** | | **产业总览·草场面积** | 所选年 **Y** 内 `biz_farmer_household` 最大填报月全县村级 `pasture_contract_area` 合计;接口字段 **`grasslandAreaMu`** | | **存栏变动·当前公母** | 存栏表**最近填报年月**全县 `bull_total`、`cow_total`;`unknownGenderCount = yak_total − bull − cow`(不足为 0) | | **存栏变动·趋势** | 所选年 **Y** 填报数据中**最大月份为 N** 则输出 1~N 月;各月全县村级 `bull_total`、`cow_total` 合计;区间内缺月补 0;无填报则空数组;接口字段 **`inventoryChange.monthlyTrend`** | | **年龄结构** | **本期首页不展示**;接口 `ageStructure` 返回空列表 | | **畜群存栏结构** | 所选年 **Y** 内存栏表最大填报月全县 `yak_total`、`dairy_total`、`sheep_total`;饼图展示占比与头数(单位:头);接口字段 **`herdInventoryStructure`** | | **牦牛存栏结构** | 所选年 **Y** 内存栏表最大填报月全县种公牛/公牛阉畜/幼畜/成畜/保险;双层饼图(内环公牛·母牛·保险牛,外环细分);单位:头;接口字段 **`yakInventoryStructure`** | | **牲畜出栏统计** | 所选年 **Y** 内出栏表最大填报月全县六畜出栏;矩形树图展示占比与数量;马骡单位**匹**,绵羊/山羊单位**只**,其余**头**;接口字段 **`livestockOutboundStructure`** | | **自食情况统计** | 所选年 **Y** 内出栏表最大填报月全县自食牛/绵羊/山羊;柱状图;单位均为**头**;接口回传 `statYear`/`statMonth`;字段 **`selfConsumption`** | | **企业年度收入与补助-家庭牧场** | 所选年 **Y** 内 `biz_family_ranch` 最大填报月全县 `income`/`expense`/`profit`/`subsidy_amount` 合计;柱状图;单位**万元**;字段 **`familyRanchFinance`** | | **企业年度收入与补助-养殖大户** | 所选年 **Y** 内 `biz_large_livestock_farmer` 最大填报月全县同上四项合计;柱状图;单位**万元**;字段 **`largeLivestockFarmerFinance`** | | **合作社经营模式分类** | 所选年 **Y** 内 `biz_cooperative_development` 最大填报月按 `business_model` 计数(整村/股份/联合/多种经营/公司型/其他);饼图;单位**个**;字段 **`cooperativeBusinessModel`** | | **农牧户分类** | 所选年 **Y** 内 `biz_farmer_household` 最大填报月各分类标记为「是」的村级记录数(纯牧户/无畜户/绝户/超载牧户/需要封顶/需要保底);柱状图;单位**个**;字段 **`farmerHouseholdClassification`** | | **人均收入** | `biz_disposable_income` 距**当前年**最近 5 年(含当前年)双折线:农村居民人均可支配收入、脱贫人口人均纯收入;缺年补 0;单位**元**;**不随所选年 Y 切换**;字段 **`perCapitaIncomeTrend`** | | **人均收入明细** | 独立接口分页查询 `biz_disposable_income`;条件:所属年份(可选,**默认当前年**);按**所属年份倒序**;返回年份、农村居民人均可支配收入、增幅、增速、脱贫人口人均纯收入 | | **农牧户数据明细** | 独立接口分页查询 `biz_farmer_household`;条件:年(可选,**默认当前年**)、月(可选,**默认当前月**)、乡镇、村;按**年、月倒序**;返回全部业务列表字段 | | **草场面积数据明细** | **复用**农牧户数据明细接口(同表同条件;面积字段含 `pasture_contract_area` 等);**不另开**独立接口 | | **合作社数据明细** | 独立接口分页查询 `biz_cooperative_development`;条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 | | **家庭牧场数据明细** | 独立接口分页查询 `biz_family_ranch`;条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 | | **养殖大户数据明细** | 独立接口分页查询 `biz_large_livestock_farmer`;条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 | | **牦牛出栏数据明细** | 独立接口分页查询 `biz_yak_outbound_report`(牲畜出栏/自食情况明细);条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 | | **牦牛存栏数据明细** | 独立接口分页查询 `biz_yak_herd_inventory`(畜群存栏/牦牛存栏结构明细);条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 | | **有无畜户数据明细** | 独立接口分页查询 `biz_livestock_ownership_household`;条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 | | **牦牛存出栏情况明细** | 独立接口分页;按 `(stat_year, stat_month, village_dept_id)` 关联 `biz_yak_herd_inventory` 与 `biz_yak_outbound_report`;年/月/乡镇/村均可选(**未传年月不过滤,支持跨多年全量翻页**);按**年、月倒序**;返回年、月、乡镇、村、牦牛总存栏数、牦牛总出栏数 | | **养殖主体数量明细** | 独立接口分页;以 `biz_farmer_household` 为主表,按村年月左关联 `biz_cooperative_development` / `biz_family_ranch` / `biz_large_livestock_farmer` 计数;年/月/乡镇/村均可选(**未传年月不过滤,支持跨多年全量翻页**;前端筛选项可默认当前年月);按**年、月倒序**;返回年、月、乡镇、村、农牧户数、合作社数、家庭牧场数、养殖大户数 | | **乡镇列表** | 独立接口返回全县填报乡镇(`parent_id=100` 且 `order_num>12`);**不按**登录人数据权限收窄 | | **村树结构** | 独立接口返回县 → 乡镇 → 村树(`TreeSelect`);全县口径 | | **草畜失衡预警明细** | 独立接口分页查询 `biz_grass_livestock_imbalance_warning`;条件:年/月/乡镇/村;按**预警时间倒序**;返回年、月、乡镇、村、主体名称、主体类型、核定载畜量、年底存栏、是否草畜平衡 | | **出栏统计** | 所选年 **Y** 填报数据中**最大月份为 N** 则输出 1~N 月;各月全县村级 `yak_outbound_count` 合计;区间内缺月补 0;无填报则空数组;纯柱状图无趋势线;接口字段 **`outboundMonthly`** | | **地图标注** | 所选年 **Y** 内存栏/出栏表各自**最大填报月**,按乡镇汇总各村 `yak_total` / `yak_outbound_count`;**随 Y 切换** | | **牧场 / 草场** | 同《养殖产业数据》**§2.7** 等(档案/台账口径) | **数据权限:** 填报表按全县乡镇汇总;草场等仍按授权范围统计。 ### 2.6 交易市场主数据(供应商 / 承销商 / 交易市场) | 指标 | 规则 | | --- | --- | | 供应商数量 | 「供应商管理」中**未逻辑删除**的供应商条数 | | 承销商数量 | 「承销商管理」中**未逻辑删除**的承销商条数 | | 交易市场数量 | 「交易市场管理」中**未逻辑删除**且**运营状态**为**正常**的市场条数 | 三项为**主数据实时快照**,切换统计年份 **Y** 时数值不变(除非后台主数据变更后刷新大屏)。 ### 2.7 线下服务预约口径 预约数据来源于**服务预约**业务(移动端提交、后台可查);资源类型与《预约服务》/《畜牧医疗资源管理》一致: | 展示名称 | 资源类型编码 | 含义 | | --- | --- | --- | | 兽医人员 | `004001` | 兽医人员预约 | | 专家人员 | `004005` | 专家(科技资源专家库)预约 | | 诊疗机构 | `004003` | 诊疗机构预约 | | 项 | 规则 | | --- | --- | | 统计对象 | **Y 年**内**预约日期**(或服务发生日期,与后台预约主档「预约日期」字段一致)落在 **Y 年的预约记录条数 | | 去重 | 一条预约记录计 **1** 人次(不按预约人去重,除非产品另定) | | 无效记录 | 已逻辑删除的预约不参与 | | 左侧年度卡片 | 分别为上述三类在 **Y 年**内的预约条数**合计** | | 按月堆叠柱图 | 横轴 1~12 月;系列为兽医预约、专家预约、机构预约;当月无记录则为 0 | > 草稿「专家人员」对应预约资源 **专家**(`004005`),非专家团队编码 `004002`。 ### 2.8 惠农补贴发放口径 对齐《补贴发放记录功能需求》: | 项 | 规则 | | --- | --- | | 统计周期 | **发放日期**落在统计年份 **Y** 年内(`Y-01-01`~`Y-12-31`,含起止日) | | 统计对象 | 未逻辑删除的补贴发放记录 | | 分组维度 | **补贴类型**:`1` 农业生产、`2` 住房基建、`3` 民生保障 | | 指标 | 各类型 **补贴金额合计**;展示单位建议 **万元**(保留 2 位小数或与全局金额展示一致) | | 图表 | 三类并列柱状图(或条形图),无记录的类型金额为 **0** | ### 2.9 养殖标准列表口径 大屏「养殖标准」区以**分类 Tab** 切换(与原型一致),Tab 与标准体系对应关系如下: | Tab 展示名 | 标准体系范围(示例) | 列表数据来源 | | --- | --- | --- | | 养殖管理 | 繁育作业等养殖管理类标准 | 对应「养殖标准体系」下各子模块中**标准类型**归属该类的记录 | | 牦牛饲喂 | 饲喂类标准 | 饲喂标准管理 | | 设备实施 | 设备实施作业类标准 | 设备实施作业标准管理 | | 疾病诊疗 | 疫病诊疗类标准 | 疫病诊疗标准管理 | | 生长出栏 | 生长与出栏类标准 | 生长与出栏标准管理 | **纳入列表的记录须同时满足:** 1. **创建时间**的日期部分落在统计年份 **Y** 年内(与草稿「当前年份创建」一致); 2. 未逻辑删除; 3. 上架状态为**已发布**(对外有效的标准方可在展示场景出现;未发布、仅草稿不展示)。 **展示与交互:** - **分页列表**;默认按创建时间倒序(或按标准名称,与产品定稿一致); - 行内至少展示:**标准名称**及查阅所需摘要字段(如类型、创建日期等,以原型为准); - 行内「详情」为**展开或浮层**展示正文/附件说明,**不设**大屏独立详情页、**不**跳转后台维护菜单(与《大屏共同富裕统计》列表约定一致)。 ### 2.10 农技课堂口径 | 指标 | 规则 | | --- | --- | | 课程视频 | **Y 年**内**已发布**的「视频课程」资源(`resource_type = 004008`)条数;未发布、已逻辑删除不计入 | | 实战培训 | **Y 年**内**已发布**的实战业务培训**场次**(主档条数);未发布、已逻辑删除不计入 | | 培训内容合计 | **课程视频数 + 实战培训场次数**(中心「培训内容」数字) | | 发布时间界定 | 以各模块**发布成功时间**落在 **Y 年**为准;若仅有创建时间无发布时间,以产品与技术方案约定字段为准 | ### 2.11 实战培训报名趋势口径 对齐《实战业务培训功能需求》: | 维度 | 规则 | | --- | --- | | 活动数(个/月) | **Y 年**各月内,**培训时间**落在该月的、**已发布**且未删除的实战培训**条数** | | 报名人数(人/月) | 对上述落在该月的培训,将其**实际报名人数**(`enroll_status=已报名` 的统计值,与主档 `actual_enrolled_count` 一致)**求和** | | 图表形式 | 双系列曲线/面积图(活动数、报名人数);横轴 12 月;缺月为 **0** | | 无已发布培训 | 当年无培训时走 **§7.1** 空态,**不**用 0 冒充有培训业务 | ### 2.12 比率与单位 | 项 | 约定 | | --- | --- | | 头数 | 牦牛存栏、出栏、年龄结构 | | 个数 | 牧场、草场、供应商、承销商、交易市场、培训场次 | | 亩 | 草场面积 | | 人 | 预约人次、报名人数 | | 万元 | 补贴金额(若界面用元须全文统一) | | 占比 | 年龄结构、草场退化占比,建议 **%** 保留 1 位小数或整数 **%** | --- ## 3. 功能范围与边界 ### 3.1 范围内 - 统计年份筛选与整页刷新; - **产业总览**八项指标卡片; - **牦牛存栏变动**(当前公/母牛数量 + 按月存栏趋势); - **牦牛年龄结构**(三档月龄占比); - **牦牛出栏统计**(按月柱状图); - **草场类型占比**(可用/使用中 + 退化等级数量与占比); - **线下服务预约**(三类年度合计 + 按月堆叠柱图); - **惠农补贴发放**(三类金额柱状图); - **养殖标准**(分类 Tab + 分页列表,行内查阅); - **农技课堂**(课程视频、实战培训、培训内容合计); - **实战培训报名**(按月活动数与报名人数双曲线); - **地图标注**(全县乡镇牦牛存栏/出栏头数,供首页地图展示); - 无数据、加载中、加载失败等状态展示。 ### 3.2 范围外 - 各业务模块台账的增删改、发布下架、预约受理、补贴登记、标准维护; - 导出、打印;地图下钻后台菜单(若后续增加外链须单独评审); - 按牧场、区域、自定义日期段筛选(见 **§8**); - 气象、疫病风险专页、共同富裕专页等**其他大屏子页**(各自独立需求); - 大屏端权限与网关策略(由部署约定,本文档不展开)。 --- ## 4. 业务流程概览 ```mermaid flowchart TD A[打开大屏首页] --> B[默认当前统计年份 Y] B --> C[加载各区块统计数据] C --> D[渲染总览/图表/列表] J[用户切换统计年份] --> C K[后台维护业务数据后] --> L[刷新或重新进入大屏] L --> C ``` **典型使用顺序:** 1. 用户进入大屏首页,系统按**当前年**加载并展示各区块。 2. 用户切换统计年份 → 全页统一 Loading → 各区块按 **Y** 重算(主数据三类快照除外)。 3. 运营人员在后台维护牦牛档案、草场、预约、补贴、标准、培训等数据后,大屏通过**重新进入、手动刷新或约定自动轮播周期**更新(**不要求**秒级实时同步)。 ### 4.1 数据汇聚关系 ```mermaid flowchart TB subgraph industry [产业与草场] Y[牦牛资产/牧场/草场] end subgraph trade [流通交易] S[供应商/承销商/交易市场] end subgraph service [服务与政策] A1[服务预约] P[补贴发放] end subgraph knowledge [标准与培训] ST[养殖标准体系] C[视频课程] T[实战业务培训] end subgraph screen [大屏首页] H[首页各区块] end Y --> H S --> H A1 --> H P --> H ST --> H C --> H T --> H ``` --- ## 5. 页面结构与区块需求 布局以原型 `Snipaste_2026-05-25_20-14-49.jpg`、`Snipaste_2026-05-25_20-15-28.jpg` 为准。 ### 5.1 全局:统计年份 | 项 | 规则 | | --- | --- | | 统计年份 | 见 **§2.1**;变更后**整页**重载 | | 标题 | 各区块标题与原型一致 | | 只读 | 大屏无维护类按钮;可有**刷新** | --- ### 5.2 区块一:产业总览 以**指标卡片**横向排列(与原型一致,共 **8** 项): | 序号 | 指标名称 | 单位 | 统计口径 | | --- | --- | --- | --- | | 1 | 牦牛存栏总量 | 头 | `biz_yak_herd_inventory.yak_total` 全县村级合计;取所选年 **Y** 内最大填报月;接口字段 **`inventoryTotal`** | | 2 | 牦牛年出栏量 | 头 | `biz_yak_outbound_report.yak_outbound_count` 全县村级合计;取所选年 **Y** 内最大填报月;接口字段 **`annualOutbound`** | | 3 | 农牧户 | 户 | `biz_farmer_household.household_count` 全县村级合计;取所选年 **Y** 内最大填报月;接口字段 **`pastureCount`** | | 4 | 有畜户数 | 户 | `biz_livestock_ownership_household.with_livestock_household_count` 全县村级合计;取所选年 **Y** 内最大填报月;接口字段 **`withLivestockHouseholdCount`** | | 5 | 草场面积 | 亩 | `biz_farmer_household.pasture_contract_area` 全县村级合计;取所选年 **Y** 内最大填报月;接口字段 **`grasslandAreaMu`** | | 6 | 合作社 | 个 | `biz_cooperative_development` 记录条数;取所选年 **Y** 内最大填报月;接口字段 **`cooperativeCount`** | | 7 | 家庭牧场 | 个 | `biz_family_ranch` 记录条数;取所选年 **Y** 内最大填报月;接口字段 **`familyRanchCount`** | | 8 | 养殖大户 | 个 | `biz_large_livestock_farmer` 记录条数;取所选年 **Y** 内最大填报月;接口字段 **`largeLivestockFarmerCount`** | > 草场台账块数仍写入 `grasslandCount` 供草场类型区块使用;供应商 / 承销商 / 交易市场数量仍由接口返回(主数据快照)。 **无数据:** 某项无可汇总数据时展示 **0** 或 **—**(时点类建议 **0**;若全县无草场台账可展示 **0**)。 --- ### 5.3 区块二:牦牛存栏变动 | 项 | 规则 | | --- | --- | | 图表类型 | **折线图**(或面积图,以原型为准) | | 数据系列 | **公牛数量**、**母牛数量**(头) | | 数据范围 | **§2.3 滚动最近 12 个月**(存栏填报表全县按月合计) | | 横轴 | 12 个刻度,**仅显示月份**(如 `8月`);跨年窗口内可出现重复月份标签 | | 辅助展示 | 标题旁展示存栏表**最近填报年月**的公、母牛当前数量 | | 交互 | 悬停展示 **「YYYY年M月 + 公牛数 + 母牛数」** | --- ### 5.4 区块三:牦牛年龄结构 | 项 | 规则 | | --- | --- | | 图表类型 | 饼图/环形图(以原型为准) | | 分档 | **0~1.5岁幼畜**、**1.5岁以上成畜**(母牛分龄,取自存栏填报) | | 展示内容 | 各档**头数**及**占比(%)** | | 时点 | 存栏表**最近填报年月** | | 无存栏 | 两档均为 0 时走 **§7.1** 空态 | --- ### 5.5 区块四:牦牛出栏统计 | 项 | 规则 | | --- | --- | | 图表类型 | **柱状图**(无趋势折线) | | 数据范围 | **§2.3 滚动最近 12 个月**(出栏填报表全县按月合计) | | 横轴 | 12 个刻度,**仅显示月份** | | 交互 | 悬停展示 **「YYYY年M月 + 出栏头数」** | --- ### 5.6 区块五:草场类型占比 | 项 | 规则 | | --- | --- | | 上部卡片 | **可用草场数**、**使用中草场数**(**§2.5**) | | 下部图表 | 退化等级(未退化、轻度、中度、重度、极重度)的**条数**与**占比**;表格或环形图(以原型为准) | | 说明 | 「可用」「使用中」含义不同,**不宜**简单相加为总量;文案须区分 | --- ### 5.7 区块六:线下服务预约 | 项 | 规则 | | --- | --- | | 左侧 | 三类**年度预约合计**卡片:兽医人员、专家人员、诊疗机构(**§2.7**) | | 右侧 | **堆叠柱状图**:**§2.3 滚动最近 12 月**;系列为兽医/专家/机构预约人次 | | 横轴 / 悬停 | 横轴**仅月份**;悬停显示 **YYYY年M月** 及三类人次 | | 图例 | 与三类名称一致,颜色区分 | --- ### 5.8 区块七:惠农补贴发放 | 项 | 规则 | | --- | --- | | 图表类型 | 柱状图(以原型为准) | | 横轴 | 农业生产、住房基建、民生保障 | | 纵轴 | 补贴金额合计(**万元**) | | 口径 | **§2.8** | --- ### 5.9 区块八:养殖标准 | 项 | 规则 | | --- | --- | | 布局 | 左侧 **5** 个分类 Tab(**§2.9**);右侧分页列表 | | 列表字段 | 至少含标准名称;行内「详情」展开查阅,**不跳转**后台 | | 分页 | 支持翻页;切换 Tab 时从第 1 页重新加载 | | 无数据 | 该分类在 **Y** 年无已发布标准时列表空态 | --- ### 5.10 区块九:农技课堂 | 项 | 规则 | | --- | --- | | 展示项 | **课程视频**数量、**实战培训**场次、中心 **培训内容**合计(**§2.10**) | | 展示形式 | 环形或指标盘(以原型为准) | | 无数据 | 两项均为 0 时走空态或展示 0(与 **§7.1** 协调) | --- ### 5.11 区块十:实战培训报名 | 项 | 规则 | | --- | --- | | 图表类型 | 双系列**曲线/面积图**(以原型为准) | | 系列 | **活动数**(个)、**报名人数**(人) | | 横轴 | **§2.3 滚动最近 12 月** | | 横轴 / 悬停 | 横轴**仅月份**;悬停显示 **YYYY年M月** 及活动数、报名人数 | | 口径 | **§2.11**(窗口内 `training_time`) | --- ### 5.12 区块十一:地图标注 | 项 | 规则 | | --- | --- | | 展示位置 | 首页地图各乡镇标注(以原型为准) | | 乡镇范围 | `sys_dept` 中 `parent_id=100` 且 `order_num>12` 的有效乡镇 | | 标注字段 | **所属乡镇** `dept_id`、**乡镇名称**、**牦牛存栏数**(头)、**牦牛出栏数**(头) | | 存栏口径 | `biz_yak_herd_inventory.yak_total`;取所选年 **Y** 内该表**最大填报月**,按乡镇汇总其下各村合计 | | 出栏口径 | `biz_yak_outbound_report.yak_outbound_count`;取所选年 **Y** 内该表**最大填报月**,按乡镇汇总其下各村合计 | | 无填报 | 对应乡镇该年月未填报时展示 **0**;所选年无任一侧填报时该侧全县为 **0** | | 与看板年份 | **随**页面「统计年份 **Y**」切换 | --- ## 6. 图表与列表通用规则 | 项 | 规则 | | --- | --- | | 单位 | 界面须标注单位(头、个、亩、人、万元、% 等) | | 跨年 | 仅使用 **§2** 约定的 **Y** 纳入规则 | | 列表与统计一致 | 养殖标准列表仅展示 **§2.9** 纳入记录 | | 只读 | 无编辑、删除、发布、预约、登记类操作 | --- ## 7. 异常、空态与刷新 ### 7.1 业务数据空态 | 场景 | 展示要求 | | --- | --- | | **Y** 年无出栏记录 | 预约/补贴等随 **Y** 变;**出栏滚动 12 月图**与 **Y** 无关,按填报缺月补 0 | | **Y** 年时点无存栏 | 年龄结构、存栏趋势空态或补 0;产业总览存栏取最近填报,无填报为 **0** | | **Y** 年无预约 | 预约区空态;三类年度卡片为 **0** | | **Y** 年无补贴发放 | 补贴图空态或三类型均为 **0** | | 某标准分类无已发布标准 | 该 Tab 列表空态 | | **Y** 年无视频课程且无实战培训 | 农技课堂空态 | | **Y** 年无已发布实战培训 | 实战培训报名趋势空态 | | 某乡镇无存栏/出栏填报 | 地图标注该乡镇对应头数为 **0** | ### 7.2 加载与失败 | 场景 | 展示要求 | | --- | --- | | 切换年份加载中 | 整页或分区块 Loading,避免显示上一年残留数据 | | 业务数据加载失败 | 明确失败提示,支持**重试** | | 部分区块失败 | 失败区块单独提示;已成功区块可保留(若产品要求整页失败则统一提示) | ### 7.3 数据刷新 - 大屏为**只读**;后台维护后,须通过**重新进入、手动刷新或轮播周期自动刷新**更新(周期建议 **1~5 分钟**,由实施配置)。 - **不要求**与后台变更秒级同步。 --- ## 8. 验收要点(功能) | 编号 | 场景 | 通过标准 | | --- | --- | --- | | SY-01 | 默认年份 | 进入首页默认当前年,各区块口径一致 | | SY-02 | 切换年份 | 切换 **Y** 后各区块同步更新,无旧年残留 | | SY-03 | 产业总览 | 八项指标与手工按 **§2.5、§2.6** 核算一致(主数据三项不随 **Y** 变) | | SY-04 | 存栏趋势 | 滚动 12 月;含 `statYear`+`month`;公/母两系列;缺月补 0;横轴仅月、悬停显年月 | | SY-05 | 年龄结构 | 母牛两档占比之和为 100%(有数据时) | | SY-06 | 出栏按月 | 滚动 12 月出栏合计与填报表手工核算一致;纯柱状图 | | SY-07 | 草场占比 | 可用/使用中及五档退化与《养殖产业数据》一致 | | SY-08 | 预约统计 | 三类年度合计与按月堆叠与 **§2.7** 一致 | | SY-09 | 补贴金额 | 三类金额为 **Y** 年发放日记录金额合计 | | SY-10 | 养殖标准 | 仅 **Y** 年创建且已发布;分页;行内详情无跳转 | | SY-11 | 农技课堂 | 视频数、培训场次与 **§2.10** 一致 | | SY-12 | 培训报名趋势 | 活动数、报名人数按月与 **§2.11** 一致 | | SY-13 | 后台补录后刷新 | 补录后刷新大屏可见新数据 | | SY-14 | 只读 | 页面无业务维护按钮 | --- ## 9. 修订记录 | 版本 | 日期 | 说明 | | --- | --- | --- | | 1.18 | 2026-07-24 | 牦牛月度出栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) | | 1.17 | 2026-07-23 | 公母牛月度存栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) | | 1.16 | 2026-07-23 | 新增大屏乡镇列表、村树接口(全县口径) | | 1.15 | 2026-07-23 | 新增养殖主体数量明细分页接口(农牧户主表左关联合作社/家庭牧场/养殖大户) | | 1.14 | 2026-07-23 | 牦牛存出栏明细:年月未传不过滤(跨年全量翻页);SQL 改为存栏主表+UNION ALL 补仅出栏 | | 1.13 | 2026-07-23 | 新增牦牛存出栏情况明细分页接口(关联存栏/出栏填报表) | | 1.12 | 2026-07-23 | 明确草场面积数据明细复用农牧户明细接口,不另开接口 | | 1.11 | 2026-07-23 | 新增牦牛出栏/存栏、有无畜户明细分页接口 | | 1.10 | 2026-07-23 | 新增合作社/家庭牧场/养殖大户明细分页接口 | | 1.9 | 2026-07-23 | 新增农牧户数据明细分页接口 `GET /farmerHouseholds` | | 1.8 | 2026-07-23 | 新增人均收入情况明细分页接口 `GET /perCapitaIncomes` | | 1.7 | 2026-07-23 | 地图标注改为所选年最大填报月、按乡镇汇总各村存栏/出栏;接口增 `statYear` | | 1.6 | 2026-07-23 | 有畜户数、草场面积改为填报表所选年最大月合计 | | 1.5 | 2026-07-23 | 产业总览增合作社/家庭牧场/养殖大户(所选年最大填报月记录数) | | 1.4 | 2026-07-23 | 产业总览农牧户改 `biz_farmer_household` 所选年最大填报月村级合计 | | 1.3 | 2026-07-23 | 产业总览存栏/出栏改为所选年最大填报月全县村级合计 | | 1.2 | 2026-07-17 | 年龄结构改为母牛两档(0~1.5 / 1.5+),对齐存栏填报新模板 | | 1.1 | 2026-07-04 | 存栏变动/出栏统计改为填报表滚动 12 月;接口增 `statYear`;前端横轴仅月、悬停显年月;年龄结构改为母牛四档;地图/总览取最近填报年月 | | 1.0 | 2026-05-25 | 由草稿优化:补全流程、边界、十区块需求;对齐养殖产业/预约/补贴/标准/培训口径;不涉及库表与接口;保留草稿不修改 | --- ## 10. 相对草稿的优化说明 | 草稿问题 | 处理方式 | | --- | --- | | 仅条目罗列 | 增加 **§3、§4、§7、§8** 与 mermaid 流程 | | 「当前年份」对主数据含糊 | **§2.4、§2.6** 区分年内累计、时点还原、实时快照 | | 未写出栏按月、缺月规则 | **§2.3、§2.5、§5.5** | | 养殖标准仅一句 | **§2.9、§5.9** 补 Tab、纳入条件、行内详情 | | 专家人员未对应编码 | **§2.7** 明确 `004005` | | 技术栈、统一响应格式 | 属技术方案,**不写入**本文档 | | 草稿未列预警牦牛 | 首页总览按草稿八项;预警留在养殖产业专看板 |