CaiWuXiTong/config/jushuitan.php
limeng 1bb1c80816 fix(发货数据): 两种导出模式对齐工作平台取值逻辑
按工作平台 OmsDataDay 源码 + 9.1-9.16 逐单对比反推,合并/明细基础信息一致率均达 99.9% 以上。

取数范围
- 换单配对:快递明细旧单号在出库单查不到时,配同订单下未被占用的出库单新单号
- 作废重出:同单号/同订单多张出库单时优先有效单、再取最新 io_date
- 订单已取消/已拆分/已合并的快递明细不出行;订单标签含"线上发货"同样排除
- 合包/拼单:按 单号+订单号 定位出库单;同单号不同交易单号的出库单照常补出
- 发货明细无单号:出库单单号 -> 订单单号 -> 空,不再借运费表里其它包裹单号
- 自动发货仓虚拟/补差单:单号已被别的包裹输出则留空
- @ 去重只在同一交易单号、本次同步时间段内比对,剩余 @ 前缀统一去掉

字段取值
- 发货时间取出库单 io_date;平台取视图 shop_site(无则映射);省市区取视图
- 合并商品名称/供应商取包裹内最后一个商品(原为 MIN);名称 & 转 ^
- 明细体积:数量×长×宽×高,代发仓非标准承运商不乘数量,指定快递为 0(config detail_volume)
- 组合件合并值单独存 m_* 列(新迁移),合并导出优先使用
- 仓库 {未指定发货仓} 导出为空;明细 0 尺寸/体积导出为空

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhry6eiuwf
2026-10-07 13:45:27 +08:00

62 lines
3.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* 聚水潭(聚石塔/奇门)开放平台接入配置。
*
* caiwu 自建奇门客户端直连聚水潭拉取原始销售出库单,脱离 jiansun。
* 复用工作平台现有授权(同一套 app_key / app_secret / customerId / v)。
*
* 凭证只放 runtime/.env 或系统数据库私有配置,权限 600,不入 Git / PR / 日志。
* 未填 app_key / app_secret 前,客户端拒绝发起请求,不会同步任何数据。
*/
return [
// 奇门(聚石塔)网关地址,对应工作平台配置 ErpJSTUrl。
'gateway_url' => env('JST_QIMEN_URL', ''),
// 授权凭证(复用现有)。
'app_key' => env('JST_APP_KEY', ''),
'app_secret' => env('JST_APP_SECRET', ''),
'customer_id' => env('JST_CUSTOMER_ID', ''),
// 奇门固定参数。
'format' => env('JST_FORMAT', 'json'),
'version' => env('JST_API_VERSION', '2'),
'simplify' => env('JST_SIMPLIFY', 'true'),
// 落地存储连接:默认本地 MySQL 容器(jushuitan_local,见 config/database.php),
// 与远程共享镜像库隔离;上生产时用 env JST_DB_CONNECTION 覆盖。
'connection' => env('JST_DB_CONNECTION', 'jushuitan_local'),
// 同步参数。
'sync' => [
'page_limit' => (int) env('JST_SYNC_PAGE_LIMIT', 100), // 每页条数(奇门 limit)
'overlap_hours' => (int) env('JST_SYNC_OVERLAP_HOURS', 48), // 增量重叠窗口,补迟到更新
'window_hours' => (int) env('JST_SYNC_WINDOW_HOURS', 24), // 单次拉取时间窗口
'max_pages' => (int) env('JST_SYNC_MAX_PAGES', 0), // 单次最多翻页,0=不限
'request_timeout' => (int) env('JST_REQUEST_TIMEOUT', 30), // 秒
'retry_times' => (int) env('JST_RETRY_TIMES', 5),
'retry_sleep_ms' => (int) env('JST_RETRY_SLEEP_MS', 1000),
],
// 发货数据「导出明细」体积口径(对齐工作平台 OmsDataDay:明细体积默认 = 数量 × 长×宽×高)。
// 依据:工作平台 9.1-9.16 导出明细,非代发仓 8421/8421 行乘数量;代发仓走简尚线路快递的不乘数量。
// 合并口径体积不受此影响(单独存 m_volume_cm3)。
'detail_volume' => [
// 这些发货仓的明细体积不乘数量(工厂代发虚拟仓)
'no_qty_warehouses' => ['常州简尚家居有限公司'],
// 上述仓库中,用这些标准承运商发货时仍乘数量
'qty_carriers_in_no_qty_warehouses' => [
'中通快运', '韵达快递', '申通E物流', '安能物流', '邮政电商标快', '邮政快递包裹POSTB',
'壹米滴答', '百世物流', '德邦快递', '中通速递', '圆通速递',
],
// 这些快递的明细体积一律为 0
'zero_volume_expresses' => ['白云韵达-天猫亿家达', '中通礼品单'],
],
// 接口方法名(对应工作平台 ErpTradeData 中的调用)。
'methods' => [
'sctrade_list' => 'erp.sctrade.query', // 出库单列表(按时间窗分页)
'sctrade_detail' => 'erp.sradesku.query', // 单据完整明细(按 tradeId)
],
];