10 KiB
10 KiB
供应链产品全量档案字段来源对照表
更新时间:2026-08-10
1. 合并与追踪规则
- 汇总表:
SupplyChainProductArchive - 唯一合并键:
barcode - 来源记录:
SupplyChainProductArchiveSource - 字段级来源:
SupplyChainProductArchive.fieldSourceMap - 除图片外,产品全量档案页面使用的来源数据必须先写入
SupplyChainProductArchive;页面列表不再临时联查来源库。 - 图片由素材库接口按条码/SKU获取;匹配结果的链接和来源信息保存在独立的
SupplyChainProductArchiveImageCache表,不把图片二进制写进 PostgreSQL,也不进入商品修改日志。历史image值只作兼容兜底,不再由后续档案同步更新。 - 首次建立商品档案只记录一条“商品档案导入”;后续来源值实际变化时,按条码、字段、旧值、新值和来源写入
OperationLog。 - 扩展字段通过
sync:supply-chain-product-archive-enrichment分批同步;重复执行时只有值发生变化的字段才更新主表并写日志。 - 生产定时入口为
scripts/install-supply-chain-product-archive-sync-timer.sh,默认每 15 分钟先同步rpt.jst_sku基础档案,再同步供应商、仓库、生产周期、日销和价格等扩展字段。 - 聚水潭来源只读取
JSReportReplica.rpt.jst_sku中item_type = '成品'的行。 jst_sku只更新本表明确列出的字段;空值不覆盖其他来源的已有值。- 已由
JST_SKU提供且有值的字段,不再被产品开发同步覆盖。 - 一级类目由
SupplyChainProductArchiveCategoryConfig按 JST 二级类目匹配,未配置时保持空值。 - 创建时间优先级固定为:
云杉商品资料.xlsx的“创建时间” >jst_sku.created> 产品开发创建时间。 - 云杉文件只在部署或补数时通过导入脚本读取一次,不进入 Git,页面运行时不读取 Excel。
- 体积统一由同一来源记录的长、宽、高相乘计算;任一尺寸缺失、不是有效数字或不大于 0 时保持空值。
- 未列出的字段不猜测、不兜底,保持原来源或空值。
2. 当前字段对照
| 全量档案字段 | 页面表头 | JST_SKU 来源 | 产品开发来源 | 其他来源 | 转换规则 |
|---|---|---|---|---|---|
barcode |
条码 | rpt.jst_sku.sku_id |
external.product_catalog_wide_v1.barcode_business_key |
去空格并转大写;档案唯一键 | |
spu |
SPU | rpt.jst_sku.i_id |
archive_spu |
去空格并转大写 | |
sku |
SKU | rpt.jst_sku.other_7 |
archive_sku |
去空格并转大写;JST 空值不兜底 | |
image |
图片 | 素材库接口 + SupplyChainProductArchiveImageCache.previewUrl |
条码优先、SKU 图兜底、最后白底图;成功链接长期复用,未命中 24 小时后可重试,不写档案主表 | ||
businessCreatedAt |
创建时间 | rpt.jst_sku.created |
product_development_created_at,空时取 source_created_at |
云杉文件“创建时间”按条码匹配 | 按固定优先级覆盖 |
categoryL1 |
一级类目 | sales_category_name |
SupplyChainProductArchiveCategoryConfig.categoryL1 |
JST 行按完整二级类目匹配配置表 | |
categoryL2 |
二级类目 | rpt.jst_sku.category |
archive_product_category_name |
JST 原样保留完整类目文本 | |
productName |
商品名称 | rpt.jst_sku.name |
archive_product_name |
原样保留 | |
designer |
设计师 | 暂不接入 | archive_designer |
||
productStatus |
商品状态 | rpt.jst_sku.other_5 |
sku_sales_status |
只接受“销售、停产、退市” | |
material |
材质 | rpt.jst_sku.other_10 |
archive_material |
原样保留 | |
color |
颜色 | rpt.jst_sku.properties_value |
archive_color |
原样保留 | |
weight |
重量 | rpt.jst_sku.weight |
sample_weight_kg |
转十进制数;空值不覆盖 | |
length |
长 | rpt.jst_sku.l |
package_length_cm |
转十进制数;空值不覆盖 | |
width |
宽 | rpt.jst_sku.w |
package_width_cm |
转十进制数;空值不覆盖 | |
height |
高 | rpt.jst_sku.h |
package_height_cm |
转十进制数;空值不覆盖 | |
volume |
体积 | rpt.jst_sku.l * w * h |
package_length_cm * package_width_cm * package_height_cm |
不读取来源体积列,统一按长宽高计算 | |
packType |
单双包 | rpt.jst_sku.other_8 |
package_set_count |
1-9 转为非双包至九包;已是标准文字时原样保留 | |
productTag |
商品标签 | rpt.jst_sku.labels |
product_tag |
原样保留 | |
installDocId |
安装图纸/视频 ID | rpt.jst_sku.other_9 |
drawing_id |
原样保留 | |
spec |
产品尺寸 | 从 rpt.jst_sku.name 提取 |
archive_spec |
提取三轴尺寸,统一 / 分隔,保留小数和范围 |
|
brand |
品牌 | rpt.jst_sku.brand |
brand_name |
原样保留 | |
orderType |
叫货类型 | rpt.jst_sku.other_price_2 |
purchase_order_method |
按现有枚举归一 | |
storageType |
入库/代发 | SupplyChainProductArchiveWarehouseConfig.storageType |
按出入库仓库名称匹配配置表 | ||
isSeasonal |
是否季节性产品 | 暂无来源 | 暂无来源 | 保持空值 | |
replaceCount |
替换款数量 | 暂无来源 | 暂无来源 | 保持空值 | |
supplierName |
供应商 | rpt.jst_sku.supplier_name |
archive_supplier_name |
原样保留 | |
supplierType |
供应商类型 | rpt.js_supplier.scmtype |
按供应商名称匹配后写主表 | ||
supplierStatus |
供应商状态 | rpt.js_supplier.coopersgn |
1=合作、2=不合作 |
||
purchaseOwner |
采购 | archive_purchase_owner |
rpt.js_supplier.buyer |
供应商采购非空时覆盖产品开发采购 | |
settlementMethod |
结算方式 | rpt.js_supplier.paycyclesgn |
按供应商名称匹配 | ||
boardProvider |
板材提供方 | rpt.js_supplier.undefined2 |
按供应商名称匹配 | ||
penaltyStatus |
违约金赔付状态 | rpt.js_supplier.undefined1 |
按供应商名称匹配 | ||
warehouseType |
仓库属性 | rpt.jst_warehouseInfo.remark2 |
按出入库仓库名称匹配 | ||
warehouseHead |
仓库负责人 | SupplyChainProductArchiveWarehouseConfig.warehouseHead |
按出入库仓库名称匹配配置表 | ||
minimumOrderQuantity |
产品起订量 | archive_minimum_order_quantity |
rpt.pm_stockMonitor.minimum |
stock monitor 非空时覆盖产品开发起订量 | |
firstLeadTime |
首单生产周期 | rpt.pm_stockMonitor.produceCycle |
条码优先、SKU 唯一匹配兜底 | ||
palletSpec |
托盘参数 | rpt.pm_stockMonitor.trayParameter |
条码优先、SKU 唯一匹配兜底 | ||
dailySales |
采购日销 | rpt.pm_stockMonitor.purchaseSale |
按条码匹配最新记录 | ||
sales3d |
3日日销 | rpt.pm_stockMonitor.threeAvgSale |
按条码匹配最新记录 | ||
sales7d |
7日日销 | rpt.pm_stockMonitor.sevenAvgSale |
按条码匹配最新记录 | ||
sales15d |
15日日销 | rpt.pm_stockMonitor.fifteenAvgSale |
按条码匹配最新记录 | ||
purchasePrice |
采购价 | rpt.jst_sku.purchase_price |
按档案条码精确匹配 jst_sku.sku_id;匹配不到时留空 |
||
costPrice |
成本价(聚水潭) | rpt.jst_sku.cost_price |
按档案条码精确匹配 jst_sku.sku_id;匹配不到时留空 |
||
costPriceSecondary |
成本价(新品) | external.product_catalog_wide_v1.cost_price |
按档案条码精确匹配 barcode_business_key,只读取 catalog_source = INTAKE_READY 的新品行;匹配不到或来源为空时留空 |
3. JST_SKU 第一批字段覆盖率
统计范围:item_type = '成品',共 65,164 行。
| 来源字段 | 对应档案字段 | 非空行数 |
|---|---|---|
sku_id |
条码 | 65,164 |
i_id |
SPU | 65,164 |
name |
商品名称、规格解析 | 65,164 |
other_7 |
SKU | 63,537 |
other_5 |
商品状态 | 63,771 |
other_9 |
安装图纸/视频 ID | 24,792 |
other_10 |
材质 | 31,394 |
properties_value |
颜色 | 63,855 |
category |
二级类目 | 63,539 |
weight |
重量 | 35,754 |
l |
长 | 38,224 |
w |
宽 | 38,083 |
h |
高 | 38,124 |
other_8 |
单双包 | 61,908 |
labels |
商品标签 | 以本次来源库实时数据为准 |
brand |
品牌 | 以本次来源库实时数据为准 |
supplier_name |
供应商 | 以本次来源库实时数据为准 |
4. 来源代码
| 来源代码 | 来源系统 | Schema | 对象 |
|---|---|---|---|
JST_SKU |
聚水潭 JSReportReplica | rpt |
jst_sku |
PRODUCT_DEVELOPMENT |
家具产品开发系统 | external |
product_catalog_wide_v1 |
CATEGORY_CONFIG |
供应链中心类目配置 | public |
SupplyChainProductArchiveCategoryConfig |
JST_SUPPLIER |
聚水潭 JSReportReplica | rpt |
js_supplier |
JST_STOCK_MONITOR |
聚水潭 JSReportReplica | rpt |
pm_stockMonitor |
JST_WAREHOUSE_INFO |
聚水潭 JSReportReplica | rpt |
jst_warehouseInfo |
JST_SKU_PRICE |
聚水潭 JSReportReplica | rpt |
jst_sku |
PRODUCT_CATALOG_COST_PRICE |
家具产品开发系统 | external |
product_catalog_wide_v1 |
WAREHOUSE_CONFIG |
供应链中心 | public |
SupplyChainProductArchiveWarehouseConfig |
YUNSHAN_PRODUCT_EXPORT |
云杉商品资料 | Excel 工作表名 | Excel 文件名 |
5. 生产同步入口
- 产品开发页面保存成功后,会按当前产品即时同步
external.product_catalog_wide_v1的档案字段。 - 聚水潭及其关联表由 systemd timer 周期检查。同步过程可以重复执行,主表只写实际变化,商品修改日志只记录后续真实变化。
- 定时任务安装前必须在生产服务器的
shared/supply-chain-product-archive-sync.env填写目标 PostgreSQL 和来源 SQL Server 的身份校验值;文件权限固定为600,其中不保存数据库密码。 - 安装命令只在发布完成并获得生产操作授权后执行:
bash scripts/install-supply-chain-product-archive-sync-timer.sh。 - 图片不属于此定时任务。页面优先读取
SupplyChainProductArchiveImageCache,没有缓存时才按条码/SKU调用素材库接口并回写链接。