fix: 从模块化成品列表排除配件档案 #12

Merged
lunanting merged 1 commits from codex/exclude-non-bom-components-0917 into main 2026-09-17 11:43:38 +08:00
2 changed files with 17 additions and 5 deletions

View File

@ -8,7 +8,10 @@
//
// ① MKH 商品编码(列表主数据)—— 业务库 JSReportReplica(MSSQL / schema=rpt)
// rpt.jst_sku WHERE sku_id LIKE N'MKH%' AND item_type = N'成品'
// AND other_3 = N'简尚-崔桥工厂品牌仓' (当前 4408 条)
// AND other_3 = N'简尚-崔桥工厂品牌仓'
// AND 该编码存在正式 BOM 配件明细 (当前 4223 条)
// · 商品档案里的 item_type/labels 不能单独作为成品依据:上游也会把部分配件
// 标成“成品/模块化成品”。只有 jst_skuBomItem 的父项才进入本页面。
// · 形态 MKH + 款号 + 序列,例 MKHDNZ0409260600198
//
// ② 配件明细(BOM)—— 聚水潭商品 BOM(主来源)
@ -59,9 +62,18 @@ const officialBomDetailCache = new Map();
const componentLocationCache = new Map();
let productBomCache = null;
// MKH 商品编码 = 模块化成品
// MKH 模块化成品必须同时是指定仓库商品档案和正式 BOM 父项。
// 上游存在被 item_type/labels 误标为成品的配件,不能仅依赖商品档案标签。
const DESIGNATED_WAREHOUSE = '简尚-崔桥工厂品牌仓';
const MKH_WHERE = `s.sku_id LIKE N'MKH%' AND s.item_type = N'成品' AND s.other_3 = N'${DESIGNATED_WAREHOUSE}'`;
const MKH_WHERE = `s.sku_id LIKE N'MKH%'
AND s.item_type = N'成品'
AND s.other_3 = N'${DESIGNATED_WAREHOUSE}'
AND EXISTS (
SELECT 1
FROM rpt.jst_skuBomItem parent_bom WITH (NOLOCK)
WHERE parent_bom.sku_id = s.sku_id
AND NULLIF(LTRIM(RTRIM(parent_bom.map_outer_sku_id)), N'') IS NOT NULL
)`;
const toText = (value) => {
if (value === null || value === undefined) return null;

View File

@ -337,7 +337,7 @@ const MkhBomData = () => {
模块化(MKH 开头)成品的编码与配件明细:配件明细、数量、配件仓位
</Text>
<Text type="secondary" className="mkh-note">
数据口径:MKH 商品编码仅取自业务库 jst_sku 中“简尚-崔桥工厂品牌仓”的成品(当前 4408 条);
数据口径:MKH 商品编码取自业务库 jst_sku 中“简尚-崔桥工厂品牌仓”,并且必须是聚水潭正式 BOM 的父项;
配件明细与数量优先取自聚水潭商品 BOM,业务中台组合商品 BOM 与产品资料系统数据库中维护的配件作为补充;
无指定仓库商品档案的 BOM 组合编码不会进入列表;配件仓位只取 rpt.jst_packInventoryInfo,
优先显示具体仓位,没有具体仓位时显示箱号,表中没有有效记录时显示「未维护」。
@ -371,7 +371,7 @@ const MkhBomData = () => {
: '聚水潭商品 BOM 及补充来源中尚无可用的模块化商品配件明细'}
description={(
<span>
MKH 商品编码({data.total || 0} 条)仅取自业务库 jst_sku 中“简尚-崔桥工厂品牌仓”;
MKH 商品编码({data.total || 0} 条)取自业务库 jst_sku 中“简尚-崔桥工厂品牌仓”的正式 BOM 父项;
配件明细优先取自聚水潭商品 BOM({data.bomOfficialRowCount || 0} 个),
业务组合 BOM({data.bomBusinessRowCount || 0} 个)与产品资料系统({data.bomProductDbRowCount || 0} 个)作为补充。
BOM 中没有指定仓库商品档案的组合编码不会加入商品列表。