# 大屏 — 交易销售统计 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 大屏交易销售统计 | | 使用场景 | 领导参观、指挥调度、对外展示等**大屏端**只读看板(交易销售专题页) | | 目标 | 按**统计年份**集中展示**牦牛交易**订单规模、价格走势、销售去向与品质结构,以及**产地行情**近 7 日态势;并展示**农资商城**品类、订单、店铺、区域与评价词云;形成交易市场与供销态势一屏总览 | | 数据来源 | **交易市场平台**(交易订单、供应商、承销商、市场行情登记等)、**畜牧流通资源管理**(交易市场主数据);**农资商城**经 Open API 聚合(见 **§2.12**),本大屏**不直连**商城库表 | | 修订依据 | 同目录 `大屏交易销售功能需求-草稿.md`、`Snipaste_2026-05-26_08-48-14.jpg`、`Snipaste_2026-05-26_10-30-51.jpg`;指标口径与《交易订单管理功能需求》《承销商管理功能需求》《市场行情登记功能需求》《供应商管理功能需求》及移动端《牦牛行情》业务说明对齐 | | 关联维护 | 订单录入、完成支付、行情登记、承销商主数据维护须在对应业务后台完成;大屏刷新后展示最新结果 | 本文档仅描述**功能需求、业务规则与展示逻辑**,不涉及数据库结构、接口路径、请求体字段、统一响应格式及技术实现选型。 --- ## 2. 术语与口径 ### 2.1 统计年份 - 大屏顶部(或全局筛选区)提供**统计年份**选择,格式为自然年 **YYYY**(如 `2026`)。 - 进入大屏时默认选中**当前自然年**。 - 变更统计年份后,凡标注「与 **Y** 相关」的区块须**同步**按新年份重算;**不得**出现区块之间年份不一致。 - **产地行情(近 7 日)**与**主数据快照类**指标**不随 Y 切换**(见 **§2.4、§2.5**)。 ### 2.2 统计日 记用户打开或刷新大屏时的系统日期为**统计日**(自然日,项目时区与后台一致,默认 `Asia/Shanghai`)。 ### 2.3 统计月份(按月图表) 按月图表分两类,横轴规则**不同**: | 类型 | 适用区块 | 横轴规则 | | --- | --- | --- | | **统计年 Y 内 1~12 月** | (本期无;店铺入驻等为年度/实时快照) | — | | **滚动最近 12 个月** | **牦牛交易数额趋势**、**商城订单趋势** | 以服务器当前年月为锚点,取**含当月在内向前连续 12 个自然月**;**不**随页面「统计年份 **Y**」切换 | **滚动最近 12 个月** - 接口每条记录含 **`statYear`**、**`month`(1~12)**;按时间升序固定 **12** 条。 - 缺月指标为 **0**;**不**省略刻度。 - **前端横轴**仅展示月份;**鼠标悬停**展示 **YYYY年M月** 及数值。 - 切换 **Y** 时,上述两趋势图**仍展示同一滚动窗口**。 **农资订单量(总览)** = 滚动 12 月「商城订单趋势」各月 `orderCount` 之和(与趋势图窗口一致)。 ### 2.4 指标类型与年份关系 | 指标类型 | 代表指标 | 与统计年份 **Y** 的关系 | | --- | --- | --- | | **年内累计(已完成订单)** | 订单数、交易量、交易额、销售去向、品质占比 | 仅统计 **Y** 年内满足 **§2.6** 的**已完成**交易订单 | | **滚动最近 12 月** | 牦牛交易数额趋势(按月销量/销售额)、商城订单趋势 | **§2.3**;**不**随 **Y** 切换 | | **滚动窗口(行情)** | 近 7 日均价/最低价/最高价、行情走势 | 以**统计日**为终点向前连续 **7** 个自然日;**与 Y 无关** | | **主数据实时快照** | 入驻商铺数(供应商数) | **不随 Y** 变化;为当前有效主数据条数 | ### 2.5 牦牛交易订单纳入规则 对齐《交易订单管理功能需求》: | 项 | 规则 | | --- | --- | | 统计对象 | **交易订单**主档 | | 有效记录 | `del_flag` 为未删除(与项目逻辑删除约定一致) | | **已完成** | 订单状态为**已完成**(已上传支付凭证并完成支付) | | **待支付** | **不参与**任何大屏统计(草稿中凡写「已完成的交易订单」处均指本行) | | 时间归属(按年) | **订单完成时间**(`finish_time`)的日期部分落在统计年份 **Y** 年内(`Y-01-01`~`Y-12-31`,含起止日) | | 时间归属(按月) | **订单完成时间**落在该自然月内 | | 交易量(头) | 订单**交易总头数**(= 采购明细行数) | | 交易额(元) | 订单**交易总金额**(= 明细金额之和) | ### 2.6 产地行情(日度)纳入规则 对齐《市场行情登记功能需求》: | 项 | 规则 | | --- | --- | | 统计对象 | **日度行情**登记记录 | | 有效记录 | 未逻辑删除 | | 渠道范围 | 默认统计县域**主交易市场**「**巴青牦牛交易市场**」(与《牦牛行情》移动端一致);若登记时市场名称不一致,实施前须统一主数据名称或配置默认市场 | | 近 7 日窗口 | 区间:**[统计日 − 6 日, 统计日]**,共 **7** 个自然日(含统计日当天) | | 单日多维度 | 同一行情日、同一渠道下若存在多条不同品类维度(公母、重量档等)的日度记录,当日聚合规则见 **§2.7** | ### 2.7 行情聚合与单位 对 **§2.6** 渠道范围内、落在近 7 日窗口内的日度行情,按**行情日期**分组后: | 聚合项 | 计算规则 | | --- | --- | | 当日最低价 | 取该日各条记录 **最低价** 的**最小值** | | 当日最高价 | 取该日各条记录 **最高价** 的**最大值** | | 当日均价 | 取该日各条记录 **均价** 的**算术平均**(条数为 0 的日期不参与) | | 价格单位展示 | 优先取该日**最近创建**的一条记录的单位(元/头、元/斤);若 7 日内单位不一致,以**最近一次行情日**的单位展示,并在图例或脚注说明「单位:××」(与产品定稿一致) | **近 7 日汇总卡片(区块二上部指标):** | 指标 | 计算 | | --- | --- | | 7 日均价 | 7 个自然日内「当日均价」有效值的**算术平均** | | 7 日最低价 | 7 日内「当日最低价」的**最小值** | | 7 日最高价 | 7 日内「当日最高价」的**最大值** | | 最近一次行情日期 | 7 日窗口内存在日度记录的最大**行情日期**;无记录时为 **—** 或空态 | ### 2.8 销售去向(承销商维度) | 项 | 规则 | | --- | --- | | 归属 | 取订单关联**承销商**主档上的**销售去向**(本市 / 本省 / 外省),与《承销商管理功能需求》**§2.3** 一致 | | 统计量 | 对 **§2.5** 纳入的已完成订单,按承销商 `distributor_id` 取销售去向后,汇总 **交易总头数**(非订单笔数) | | 展示 | 三档固定展示;某档无数据时该档为 **0** 头、占比 **0%** | ### 2.9 品质等级(订单明细维度) | 项 | 规则 | | --- | --- | | 统计对象 | **已完成**订单的**采购明细**行(一行一头) | | 等级来源 | 明细 `grade_code`、`grade_name`(保存订单时由服务端按重量匹配 `biz_grade_weight_config` 写入,见《交易订单管理功能需求》§3.4) | | 统计量 | 按 `grade_code` 分组计数(头);占比 = 该等级头数 ÷ 当年已完成订单明细总行数 | | 展示 | 饼图/环形图;展示名称优先取明细 `grade_name` 快照(如一级、二级) | > 等级编码与名称以配置表为准(A/B/C/D 等);大屏**不维护**等级字典。 ### 2.10 入驻商铺数(本期牦牛侧口径) 草稿「入驻商铺数」原拟对接农资商城。本期仅上线牦牛交易时,该指标收束为: | 指标 | 口径 | | --- | --- | | 入驻商铺数 | 《供应商管理》中**未逻辑删除**的有效**供应商**条数(家) | | 与 **Y** | **实时快照**,切换年份不变 | 农资商城上线后,可改为「农资店铺数」或拆分为两个指标,须单独立项修订。 ### 2.11 比率与单位 | 项 | 约定 | | --- | --- | | 头 | 交易量、销售去向、品质结构 | | 单 | 订单笔数 | | 元 | 交易额;大屏展示可带千分位;大额是否换算「万元」以原型为准,全文统一 | | 家 | 供应商(入驻商铺) | | % | 占比;品质、销售去向占比建议保留 **1** 位小数或整数 **%**,全文统一 | | 价格 | 产地行情与走势;标注元/头或元/斤 | | 件 | 农资品类销量(与商城 quantity 一致) | | 万元 | 消费区域排名金额 | ### 2.12 农资商城统计(Open API 口径) 对齐商城项目《商城数据统计功能需求》及 Open API 技术方案;**统计口径以商城侧为准**,大屏只读展示。 | 区块 | 与 **Y** / 统计日关系 | 口径摘要 | | --- | --- | --- | | 农资品类销售、热销 Top5 | **Y**(统计年;当年已完成单按 `finish_time` 归属 **Y**,一级品类销量) | 饼图占比 + Top5 排行 | | 商城订单趋势 | **滚动 12 月**;按月计数 | 非删除订单按 `create_time` 归属月;跨年时合并两年 Open API 数据 | | 店铺入驻 | **Y**;按月占比饼图 | 按店铺 `create_time` 归属月 | | 消费区域 Top5 | **Y**;已完成单实付按收货城市 | 金额万元,Top5 | | 消费者评价词云 | **与 Y 无关**(全量评价 Top50) | 词频降序 | | 总览·农资订单量 | **Y** | 当年各月订单数**求和** | | 总览·农资销售额 | **Y** | **v1.1**:商城 Open API **未提供**年度销售总额;有接口后对接,否则展示 **—** | **未接入或调用失败**:右栏各区块空态;`mallStatsAvailable=false`;牦牛区块不受影响。 --- ## 3. 功能范围与边界 ### 3.1 范围内(v1.1) - 统计年份筛选与整页刷新; - **交易总览**(牦牛三项 + 入驻商铺数 + **农资订单量**;农资销售额有数据则展示,否则 **—**); - **产地行情**(近 7 日指标 + 三曲线走势); - **牦牛交易数额趋势**(按月销售量、销售额双系列); - **牦牛销售去向**(三档去向头数及占比); - **品质等级占比**(按明细行分档占比); - **农资品类销售占比**(饼图)、**热销农资 Top5**(排行); - **商城订单趋势**(按月曲线)、**店铺入驻**(按月饼图); - **消费区域排名 Top5**、**消费者评价词云**; - 无数据、加载中、加载失败、商城未接入等状态展示。 ### 3.2 范围外 / 依赖外部 | 项 | 说明 | | --- | --- | | 商城 Open API 不可用 | 农资区块空态;不伪造数据 | | 农资年度销售总额 | 待商城 API 扩展;见 **§2.12** | | 商城侧订单/店铺/评价维护 | 在农资商城后台完成 | ### 3.3 其他范围外(不变) - 交易订单、行情、供应商/承销商的增删改、支付、结算; - 导出、打印;下钻后台维护菜单(若后续增加外链须单独评审); - 按供应商、承销商、市场等多维筛选(本期仅**统计年份**全局筛选); - 技术栈、接口、异常响应 `code/msg/data`(属技术方案,**不写入**本文档); - 大屏端权限与网关策略(由部署约定)。 --- ## 4. 业务流程概览 ```mermaid flowchart TD A[打开大屏交易销售页] --> B[默认当前统计年份 Y] B --> C[加载各区块数据] C --> D[渲染总览/图表] J[用户切换统计年份] --> C K[后台完成支付/登记行情等] --> L[刷新或重新进入大屏] L --> C ``` **典型使用顺序:** 1. 用户进入大屏交易销售页,系统默认 **Y = 当前年**,加载牦牛交易类区块及近 7 日行情。 2. 用户切换 **Y** → 全页 Loading → 与 **Y** 相关的区块重算(行情区块仍按**统计日**近 7 日)。 3. 运营人员在后台完成订单支付、登记日度行情、维护承销商销售去向后,大屏通过**重新进入、手动刷新或约定轮播周期**更新。 ### 4.1 数据汇聚关系 ```mermaid flowchart TB subgraph trade [交易市场平台] O[交易订单/明细] Q[市场行情登记] SUP[供应商] DIS[承销商] end subgraph mall [农资商城 Open API] M[overview 六项统计] end subgraph screen [大屏交易销售] H[各统计区块] end O --> H Q --> H SUP --> H DIS --> H M --> H ``` --- ## 5. 页面结构与区块需求 布局以原型 `Snipaste_2026-05-26_08-48-14.jpg`、`Snipaste_2026-05-26_10-30-51.jpg` 为准。 ### 5.1 全局:统计年份 | 项 | 规则 | | --- | --- | | 统计年份 | 见 **§2.1**;变更后**整页**重载(行情近 7 日仍按 **§2.2** 统计日计算) | | 只读 | 无维护类按钮;可有**刷新** | --- ### 5.2 区块一:交易总览 以**指标卡片**横向排列(与原型一致)。 #### 5.2.1 展示项(共 6 项) | 序号 | 指标名称 | 单位 | 统计口径 | | --- | --- | --- | --- | | 1 | 牦牛交易订单数 | 单 | **§2.5** 已完成订单**笔数** | | 2 | 牦牛交易量 | 头 | **§2.5** 已完成订单 **交易总头数** 合计 | | 3 | 牦牛交易总额 | 元 | **§2.5** 已完成订单 **交易总金额** 合计 | | 4 | 入驻商铺数 | 家 | **§2.10** 有效供应商数(实时快照) | | 5 | 农资订单量 | 单 | **§2.12** 当年商城订单趋势各月求和;未接入为 **—** | | 6 | 农资销售额 | 元 | **§2.12** 年度总额(待商城 API);未接入或无数据为 **—** | **无数据:** **Y** 年无已完成牦牛订单时,前三项为 **0**;供应商数为 0 时第四项为 **0**;农资项按 **§2.12** 空态规则。 --- ### 5.3 区块二:产地行情 #### 5.3.1 近 7 日指标卡片 | 项 | 规则 | | --- | --- | | 统计窗口 | **§2.6、§2.7**;与 **Y** 无关 | | 展示项 | 7 日均价、7 日最低价、7 日最高价、**最近一次行情日期** | | 单位 | 价格项须标注单位(元/头或元/斤) | #### 5.3.2 近 7 日走势 | 项 | 规则 | | --- | --- | | 图表类型 | **折线图**(或面积图,以原型为准) | | 横轴 | 近 7 个自然日(建议 `MM-dd`);缺日无登记时该点三系列均为 **0** 或该日不参与连线(与产品定稿一致,**默认**缺日显示 0) | | 数据系列 | ① 当日最低价;② 当日最高价;③ 当日均价(均为 **§2.7** 当日聚合值) | | 图例 | 三系列名称与颜色区分 | | 交互 | 悬停展示日期 + 三个价格 | **无数据:** 7 日内无任何日度行情时,指标区与图表走 **§7.1** 空态。 --- ### 5.4 区块三:牦牛交易数额趋势 | 项 | 规则 | | --- | --- | | 图表类型 | **柱状图 + 折线图**组合,或双轴图(以原型为准) | | 数据范围 | **§2.3** 滚动最近 **12** 个自然月 | | 横轴 | 12 刻度,**仅显示月份**;悬停显 **YYYY年M月** | | 系列一 | **销售量(头)**:该月 **§2.5** 已完成订单的 **交易总头数** 合计 | | 系列二 | **销售额(元)**:该月 **§2.5** 已完成订单的 **交易总金额** 合计 | | 缺月 | 窗口内无完成单的月份为 **0** | | 与 **Y** | **不**随 **Y** 切换 | **无数据:** 滚动窗口内无任何已完成订单时,图表空态或 12 槽位均为 0(与 **§7.1** 协调)。 --- ### 5.5 区块四:牦牛销售去向 | 项 | 规则 | | --- | --- | | 图表类型 | 饼图/环形图(以原型为准) | | 分档 | **本市**、**本省**、**外省**(**§2.8**) | | 展示内容 | 各档**头数**及占当年已完成订单总头数的**占比** | | 无去向数据 | 三档均为 0;占比 0% | --- ### 5.6 区块五:品质等级占比 | 项 | 规则 | | --- | --- | | 图表类型 | 饼图/环形图(以原型为准) | | 统计对象 | **§2.9** 已完成订单明细行 | | 展示内容 | 各品质等级**头数**及**占比** | | 无等级或全空 | 当年无已完成明细,或明细均无品质等级时 **§7.1** 空态 | --- ### 5.7 区块六:农资品类销售 + 热销 Top5(右栏上部) | 项 | 规则 | | --- | --- | | 品类占比 | **饼图**;各一级品类**当年**销量占 `totalQty` 比例(**§2.12**) | | 热销 Top5 | 列表:排名、品类名、销量;与饼图同 **statYear**(统计年 **Y**) | | 未接入 | 空态文案「商城统计未接入」或「暂无数据」 | --- ### 5.8 区块七:商城订单趋势 | 项 | 规则 | | --- | --- | | 图表类型 | **折线图**(面积图可选) | | 数据范围 | **§2.3** 滚动最近 **12** 个自然月(商城 Open API 按年返回时服务端合并并补 `statYear`) | | 横轴 | 12 刻度,**仅显示月份**;悬停显 **YYYY年M月** | | 系列 | 每月商城订单数(单) | | 与 **Y** | 切换年份同步更新 | --- ### 5.9 区块八:店铺入驻 | 项 | 规则 | | --- | --- | | 图表类型 | **饼图**(各月入驻数占当年 `yearTotal` 比例) | | 与 **Y** | 切换年份同步更新 | --- ### 5.10 区块九:消费区域排名(前 5) | 项 | 规则 | | --- | --- | | 图表类型 | **柱状图** | | 指标 | 各城市农资销售额(**万元**);Top5 | | 与 **Y** | 切换年份同步更新 | --- ### 5.11 区块十:消费者评价 | 项 | 规则 | | --- | --- | | 展示 | **词云**;Top50 高频词 | | 与 **Y** | **不随 Y 变**(全量评价缓存,见商城侧 TTL) | --- ## 6. 图表与展示通用规则 | 项 | 规则 | | --- | --- | | 单位 | 界面须标注 **§2.11** 约定单位 | | 跨年 | 仅 **Y** 相关区块随年份切换;行情 7 日随**统计日**滚动 | | 只读 | 无编辑、支付、登记类操作 | | 一致性 | 总览「交易量」与趋势图按月销量合计、销售去向头数之和(三档)应与 **§2.5** 口径一致(允许四舍五入误差) | --- ## 7. 异常、空态与刷新 ### 7.1 业务数据空态 | 场景 | 展示要求 | | --- | --- | | **Y** 年无已完成订单 | 总览前三项为 **0**;趋势图空态或全 0;销售去向、品质占比空态 | | **Y** 年有订单但无明细品质 | 品质区块空态;其余区块正常 | | 近 7 日无行情 | 产地行情指标 **—** 或 0;走势图空态 | | 某销售去向档为 0 | 仍展示该档,占比 0% | | 商城未接入 / 接口失败 | 右栏空态;`mallStatsAvailable=false`;左栏正常 | | 商城某区块无数据 | 该图空态;不展示假数据 | ### 7.2 加载与失败 | 场景 | 展示要求 | | --- | --- | | 切换年份加载中 | 整页或分区块 Loading,避免显示上一年残留 | | 业务数据加载失败 | 明确失败提示,支持**重试** | | 部分区块失败 | 失败区块单独提示;已成功区块可保留(若产品要求整页失败则统一提示) | ### 7.3 数据刷新 - 大屏为**只读**;后台完成支付、行情登记后,须通过**重新进入、手动刷新或约定自动轮播周期**更新(周期建议 **1~5 分钟**,由实施配置)。 - **不要求**与后台变更秒级同步。 --- ## 8. 验收要点(功能) | 编号 | 场景 | 通过标准 | | --- | --- | --- | | SY-JY-01 | 默认年份 | 进入页默认当前年;与 **Y** 相关区块口径一致 | | SY-JY-02 | 切换年份 | 切换 **Y** 后交易类区块同步更新;近 7 日行情仍按统计日 | | SY-JY-03 | 交易总览 | 订单数/量/额与手工按 **§2.5** 核算一致;入驻商铺数不随 **Y** 变 | | SY-JY-04 | 产地行情 | 7 日指标与走势图与 **§2.7** 一致;与 **Y** 无关 | | SY-JY-05 | 数额趋势 | 滚动 12 月双系列;含 `statYear`+`month`;缺月 0;横轴仅月、悬停显年月;**不**随 **Y** | | SY-JY-06 | 销售去向 | 三档头数之和 = 当年已完成总头数;占比合理 | | SY-JY-07 | 品质占比 | 各等级占比之和为 100%(有明细时);仅统计已完成订单明细 | | SY-JY-08 | 农资区块 | 右栏六区块有数据或规范空态;与商城 Open API 口径一致 | | SY-JY-09 | 后台补录后刷新 | 完成支付或登记行情后刷新可见;商城侧订单/评价变更后刷新可见农资区块 | | SY-JY-10 | 只读 | 无业务维护按钮 | | SY-JY-11 | 商城降级 | 商城 API 关闭或失败时牦牛区块正常、农资空态 | | SY-JY-12 | 农资订单量 | 总览「农资订单量」= **滚动 12 月**商城订单趋势各月之和 | --- ## 9. 修订记录 | 版本 | 日期 | 说明 | | --- | --- | --- | | 1.0 | 2026-05-26 | 由草稿优化:补全流程、边界、五区块需求;农资商城整块标为范围外 | | **1.1** | **2026-05-20** | **纳入农资商城 §8~13**:Open API 对接;总览增农资订单量;六区块右栏;**§2.12** 口径;农资年度销售额待商城 API | | **1.2** | **2026-05-20** | 对齐商城 Open API **v1.2**:品类/热销/区域改为**统计年**口径;大屏请求 overview 仅传 `statYear`;右栏标题展示统计年 | | **1.3** | **2026-07-04** | 牦牛交易数额趋势、商城订单趋势改为**滚动最近 12 月**;接口增 `statYear`+`month`;农资订单量与滚动趋势合计一致 | --- ## 10. 相对草稿的优化说明 | 草稿问题 | 处理方式 | | --- | --- | | 仅条目罗列 | 增加 **§3、§4、§7、§8** 与 mermaid 流程 | | 「当前年份」与全局筛选 | 统一为 **§2.1** 统计年份 **Y**;默认当前年 | | 已完成订单未写清 | **§2.5** 明确仅**已完成**、按**完成时间**归属 | | 产地行情 7 日未写聚合 | **§2.6、§2.7** 补窗口、渠道、多维度聚合 | | 销售去向未关联承销商 | **§2.8** 对齐承销商主档三档 | | 品质等级无字段来源 | **§2.9** 对齐明细 `grade_code` + 配置表 `grade_name` | | 入驻商铺与农资混杂 | **§2.10** 本期用供应商快照;农资指标 **§2.12** 独立口径 | | 按月缺月、未来月未写 | **§2.3** | | 技术栈、统一响应格式 | 不写入本文档(见技术方案 **v1.1**) | | 草稿 8~13 条 | **v1.1 已实现**(Open API);草稿 **§3** 农资两项部分实现(销售额待 API) |