本文档说明当前系统中供应监测模块的功能设计、实现逻辑、数据来源、接口进度以及与其他模块的关联关系。
文档内容基于当前 Java 后端、MySQL 数据库和本地 QA 质检数据的实现状态整理,覆盖供应商综合评分、成本分析、交付分析、质量合格率、供应商查询对比、付款计划和入库对账等功能。
供应监测模块用于分析供应商在成本、交付、账期和质量四个维度上的表现,帮助业务人员选择更合适的供应商,并对供应过程中的延期、成本差异、质量异常和付款安排进行监控。
当前模块的核心目标包括:
当前供应监测主链路已经接入 Java 后端和 MySQL 数据库,后端优先读取数据库数据;当数据库没有供应监测基础数据时,服务层保留从本地 Excel 加载的兜底能力。
已完成或已接入的能力包括:
2026年每日QA登记表.xlsx,汇总供应商抽检数量、不合格数量和合格率。当前后端接口包括:
| 接口 | 方法 | 说明 |
|---|---|---|
/api/supply/monitor/suppliers |
GET | 供应商列表与评分卡数据 |
/api/supply/monitor/compare |
GET | 多供应商对比 |
/api/supply/monitor/payment-plan |
GET | 付款计划 |
/api/supply/monitor/payment-summary |
GET | 付款月度汇总 |
/api/supply/monitor/receipt-reconciliation |
GET | 入库对账 |
/api/supply/monitor/evaluate |
POST | 按产品编码评估供应商 |
/api/supplier/evaluate |
POST | 兼容旧前端的产品评估接口 |
/api/supplier/overview |
GET | 供应商总览统计 |
/api/supplier/product/{productCode}/details |
GET | 产品评分明细 |
最新评分卡用于供应商列表和多供应商对比,已经加入质量合格率维度。综合得分由四个维度构成:
| 维度 | 权重 | 分数来源 |
|---|---|---|
| 成本维度 | 30% | 同 SKU 下按参考价从低到高排名后换算成本分 |
| 交付维度 | 30% | 准时率 70 分 + 订单完成率 30 分 |
| 账期维度 | 15% | 按供应商账期天数换算账期分 |
| 质量维度 | 25% | QA 抽检合格率换算质量分 |
综合得分计算公式:
综合得分 = 成本分 * 30% + 交付分 * 30% + 账期分 * 15% + 质量分 * 25%
评分等级:
预警标签规则:
成本分析用于比较供应商针对同一产品的实际采购成本。
系统以产品编码或 SKU 为查询条件,从采购入库数据中按供应商汇总入库数量和入库金额,计算参考价:
参考价 = 入库金额合计 / 入库数量合计
系统按参考价从低到高排名,并换算为成本分数:
在供应商总列表中,成本分会按供应商参与的多个 SKU 成本排名取平均值。
交付分析用于评价供应商是否按计划交货,以及采购订单是否完成。
供应商列表中的交付分数由两部分组成:
计算公式:
交付分 = 准时率 * 70 + 订单完成率 * 30
产品维度交付详情使用订单入库匹配数据,展示匹配行数、准时行数、延迟行数、准时率、数量满足率、平均偏差天数、最大延迟天数、交付状态和风险等级。
账期分析用于评价供应商给出的付款周期。
系统从供应商账期表读取账期天数,并按以下规则换算为账期分数:
账期详情会展示供应商代码、供应商名称、结算期限、账期天数、账期分数、账期等级和维护状态。
质量维度来自 QA 抽检数据,当前后端读取 2026年每日QA登记表.xlsx。文件路径优先级如下:
SUPPLY_QA_DATA_PATH。DTM_SUPPLY_QA_DATA_PATH。supply.qa.path。supply.data.path 指向目录下的 2026年每日QA登记表.xlsx。data/supply/2026年每日QA登记表.xlsx。系统读取 QA 文件中的验货日期、供应商、来货数量、抽检数量、不合格数量和大批次品数量,并按供应商汇总。
合格率和质量分计算规则:
不合格数量 = 不合格数量 + 大批次品数量
合格率 = (抽检数量 - 不合格数量) / 抽检数量
质量分 = 合格率 * 100
当供应商没有 QA 抽检数据时,供应商列表评分卡暂按质量分 80 分处理;同时 qaPassRate 返回为空,便于前端区分“无数据”和“合格率为 0”。
供应商列表返回的质量字段包括:
qualityScore:质量分。qaPassRate:QA 合格率,保留 4 位小数。qaSampleQty:抽检数量。qaDefectQty:不合格数量。qaIncomingQty:来货数量。qaLines:QA 记录行数。供应商查询对比用于查看供应商在采购、入库、交付、账期和质量方面的明细表现。
当前支持:
付款计划根据采购入库记录和供应商账期生成。
当前逻辑为:
预计付款日 = 实际验收日期 + 供应商账期天数
系统按供应商和预计付款日汇总入库金额、入库数量和入库单据行数,并根据预计付款日判断付款状态:
入库对账按采购入库业务日期统计,当前返回月度维度数据:
该功能用于辅助采购侧和财务侧核对供应商入库规模、金额变化和付款基础数据。
当前供应监测使用以下数据源:
dtm_supply_purchase_order:采购订单表,保存业务日期、计划交货日期、供应商、订单数量、完成数量、未完成数量和金额。dtm_supply_purchase_receipt:采购入库表,保存业务日期、实际验收日期、供应商、产品编码、实际入库数量和金额。dtm_supply_supplier_term:供应商账期表,保存供应商名称、供应商代码、结算期限和账期天数。dtm_supply_order_receipt_match:订单入库匹配表,保存产品、供应商、计划交货日期、实际验收日期、计划数量和实际入库数量。2026年每日QA登记表.xlsx:QA 质量数据,保存验货日期、供应商、来货数量、抽检数量、不合格数量和大批次品数量。单个产品评分的核心流程如下:
说明:产品维度 Top 供应商接口当前仍使用成本、交付、账期三维评分,尚未把 QA 合格率纳入单个产品评分。最新四维评分卡已用于供应商列表和多供应商对比。
供应商总览会汇总采购入库、订单入库匹配和供应商账期中的供应商,形成供应商基础集合。
系统分别计算各供应商的成本分、交付分和账期分,再计算综合得分,并输出:
说明:/api/supplier/overview 当前 SQL 仍按成本 40%、交付 40%、账期 20% 计算总览统计;如需总览卡片与最新四维评分卡完全一致,需要后续把 QA 合格率也纳入总览 SQL 或改由服务层统一聚合。
供应商列表、供应商对比、付款计划、付款汇总和入库对账支持日期范围筛选。
不同数据侧使用的日期口径如下:
后端服务优先读取 MySQL 数据库。当采购订单、采购入库、供应商账期和订单入库匹配表均无数据时,服务层会尝试从本地供应监测 Excel 数据中加载,以兼容早期开发和演示阶段的数据来源。
供应监测依赖采购订单、采购入库、供应商账期、订单入库匹配和 QA 质检数据。当前核心采购侧数据已写入数据库,后端接口直接从数据库读取;QA 质量数据仍从本地 Excel 文件读取。
后续可将 QA 文件导入流程纳入统一数据上传模块,落库后再由供应监测统一从数据库聚合,减少本地文件路径依赖。
供应监测以产品编码作为成本和交付分析的核心查询条件。产品编码可与订单监测、生命周期模块中的商品编码进行关联,用于分析同一商品的销售表现和供应能力。
订单监测反映销售端表现,供应监测反映采购和供应端表现。两者通过产品编码关联后,可以判断高销售商品是否存在供应成本过高、交付延迟、质量合格率偏低或账期不足的问题。
供应监测中的采购入库数量、交付完成情况和质量合格率可为库存管理提供补充信息。库存模块关注库存现状,供应监测关注供应商履约、质量表现和后续付款安排。
供应监测中的付款计划按入库验收日期和账期生成,可作为后续应付计划、资金安排和供应商对账的基础数据。当前模块只生成预计付款计划和状态,不处理实际付款核销。
当前实现边界:
建议后续事项:
2026年每日QA登记表.xlsx 落库。