- 超长费按报价规则从销售出库单拉取;退回费/拦截费从查件扣单拉取,并补出库时间、平台商品ID、线上订单号等字段 - 页面新增导入核验(单号+附加费类型+快递名称+可选金额),返回正常结/不结原因与差异金额,并提供导入模板下载
787 lines
44 KiB
PHP
787 lines
44 KiB
PHP
<?php
|
||
|
||
return [
|
||
'connection' => env('BUSINESS_MIRROR_DB_CONNECTION', 'business_mirror'),
|
||
|
||
// 钉钉应付申请流程只同步“应付申请流程”这一固定流程编码,
|
||
// 页面从共享业务镜像读取,不在 HTTP 请求中直连上游。
|
||
'ding_payable_workflows' => [
|
||
'dataset_key' => 'operations_replica.rpt.ding_payable_workflows',
|
||
'source_key' => 'operations_replica',
|
||
'process_code' => 'PROC-39DD70DE-DAB2-4A5F-B8F1-0B0B68BD0C88',
|
||
'target_table' => 'ding_payable_workflow_mirror',
|
||
'batch_size' => (int) env('DING_PAYABLE_WORKFLOW_MIRROR_BATCH_SIZE', 100),
|
||
'max_batches_per_run' => (int) env('DING_PAYABLE_WORKFLOW_MIRROR_MAX_BATCHES', 2),
|
||
],
|
||
|
||
// 线上代发业务报销流程(钉钉 OA 审批):数据源为 operations_replica 的
|
||
// rpt.ding_Workflow 中固定流程编码。明细按“商品ID”关联到共享业务镜像的
|
||
// 商品目录(ops_jst_sku_map / ops_jst_sku)做匹配。页面从共享镜像读取,
|
||
// 不在 HTTP 请求中直连上游。process_code 由环境变量注入,避免在代码中
|
||
// 硬编码审批模板编码;填入前不会同步任何数据。
|
||
'ding_online_daifa_price' => [
|
||
'dataset_key' => 'operations_replica.rpt.ding_online_daifa_price',
|
||
'source_key' => 'operations_replica',
|
||
'process_code' => env('DING_ONLINE_DAIFA_PRICE_PROCESS_CODE', ''),
|
||
'target_table' => 'ding_online_daifa_price_mirror',
|
||
'extend_columns' => true,
|
||
// 同步阶段按商品ID(钉钉表单“商品ID”即 shop_i_id)关联商品目录并写入
|
||
// product_name 列,页面只读镜像、不临时 JOIN 2500 万行的 ops_jst_sku_map。
|
||
'resolve_product_name' => true,
|
||
// 钉钉表单字段名 -> 镜像宽表列。下方列名依据用户提供的演示数据校验,
|
||
// 若实际审批模板字段名不同,仅需调整此映射即可,无需改动同步与页面代码。
|
||
'column_map' => [
|
||
'payee_name' => '收款人全称',
|
||
'product_id' => '商品ID',
|
||
'daifa_trade_no' => '代发交易单号',
|
||
'shop_trade_no' => '店铺交易单号',
|
||
'shop_name' => '店铺名称',
|
||
'supplier_name' => '供应商名称',
|
||
'material_no' => '料号',
|
||
'ship_qty' => '订单发货数量',
|
||
'paid_amount' => '订单实付金额',
|
||
'daifa_amount' => '代发订单金额',
|
||
'price_diff' => '差价',
|
||
],
|
||
// 宽表列类型,决定抽取时的强制转换;字符串列留空即可。
|
||
'column_types' => [
|
||
'ship_qty' => 'int',
|
||
'paid_amount' => 'decimal',
|
||
'daifa_amount' => 'decimal',
|
||
'price_diff' => 'decimal',
|
||
],
|
||
// 若审批模板把“一个商品一行”放在明细表格里,填写该表格的字段名,
|
||
// 同步器会按明细行展开为多条镜像记录;留空则整张表单视为单行。
|
||
'detail_table' => env('DING_ONLINE_DAIFA_PRICE_DETAIL_TABLE', ''),
|
||
// 收款人过滤(可选):默认不过滤,以便页面按收款人展示“刘萧代发”或
|
||
// “1688代发”标签。需要限定公司时可通过环境变量按全称精确匹配。
|
||
'row_filters' => [
|
||
'payee_name' => env('DING_ONLINE_DAIFA_PRICE_PAYEE', ''),
|
||
],
|
||
// 只同步指定审批状态的单据(默认只要“已完成/已通过”,与页面状态口径一致);
|
||
// 未通过/已拒绝/撤回等整单暂不写入镜像。置空则不限状态。
|
||
'only_status' => env('DING_ONLINE_DAIFA_PRICE_ONLY_STATUS', 'COMPLETED'),
|
||
'batch_size' => (int) env('DING_ONLINE_DAIFA_PRICE_MIRROR_BATCH_SIZE', 100),
|
||
'max_batches_per_run' => (int) env('DING_ONLINE_DAIFA_PRICE_MIRROR_MAX_BATCHES', 2),
|
||
],
|
||
|
||
// 只有生产刷新节点写镜像;开发环境和网页请求只读共享结果。
|
||
'refresh_enabled' => env(
|
||
'BUSINESS_MIRROR_REFRESH_ENABLED',
|
||
env('APP_ENV', 'production') === 'production'
|
||
),
|
||
|
||
// 店铺经营报表由生产刷新节点自动完成首次同步并持续增量;开发机只读。
|
||
'store_report' => [
|
||
'enabled' => filter_var(env('STORE_REPORT_MIRROR_ENABLED', true), FILTER_VALIDATE_BOOL),
|
||
'source_key' => 'jiansun',
|
||
'bill_source_object' => 'dbo.jst_originalBillInfo',
|
||
'lifecycle_source_object' => 'dbo.fys_shopInfo_flow',
|
||
'batch_size' => (int) env('STORE_REPORT_MIRROR_BATCH_SIZE', 5000),
|
||
'max_batches_per_run' => (int) env('STORE_REPORT_MIRROR_MAX_BATCHES', 4),
|
||
'lifecycle_batch_size' => (int) env('STORE_REPORT_LIFECYCLE_BATCH_SIZE', 1000),
|
||
'lifecycle_max_batches_per_run' => (int) env('STORE_REPORT_LIFECYCLE_MAX_BATCHES', 5),
|
||
'daily_batch_size' => (int) env('STORE_REPORT_DAILY_BATCH_SIZE', 50000),
|
||
'daily_max_batches_per_run' => (int) env('STORE_REPORT_DAILY_MAX_BATCHES', 10),
|
||
// 原始账单以 Id 追加为主;回看最近行覆盖迟到修正,不扫描 1400 万行更新时间。
|
||
'overlap_rows' => (int) env('STORE_REPORT_MIRROR_OVERLAP_ROWS', 50000),
|
||
],
|
||
|
||
// 聚水潭进销存共享流水镜像:头表按 Id 区间小批读取全部仓库。
|
||
// 三方仓页面在 Repository 层继续固定南昌樵舍仓,进销存报表按全仓库汇总。
|
||
'third_party_warehouse_storage' => [
|
||
'dataset_key' => 'jiansun.third-party-warehouse-storage',
|
||
'source_key' => 'jiansun',
|
||
'warehouse_id' => 15045364,
|
||
'warehouse_name' => '三方-南昌樵舍仓',
|
||
'owner_name' => '常州简尚家居有限公司',
|
||
'header_source_object' => 'dbo.jst_inoutWater',
|
||
'item_source_object' => 'dbo.jst_inoutWaterItem',
|
||
'inventory_source_object' => 'dbo.jst_inventoryInfo',
|
||
'header_scan_size' => (int) env('THIRD_PARTY_WAREHOUSE_HEADER_SCAN_SIZE', 10000),
|
||
'max_header_batches_per_run' => (int) env('THIRD_PARTY_WAREHOUSE_MAX_HEADER_BATCHES', 10),
|
||
'incremental_batch_size' => (int) env('THIRD_PARTY_WAREHOUSE_INCREMENTAL_BATCH_SIZE', 5000),
|
||
'incremental_overlap_hours' => (int) env('THIRD_PARTY_WAREHOUSE_INCREMENTAL_OVERLAP_HOURS', 48),
|
||
'inventory_batch_size' => (int) env('THIRD_PARTY_WAREHOUSE_INVENTORY_BATCH_SIZE', 2000),
|
||
'sync_lock_seconds' => (int) env('THIRD_PARTY_WAREHOUSE_SYNC_LOCK_SECONDS', 21600),
|
||
'generation_retention_hours' => (int) env('THIRD_PARTY_WAREHOUSE_GENERATION_RETENTION_HOURS', 48),
|
||
'stale_after_minutes' => (int) env('THIRD_PARTY_WAREHOUSE_STALE_MINUTES', 1560),
|
||
],
|
||
|
||
'product_prices' => [
|
||
'dataset_key' => 'supplier-payables.product-prices',
|
||
'source_key' => 'operations_replica',
|
||
'source_object' => 'rpt.Bulk_Price_Limit',
|
||
'batch_size' => (int) env('PRODUCT_PRICE_MIRROR_BATCH_SIZE', 500),
|
||
'max_batches_per_run' => (int) env('PRODUCT_PRICE_MIRROR_MAX_BATCHES', 4),
|
||
// 上游完成记录通常不再变化;仍回看 48 小时,覆盖迟到或修正数据。
|
||
'overlap_hours' => (int) env('PRODUCT_PRICE_MIRROR_OVERLAP_HOURS', 48),
|
||
],
|
||
|
||
'product_catalog' => [
|
||
'dataset_key' => 'operations_replica.rpt.jst_sku',
|
||
'batch_size' => (int) env('PRODUCT_CATALOG_MIRROR_BATCH_SIZE', 1000),
|
||
'max_batches_per_run' => (int) env('PRODUCT_CATALOG_MIRROR_MAX_BATCHES', 5),
|
||
'stale_after_minutes' => (int) env('PRODUCT_CATALOG_MIRROR_STALE_MINUTES', 10),
|
||
'full_reconcile_hours' => (int) env('PRODUCT_CATALOG_MIRROR_FULL_RECONCILE_HOURS', 168),
|
||
// 每周日凌晨 02:00-08:00 可启动到期校准;启动后按断点持续到完成。
|
||
'reconcile_weekday' => (int) env('PRODUCT_CATALOG_MIRROR_RECONCILE_WEEKDAY', 0),
|
||
'reconcile_start_hour' => (int) env('PRODUCT_CATALOG_MIRROR_RECONCILE_START_HOUR', 2),
|
||
'reconcile_window_hours' => (int) env('PRODUCT_CATALOG_MIRROR_RECONCILE_WINDOW_HOURS', 6),
|
||
],
|
||
|
||
'product_purchase_prices' => [
|
||
'dataset_key' => 'product-inventory.purchase-order-prices',
|
||
'source_key' => 'jiansun',
|
||
'source_object' => 'dbo.jst_purchase + dbo.jst_purchaseItem',
|
||
'batch_size' => (int) env('PRODUCT_PURCHASE_PRICE_MIRROR_BATCH_SIZE', 1000),
|
||
'max_batches_per_run' => (int) env('PRODUCT_PURCHASE_PRICE_MIRROR_MAX_BATCHES', 5),
|
||
'overlap_hours' => (int) env('PRODUCT_PURCHASE_PRICE_MIRROR_OVERLAP_HOURS', 48),
|
||
'full_reconcile_hours' => (int) env('PRODUCT_PURCHASE_PRICE_MIRROR_FULL_RECONCILE_HOURS', 168),
|
||
'reconcile_weekday' => (int) env('PRODUCT_PURCHASE_PRICE_MIRROR_RECONCILE_WEEKDAY', 0),
|
||
'reconcile_start_hour' => (int) env('PRODUCT_PURCHASE_PRICE_MIRROR_RECONCILE_START_HOUR', 2),
|
||
'reconcile_window_hours' => (int) env('PRODUCT_PURCHASE_PRICE_MIRROR_RECONCILE_WINDOW_HOURS', 6),
|
||
],
|
||
|
||
'courier_information' => [
|
||
'stale_after_minutes' => (int) env('COURIER_INFORMATION_MIRROR_STALE_MINUTES', 60),
|
||
],
|
||
|
||
// 快递附加费结算要求所有必需镜像都完成首次同步;页面按最旧数据集
|
||
// 的成功时间判断新鲜度,不把尚未核对的审核文本扩大为已通过数据。
|
||
'courier_surcharge_settlement' => [
|
||
'stale_after_minutes' => (int) env('COURIER_SURCHARGE_SETTLEMENT_MIRROR_STALE_MINUTES', 60),
|
||
// 聚水潭现有审核文本使用“同意”和“同意记账”;“通过”保留给
|
||
// 后续上游版本,不能把任意非空文本当作审核通过。
|
||
'approved_values' => ['通过', '同意', '同意记账'],
|
||
],
|
||
|
||
// 工作平台退货取件管理:客服取件单按天更新,允许比快递资料更长的同步间隔。
|
||
'return_pickup' => [
|
||
'stale_after_minutes' => (int) env('RETURN_PICKUP_MIRROR_STALE_MINUTES', 180),
|
||
],
|
||
|
||
// 工作平台采购价格按 SKU 补充到普通商品资料;页面只读取共享镜像。
|
||
'work_platform_prices' => [
|
||
'dataset_key' => 'jiansun.dbo.pm_priceAdjustment',
|
||
'target_table' => 'js_pm_price_adjustment',
|
||
],
|
||
|
||
// 普通商品资料变价明细:pm_priceAdjustment_log,按商品编码取最近一条 priceType=1(变价)。
|
||
'product_price_changes' => [
|
||
'dataset_key' => 'jiansun.dbo.pm_priceAdjustment_log',
|
||
'target_table' => 'js_pm_price_adjustment_log',
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| 上游原表镜像目录
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| 页面不能再按“页码 + 筛选条件”临时生成一份快照。这里登记项目代码实际
|
||
| 使用的上游表/视图,由后台按表同步到 caiwu_business_mirror。首次全量
|
||
| 必须显式执行;日常任务只续传已完成首次全量的数据集。
|
||
|
|
||
| watermark_column 为空时按稳定业务键追加,并依靠周期全量校准修正历史
|
||
| 更新和删除;存在可靠更新时间时使用重叠窗口增量同步。
|
||
*/
|
||
'table_sync' => [
|
||
'batch_size' => (int) env('BUSINESS_MIRROR_TABLE_BATCH_SIZE', 500),
|
||
'max_batches_per_run' => (int) env('BUSINESS_MIRROR_TABLE_MAX_BATCHES', 2),
|
||
'max_datasets_per_run' => (int) env('BUSINESS_MIRROR_MAX_DATASETS', 1),
|
||
'overlap_hours' => (int) env('BUSINESS_MIRROR_OVERLAP_HOURS', 48),
|
||
'full_reconcile_hours' => (int) env('BUSINESS_MIRROR_FULL_RECONCILE_HOURS', 168),
|
||
'dedicated_datasets' => [
|
||
'operations_replica.rpt.jst_sku',
|
||
],
|
||
],
|
||
|
||
'datasets' => [
|
||
// 经营分析副本库:组织资料、订单、退款和聚水潭基础数据。
|
||
// 快递附加费结算:只同步上游审核字段已核对的“通过/同意/同意记账”明细;
|
||
// 页面通过共享镜像读取,不在请求中直连聚水潭。
|
||
'jiansun.dbo.ekf_Bookkeeping' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'ekf_Bookkeeping',
|
||
'target' => 'js_ekf_bookkeeping_surcharge', 'keys' => ['Id'], 'watermark' => 'CreationTime',
|
||
'columns' => [
|
||
'Id', 'CreationTime', 'OrderNum', 'ExpressNum', 'ExpressName', 'ShopCode',
|
||
'Province', 'City', 'District', 'Address', 'SupplierName', 'SkuName', 'SkuCode', 'Result', 'UserName',
|
||
'Payfee', 'SecodaryCause', 'ReasonId', 'State', 'Delete', 'IsAgreeReason',
|
||
'ProcessingState', 'BookkeepingName', 'PayTime', 'Svolume', 'Skuweight',
|
||
'IfReturn', 'IfBuckle', 'FuZhuMain', 'FuZhuMinor', 'ShipExpressName',
|
||
'expressCause', 'receivingDepartment', 'returnCost', 'shopproid',
|
||
],
|
||
'fixed_filters' => ['IsAgreeReason' => ['通过', '同意', '同意记账']],
|
||
'indexes' => [['ExpressNum', 'Id'], ['OrderNum(100)', 'Id'], ['shopproid(100)', 'Id'], ['CreationTime', 'Id']],
|
||
],
|
||
'jiansun.dbo.express_Original' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'express_Original',
|
||
'target' => 'js_express_original', 'keys' => ['Id'], 'watermark' => 'DeliveryTime',
|
||
'columns' => [
|
||
'Id', 'ExpressName', 'OrderNum', 'DeliveryTime', 'Weight', 'TotalFreight',
|
||
'Lenght', 'Width', 'Height', 'Volume', 'SkuCode', 'JiaoYiNum', 'SkuName',
|
||
'ShopName', 'SetMoney', 'SetWeight', 'ProCode', 'Reason', 'shopproid', 'paytime',
|
||
],
|
||
'indexes' => [['OrderNum', 'Id'], ['JiaoYiNum', 'Id'], ['shopproid(100)', 'Id']],
|
||
],
|
||
'jiansun.dbo.ekf_BookkeepingConfig' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'ekf_BookkeepingConfig',
|
||
'target' => 'js_ekf_bookkeeping_config', 'keys' => ['Id'], 'watermark' => 'CreateTime',
|
||
'columns' => ['Id', 'Name', 'ParentId', 'CreateTime'],
|
||
'indexes' => [['ParentId', 'Id']],
|
||
],
|
||
'jiansun.dbo.ekf_rCheck_Piece' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'ekf_rCheck_Piece',
|
||
'target' => 'js_ekf_rcheck_piece', 'keys' => ['Id'], 'watermark' => 'UpdateTime',
|
||
'columns' => [
|
||
'Id', 'CheckType', 'ExpressNum', 'OrderNum', 'CheckSDType', 'CheckReason',
|
||
'State', 'Accounting', 'ReturnState', 'CreationTime', 'UpdateTime', 'Delete',
|
||
'OmsSDName', 'DHLName', 'SkuCode', 'shopproid',
|
||
],
|
||
'indexes' => [['ExpressNum', 'OrderNum(100)', 'Id'], ['shopproid(100)', 'Id']],
|
||
],
|
||
'jiansun.dbo.ekf_rCheckPieceConfig' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'ekf_rCheckPieceConfig',
|
||
'target' => 'js_ekf_rcheck_piece_config', 'keys' => ['Id'], 'watermark' => 'CreateTime',
|
||
'columns' => ['Id', 'ParentId', 'Name', 'Code', 'Type', 'Delete', 'CreateTime'],
|
||
'indexes' => [['ParentId', 'Id']],
|
||
],
|
||
'operations_replica.rpt.fys_companyInfo' => ['source_key' => 'operations_replica', 'schema' => 'rpt', 'object' => 'fys_companyInfo', 'target' => 'ops_fys_company_info', 'keys' => ['Id'], 'watermark' => 'updateTIme'],
|
||
'operations_replica.rpt.fys_shopInfo' => ['source_key' => 'operations_replica', 'schema' => 'rpt', 'object' => 'fys_shopInfo', 'target' => 'ops_fys_shop_info', 'keys' => ['Id'], 'watermark' => 'updateTime'],
|
||
'operations_replica.rpt.fys_TrademarkInfo' => ['source_key' => 'operations_replica', 'schema' => 'rpt', 'object' => 'fys_TrademarkInfo', 'target' => 'ops_fys_trademark_info', 'keys' => ['Id'], 'watermark' => 'updateTime'],
|
||
'operations_replica.rpt.jst_Orders' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'jst_Orders',
|
||
'target' => 'ops_jst_orders',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'updateTime',
|
||
'indexes' => [
|
||
['o_id', 'Id'],
|
||
['order_date', 'o_id', 'Id'],
|
||
// 账单明细按线上订单号 so_id 关联订单表;缺这个索引会让关联退化成百万行全表扫描。
|
||
// SQL Server 的历史 so_id 字段可能超过 MariaDB 联合索引上限;
|
||
// 订单号关联使用前 64 个字符已覆盖实际单号格式,同时保留 Id 唯一定位。
|
||
['so_id(64)', 'Id'],
|
||
],
|
||
],
|
||
'operations_replica.rpt.jst_OrderItem' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'jst_OrderItem',
|
||
'target' => 'ops_jst_order_item',
|
||
'keys' => ['Id'],
|
||
'indexes' => [
|
||
['o_id', 'Id'],
|
||
],
|
||
],
|
||
'operations_replica.rpt.jst_sku' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'jst_sku',
|
||
'target' => 'ops_jst_sku',
|
||
'keys' => ['autoid'],
|
||
'watermark' => 'modified',
|
||
'indexes' => [
|
||
['sku_type', 'autoid'],
|
||
['sku_type', 'i_id', 'autoid'],
|
||
['sku_type', 'sku_id', 'autoid'],
|
||
['sku_id', 'autoid'],
|
||
['sku_type', 'enabled', 'autoid'],
|
||
['sku_type', 'stock_disabled', 'autoid'],
|
||
],
|
||
],
|
||
'operations_replica.rpt.jst_warehouseInfo' => ['source_key' => 'operations_replica', 'schema' => 'rpt', 'object' => 'jst_warehouseInfo', 'target' => 'ops_jst_warehouse_info', 'keys' => ['Id'], 'watermark' => 'updateTime', 'indexes' => [['wms_co_id', 'Id']]],
|
||
'operations_replica.rpt.jst_skumap' => ['source_key' => 'operations_replica', 'schema' => 'rpt', 'object' => 'jst_skumap', 'target' => 'ops_jst_sku_map', 'keys' => ['shop_id', 'shop_i_id', 'shop_sku_id'], 'watermark' => 'modifiedTime'],
|
||
// item_id 是 nvarchar(100),镜像中按宽表策略保存为 LONGTEXT,不能进入普通索引。
|
||
'operations_replica.rpt.ads_itemid_sales_cost_ratio_v2_di' => ['source_key' => 'operations_replica', 'schema' => 'rpt', 'object' => 'ads_itemid_sales_cost_ratio_v2_di', 'target' => 'ops_item_sales_cost_ratio', 'keys' => ['stat_date', 'item_id'], 'watermark' => 'item_id_update', 'indexes' => [['stat_date', 'push_fee']]],
|
||
'operations_replica.rpt.jst_returnAndRefundInfo' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'jst_returnAndRefundInfo',
|
||
'target' => 'ops_jst_return_refund_info',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'updateTime',
|
||
'indexes' => [
|
||
['as_date', 'Id'],
|
||
['o_id', 'Id'],
|
||
['as_id', 'Id'],
|
||
],
|
||
],
|
||
'operations_replica.rpt.jst_returnAndRefundItem' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'jst_returnAndRefundItem',
|
||
'target' => 'ops_jst_return_refund_item',
|
||
'keys' => ['Id'],
|
||
'indexes' => [
|
||
['as_id', 'Id'],
|
||
],
|
||
],
|
||
'operations_replica.rpt.jst_shopInfo' => ['source_key' => 'operations_replica', 'schema' => 'rpt', 'object' => 'jst_shopInfo', 'target' => 'ops_jst_shop_info', 'keys' => ['Id'], 'watermark' => 'updateTime'],
|
||
'operations_replica.rpt.jst_originalBillInfo' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'jst_originalBillInfo',
|
||
'target' => 'ops_jst_original_bill_info',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'updateTime',
|
||
'columns' => [
|
||
'Id', 'shop_id', 'channel', 'fee_time', 'del_flag', 'primary_key',
|
||
'createTime', 'updateTime', 'auto_id', 'fee_name', 'inout_type',
|
||
'oc_amount', 'p_auto_id', 'shop_i_id', 'shop_sku_id', 'sku_id',
|
||
'so_id', 'combine_type', 'amount',
|
||
],
|
||
'indexes' => [
|
||
['Id'],
|
||
['shop_id', 'fee_time', 'Id'],
|
||
['fee_time', 'Id'],
|
||
['channel', 'fee_time', 'Id', 'inout_type', 'amount'],
|
||
['channel', 'shop_id', 'fee_time', 'Id', 'inout_type', 'amount', 'fee_name'],
|
||
],
|
||
],
|
||
|
||
// JSDataMiddlePlatform 中台库:京东京准通账单流水。京东营销账户余额页按
|
||
// show_date 归属月份,并以 settle_datetime + id 确定月末最后一条余额。
|
||
'js_data_middle_platform.dbo.jd_jzt_finance_records' => [
|
||
'source_key' => 'js_data_middle_platform',
|
||
'schema' => 'dbo',
|
||
'object' => 'jd_jzt_finance_records',
|
||
'target' => 'jsm_jd_jzt_finance_records',
|
||
'keys' => ['id'],
|
||
'watermark' => 'updated_at',
|
||
'columns' => [
|
||
'id', 'data_month', 'shop_name', 'in_out_type', 'in_out_type_name',
|
||
'amount', 'balance_amount', 'settle_datetime', 'show_date', 'updated_at',
|
||
],
|
||
'indexes' => [
|
||
['show_date', 'settle_datetime', 'id'],
|
||
['shop_name(128)', 'show_date', 'settle_datetime', 'id'],
|
||
],
|
||
],
|
||
|
||
// 聚水潭聚工单:协同工单列表。只复制工单查询需要的非敏感字段,
|
||
// 正式 API 从共享镜像关联“仓内未发”类型,不在请求中直连上游。
|
||
'operations_replica.rpt.work_order_main' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'work_order_main',
|
||
'target' => 'ops_work_order_main',
|
||
'keys' => ['id'],
|
||
'watermark' => 'update_time',
|
||
'columns' => [
|
||
'id', 'work_type', 'order_no', 'title', 'status', 'create_user',
|
||
'expect_minute', 'submit_time', 'expect_end_time', 'end_time',
|
||
'score', 'update_user', 'description', 'is_deleted', 'create_time',
|
||
'update_time',
|
||
],
|
||
'indexes' => [
|
||
['work_type', 'id'],
|
||
['work_type', 'create_time', 'id'],
|
||
['create_time', 'id'],
|
||
],
|
||
],
|
||
'operations_replica.rpt.work_order_sub' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'work_order_sub',
|
||
'target' => 'ops_work_order_sub',
|
||
'keys' => ['id'],
|
||
'watermark' => 'update_time',
|
||
'columns' => [
|
||
'id', 'sub_order_no', 'main_order_no', 'title', 'assign_user',
|
||
'status', 'expect_minute', 'submit_time', 'expect_end_time',
|
||
'finish_time', 'content', 'notify_submit', 'notify_soon',
|
||
'notify_overdue', 'overdue_notify_count', 'is_deleted',
|
||
'create_time', 'update_time', 'taskid',
|
||
],
|
||
'indexes' => [
|
||
['id'],
|
||
['main_order_no', 'id'],
|
||
],
|
||
],
|
||
'operations_replica.rpt.work_order_form_config' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'work_order_form_config',
|
||
'target' => 'ops_work_order_form_config',
|
||
'keys' => ['id'],
|
||
'watermark' => 'update_time',
|
||
'columns' => [
|
||
'id', 'work_type', 'work_type_name', 'group_name', 'icon',
|
||
'icon_color', 'time_limit_options', 'is_enabled', 'form_fields',
|
||
'sort', 'remark', 'create_time', 'update_time',
|
||
'timeout_reminder_count',
|
||
],
|
||
'indexes' => [
|
||
['work_type', 'id'],
|
||
['work_type_name', 'id'],
|
||
],
|
||
],
|
||
'operations_replica.rpt.work_order_form_value' => [
|
||
'source_key' => 'operations_replica',
|
||
'schema' => 'rpt',
|
||
'object' => 'work_order_form_value',
|
||
'target' => 'ops_work_order_form_value',
|
||
'keys' => ['id'],
|
||
'watermark' => null,
|
||
'columns' => [
|
||
'id', 'main_order_no', 'field_code', 'field_name', 'field_value',
|
||
'field_type', 'sort', 'is_deleted', 'create_time',
|
||
],
|
||
'indexes' => [
|
||
['sort', 'id'],
|
||
['main_order_no', 'sort', 'id'],
|
||
],
|
||
],
|
||
|
||
// 聚水潭聚工单:协同工单 > 打款工单 > 小额打款。
|
||
// 页面只读共享镜像;businessFieldList 保留上游表单原文,由固定
|
||
// Mirror Repository 解析页面明确使用的字段,不在 HTTP 请求直连上游。
|
||
'jiansun.dbo.jst_workOrderInfo' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'jst_workOrderInfo',
|
||
'target' => 'js_jst_work_order_info',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'updateTime',
|
||
'columns' => [
|
||
'Id', 'woNo', 'woTypeId', 'title', 'content', 'status', 'grade',
|
||
'urging', 'createby', 'executors', 'beginTime', 'endTime',
|
||
'completer', 'completeTime', 'updated', 'created',
|
||
'businessFieldList', 'createTime', 'updateTime',
|
||
],
|
||
'indexes' => [
|
||
['woTypeId', 'woNo', 'Id'],
|
||
['created', 'Id'],
|
||
],
|
||
],
|
||
'jiansun.dbo.jst_small_payment_order_map' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'jst_small_payment_order_map',
|
||
'target' => 'js_jst_small_payment_order_map',
|
||
'keys' => ['woNo'],
|
||
'watermark' => 'updated_at',
|
||
'columns' => [
|
||
'woNo', 'woTypeId', 'transaction_no', 'shop_name',
|
||
'payment_reason', 'title', 'status', 'work_order_create_time',
|
||
'work_order_update_time', 'parse_status', 'parse_error',
|
||
'updated_at',
|
||
],
|
||
'indexes' => [
|
||
['woTypeId', 'work_order_create_time', 'woNo'],
|
||
['status', 'woNo'],
|
||
],
|
||
],
|
||
|
||
// JianSun 旧业务库:拼多多货款、营销账单、供应商应付、板材、封边条和库存。
|
||
// 拼多多货款账单只复制平台原始账单中的固定渠道切片,避免为该页面
|
||
// 重复同步上游 1400 万行原表,也不依赖慢一天的经营分析副本。
|
||
'jiansun.dbo.jst_originalBillInfo.pinduoduo_receiving' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'jst_originalBillInfo',
|
||
'target' => 'js_jst_pdd_receiving_bill_rows',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'updateTime',
|
||
'fixed_filters' => [
|
||
'channel' => 'PinduoduoImport',
|
||
],
|
||
'columns' => [
|
||
'Id', 'shop_id', 'channel', 'fee_time', 'del_flag', 'primary_key',
|
||
'createTime', 'updateTime', 'auto_id', 'fee_name', 'inout_type',
|
||
'oc_amount', 'p_auto_id', 'shop_i_id', 'shop_sku_id', 'sku_id',
|
||
'so_id', 'combine_type', 'amount',
|
||
],
|
||
'indexes' => [
|
||
['Id'],
|
||
['fee_time', 'Id', 'inout_type', 'amount'],
|
||
['shop_id', 'fee_time', 'Id', 'inout_type', 'amount', 'fee_name'],
|
||
['fee_name'],
|
||
],
|
||
],
|
||
// 聚水潭得物货款账户:复制主账单、退货退款和其他费用扣减渠道;
|
||
// 保证金及其他账户域流水不混入店铺收款账户页面。
|
||
'jiansun.dbo.jst_originalBillInfo.dewu_receiving' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'jst_originalBillInfo',
|
||
'target' => 'js_jst_dewu_receiving_bill_rows',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'updateTime',
|
||
'fixed_filters' => [
|
||
'channel' => ['Dewu', 'DewuTK', 'DewuKJ'],
|
||
],
|
||
'columns' => [
|
||
'Id', 'shop_id', 'channel', 'fee_time', 'del_flag', 'primary_key',
|
||
'createTime', 'updateTime', 'auto_id', 'fee_name', 'inout_type',
|
||
'oc_amount', 'p_auto_id', 'shop_i_id', 'shop_sku_id', 'sku_id',
|
||
'so_id', 'combine_type', 'amount',
|
||
],
|
||
'indexes' => [
|
||
['Id'],
|
||
['fee_time', 'Id', 'inout_type', 'amount'],
|
||
['shop_id', 'fee_time', 'Id', 'inout_type', 'amount', 'fee_name'],
|
||
['fee_name'],
|
||
],
|
||
],
|
||
'jiansun.dbo.alipay_Bill_Detail' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'alipay_Bill_Detail',
|
||
'target' => 'js_alipay_bill_detail',
|
||
'keys' => ['Id'],
|
||
'watermark' => null,
|
||
'columns' => [
|
||
'Id', 'accountNum', 'businessNum', 'merchantOrder', 'commodityName',
|
||
'happenTime', 'oppAccount', 'inAmount', 'outAmount', 'accountAmount',
|
||
'tradeChannel', 'businessType', 'remark', 'shopName', 'date',
|
||
'busiBillSource', 'busiDescription', 'busiNum', 'busiBasicNum',
|
||
'buyerRemark', 'storeNum', 'appId', 'account', 'bindingType',
|
||
],
|
||
'indexes' => [
|
||
['happenTime', 'Id'],
|
||
],
|
||
],
|
||
'jiansun.dbo.tmall_spread_bills' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'tmall_spread_bills', 'target' => 'js_tmall_spread_bills', 'keys' => ['id']],
|
||
'jiansun.dbo.pdd_spread_bills' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pdd_spread_bills', 'target' => 'js_pdd_spread_bills', 'keys' => ['id'], 'watermark' => 'createTime'],
|
||
'jiansun.dbo.alibaba_bill' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'alibaba_bill', 'target' => 'js_alibaba_bill', 'keys' => ['id']],
|
||
'jiansun.dbo.jd_spreadBills' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'jd_spreadBills', 'target' => 'js_jd_spread_bills', 'keys' => ['id'], 'watermark' => 'updateTime'],
|
||
'jiansun.dbo.jd_costBills' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'jd_costBills', 'target' => 'js_jd_cost_bills', 'keys' => ['id'], 'watermark' => 'creatTime'],
|
||
// 安装明细页面使用已整理的只读视图,避免在 HTTP 请求中临时 JOIN
|
||
// 安装主表和明细表;视图中的安装字段与 Excel 模板字段保持稳定别名。
|
||
'jiansun.dbo.fys_Ticketing_install_view' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'fys_Ticketing_install_view',
|
||
'target' => 'js_fys_ticketing_install_view',
|
||
'keys' => ['Id'],
|
||
'watermark' => null,
|
||
'indexes' => [
|
||
['SubmitTime', 'Id'],
|
||
],
|
||
],
|
||
'jiansun.dbo.fys_Ticketing_install_item' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'fys_Ticketing_install_item',
|
||
'target' => 'js_fys_ticketing_install_item', 'keys' => ['Id'], 'watermark' => 'modifyTime',
|
||
'indexes' => [['guid', 'Id']],
|
||
],
|
||
'jiansun.dbo.finance_purchaseReturn' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'finance_purchaseReturn', 'target' => 'js_finance_purchase_return', 'keys' => ['id']],
|
||
'jiansun.dbo.finance_invoiceDeduction' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'finance_invoiceDeduction', 'target' => 'js_finance_invoice_deduction', 'keys' => ['id'], 'watermark' => 'createTime'],
|
||
'jiansun.dbo.fys_supplierPaymentSummary' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'fys_supplierPaymentSummary', 'target' => 'js_supplier_payment_summary', 'keys' => ['id'], 'watermark' => 'modifiedTime'],
|
||
'jiansun.dbo.finance_advanceLoans' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'finance_advanceLoans', 'target' => 'js_finance_advance_loans', 'keys' => ['id'], 'watermark' => 'createTime'],
|
||
'jiansun.dbo.pm_unOrderDetails' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_unOrderDetails', 'target' => 'js_pm_unorder_details', 'keys' => ['Id']],
|
||
'jiansun.dbo.finance_sampleDeduction' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'finance_sampleDeduction', 'target' => 'js_finance_sample_deduction', 'keys' => ['id'], 'watermark' => 'finishTime'],
|
||
'jiansun.dbo.fys_express_courier_settlement' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'fys_express_courier_settlement', 'target' => 'js_express_courier_settlement', 'keys' => ['Id'], 'watermark' => 'modify_time'],
|
||
'jiansun.dbo.jst_order_express_details' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'jst_order_express_details',
|
||
'target' => 'js_jst_order_express_details', 'keys' => ['id'], 'watermark' => 'updatedAt',
|
||
'indexes' => [
|
||
['send_time', 'id'], ['inner_order_id', 'id'], ['id', 'logistic_id'],
|
||
['logistic_id', 'so_id(64)', 'id'], ['logistic_id', 'id'],
|
||
],
|
||
'columns' => [
|
||
'id', 'updatedAt', 'inner_order_id', 'so_id', 'logistic_id', 'logistic_company_name',
|
||
'logistic_status_name', 'platform_name', 'shop_name', 'warehouse_name', 'send_time',
|
||
'weight', 'f_weight',
|
||
],
|
||
],
|
||
'jiansun.dbo.Jst_SendData_View_extension' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'Jst_SendData_View_extension',
|
||
'target' => 'js_jst_send_data_view_extension', 'keys' => ['Id'], 'watermark' => null,
|
||
'indexes' => [['so_id', 'Id'], ['io_id', 'Id'], ['so_id', 'Id', 'io_id']],
|
||
'columns' => [
|
||
'Id', 'io_id', 'qty', 'l', 'w', 'h', 'sku_ids', 'sku_name', 'so_id', 'shop_site',
|
||
'shop_name', 'shop_i_id', 'supplier_name', 'receiver_state', 'receiver_city',
|
||
'receiver_district', 'expressName', 'wareHoursName', 'volume', 'weight',
|
||
],
|
||
],
|
||
// 只同步运费对账需要的出库字段,不复制收货电话、买家信息等敏感列。
|
||
'jiansun.dbo.jst_salesOutboundInfo' => [
|
||
'source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'jst_salesOutboundInfo',
|
||
'target' => 'js_jst_sales_outbound_info', 'keys' => ['Id'], 'watermark' => 'updateTime',
|
||
'indexes' => [['io_id', 'Id'], ['io_id', 'Id', 'freight']],
|
||
'columns' => ['Id', 'io_id', 'modified', 'updateTime', 'f_weight', 'weight', 'f_freight', 'freight', 'pay_date', 'volume', 'f_volume'],
|
||
],
|
||
'jiansun.dbo.finance_boardDeduction' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'finance_boardDeduction', 'target' => 'js_finance_board_deduction', 'keys' => ['id']],
|
||
'jiansun.dbo.pm_plainPlateData' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_plainPlateData', 'target' => 'js_pm_plain_plate_data', 'keys' => ['Id'], 'watermark' => 'createTime'],
|
||
'jiansun.dbo.pm_boardPurchasePrice' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_boardPurchasePrice', 'target' => 'js_pm_board_purchase_price', 'keys' => ['id'], 'watermark' => 'updateTime'],
|
||
'jiansun.dbo.pm_boardPriceChangeImport' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_boardPriceChangeImport', 'target' => 'js_pm_board_price_change', 'keys' => ['id'], 'watermark' => 'createTime'],
|
||
'jiansun.dbo.pm_boardApplyDetail' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_boardApplyDetail', 'target' => 'js_pm_board_apply_detail', 'keys' => ['Id']],
|
||
'jiansun.dbo.pm_edgeBandData' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_edgeBandData', 'target' => 'js_pm_edge_band_data', 'keys' => ['id'], 'watermark' => 'createTime'],
|
||
'jiansun.dbo.pm_edgeBandApplyDetail' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_edgeBandApplyDetail', 'target' => 'js_pm_edge_band_apply_detail', 'keys' => ['Id']],
|
||
'jiansun.dbo.pm_edgeBandProfitInfo' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_edgeBandProfitInfo', 'target' => 'js_pm_edge_band_profit_info', 'keys' => ['id']],
|
||
'jiansun.dbo.finance_edgeBandDeductio' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'finance_edgeBandDeductio', 'target' => 'js_finance_edge_band_deduction', 'keys' => ['id']],
|
||
'jiansun.dbo.pm_averageUnitPrice' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_averageUnitPrice', 'target' => 'js_pm_average_unit_price', 'keys' => ['id']],
|
||
'jiansun.dbo.pm_boardInventoryDetail_snapshot' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_boardInventoryDetail_snapshot', 'target' => 'js_pm_board_inventory_snapshot', 'keys' => ['id']],
|
||
'jiansun.dbo.fys_supplierGoods_sttlement_purchase' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'fys_supplierGoods_sttlement_purchase', 'target' => 'js_supplier_goods_purchase', 'keys' => ['Id'], 'watermark' => 'createTime'],
|
||
'jiansun.dbo.fys_supplierGoods_sttlement_sale' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'fys_supplierGoods_sttlement_sale', 'target' => 'js_supplier_goods_sale', 'keys' => ['Id'], 'watermark' => 'createTime'],
|
||
'jiansun.dbo.pm_purchaseIn' => ['source_key' => 'jiansun', 'schema' => 'dbo', 'object' => 'pm_purchaseIn', 'target' => 'js_pm_purchase_in', 'keys' => ['id'], 'watermark' => 'updateTime'],
|
||
// 工作平台采购价格:skuCode 对应 ops_jst_sku.sku_id。源表没有可靠更新时间,
|
||
// 以 Id 稳定追加,页面按 effectTime 取当前已生效的最新价格。
|
||
'jiansun.dbo.pm_priceAdjustment' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'pm_priceAdjustment',
|
||
'target' => 'js_pm_price_adjustment',
|
||
'keys' => ['Id'],
|
||
'watermark' => null,
|
||
'columns' => ['Id', 'skuCode', 'purchasePrice', 'effectTime'],
|
||
'indexes' => [
|
||
['skuCode', 'effectTime', 'Id'],
|
||
['effectTime', 'Id'],
|
||
],
|
||
],
|
||
|
||
// 变价明细(采购价变价历史):skucode 对应 ops_jst_sku.sku_id;页面取最近一条 priceType=1。
|
||
'jiansun.dbo.pm_priceAdjustment_log' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'pm_priceAdjustment_log',
|
||
'target' => 'js_pm_price_adjustment_log',
|
||
'keys' => ['Id'],
|
||
'watermark' => null,
|
||
'columns' => ['Id', 'skucode', 'priceType', 'originalPrice', 'afterPrice', 'diffPrice', 'effectStartTime', 'effectEndTime', 'createTime'],
|
||
'indexes' => [
|
||
['skucode', 'effectStartTime', 'Id'],
|
||
['Id'],
|
||
],
|
||
],
|
||
|
||
// 工作平台 2.0:快递资料及其网点、打款账户。页面只读取共享镜像,
|
||
// 首次使用前需由刷新节点显式执行对应数据集的 --full 同步。
|
||
'jiansun.dbo.wp_express' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'wp_express',
|
||
'target' => 'js_wp_express',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'modified',
|
||
'indexes' => [
|
||
['expcode'],
|
||
['status', 'Id'],
|
||
],
|
||
],
|
||
'jiansun.dbo.wp_express_expNet' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'wp_express_expNet',
|
||
'target' => 'js_wp_express_exp_net',
|
||
'keys' => ['id'],
|
||
'indexes' => [
|
||
['expid', 'id'],
|
||
['status', 'id'],
|
||
],
|
||
],
|
||
'jiansun.dbo.wp_express_account' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'wp_express_account',
|
||
'target' => 'js_wp_express_account',
|
||
'keys' => ['Id'],
|
||
'indexes' => [
|
||
['expcode', 'Id'],
|
||
['accountType', 'Id'],
|
||
],
|
||
],
|
||
'jiansun.dbo.wp_express_extension' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'wp_express_extension',
|
||
'target' => 'js_wp_express_extension',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'modifyTime',
|
||
],
|
||
|
||
// 工作平台 2.0:客服系统 → 退款数据 → 退货取件管理(主表 + 明细 + 实退快递单号映射)。
|
||
// 逆向物流运费核算与退件跟踪页面只读取共享镜像,不在请求中直连工作平台库。
|
||
'jiansun.dbo.ekf_ReturnPickupManagement' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'ekf_ReturnPickupManagement',
|
||
'target' => 'js_ekf_return_pickup_management',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'updateTime',
|
||
'columns' => [
|
||
'Id', 'orderId', 'urgencyLevel', 'expectedPickupTime', 'orderStatus', 'returnExpressNo',
|
||
'paymentMethod', 'pickupType', 'shopName', 'transactionNo', 'senderName', 'senderPhone',
|
||
'province', 'city', 'district', 'street', 'address', 'note', 'issueType', 'issueDescription',
|
||
'expressFollowStatus', 'expressFollowResult', 'expressFollowDescription',
|
||
'expressOrderTime', 'expressPickupTime', 'creator', 'createTime', 'updateTime', 'guid',
|
||
'totalReturnQuantity', 'express_company', 'extend', 'canceler', 'sourceFrom',
|
||
],
|
||
'indexes' => [
|
||
['orderId', 'Id'],
|
||
['createTime', 'Id'],
|
||
['updateTime', 'Id'],
|
||
['express_company', 'createTime', 'Id'],
|
||
['transactionNo', 'Id'],
|
||
],
|
||
],
|
||
'jiansun.dbo.ekf_ReturnPickupManagement_Item' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'ekf_ReturnPickupManagement_Item',
|
||
'target' => 'js_ekf_return_pickup_management_item',
|
||
'keys' => ['id'],
|
||
'watermark' => 'updatedTime',
|
||
'columns' => [
|
||
'id', 'mainTableId', 'returnProcode', 'returnQuantity', 'barcode', 'platformProductId',
|
||
'platformSkuId', 'warehouse', 'receiverName', 'receiverPhone', 'receiverAddress',
|
||
'actualReturnOrderNo', 'actualReturnQuantity', 'unverifiedQuantity', 'returnProgress',
|
||
'productName', 'length', 'width', 'height', 'volume', 'grossWeight', 'estimatedFreight',
|
||
'updatedTime', 'actualReturnProcode',
|
||
],
|
||
'indexes' => [
|
||
['mainTableId', 'id'],
|
||
['barcode', 'id'],
|
||
['returnProcode', 'id'],
|
||
['updatedTime', 'id'],
|
||
],
|
||
],
|
||
'jiansun.dbo.ekf_ReturnPickupManagement_TruthReExpressNumber' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'ekf_ReturnPickupManagement_TruthReExpressNumber',
|
||
'target' => 'js_ekf_return_pickup_truth_express',
|
||
'keys' => ['Id'],
|
||
'watermark' => 'createTime',
|
||
'columns' => ['Id', 'mId', 'truthExpressNumber', 'createTime'],
|
||
'indexes' => [
|
||
['mId', 'Id'],
|
||
['truthExpressNumber', 'Id'],
|
||
['createTime', 'Id'],
|
||
],
|
||
],
|
||
// 工作平台仓库资料:退货取件明细的「发货仓」同时存在工作平台短码
|
||
// (wp_warehouse.code / wp_warehouseConfig.whCode,如 2852)和聚水潭
|
||
// wms_co_id(如 15038426)。短码名称只从工作平台仓库表解析;这两张表
|
||
// 都很小,页面与导出经共享镜像读取,不直连上游。
|
||
'jiansun.dbo.wp_warehouse' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'wp_warehouse',
|
||
'target' => 'js_wp_warehouse',
|
||
'keys' => ['id'],
|
||
'watermark' => 'modified',
|
||
'columns' => ['id', 'code', 'name', 'status', 'modified'],
|
||
'indexes' => [
|
||
['code', 'id'],
|
||
],
|
||
],
|
||
// wp_warehouseConfig 没有更新时间列,按主键追加并依靠周期全量校准。
|
||
'jiansun.dbo.wp_warehouseConfig' => [
|
||
'source_key' => 'jiansun',
|
||
'schema' => 'dbo',
|
||
'object' => 'wp_warehouseConfig',
|
||
'target' => 'js_wp_warehouse_config',
|
||
'keys' => ['Id'],
|
||
'columns' => ['Id', 'moduleId', 'whCode', 'whName'],
|
||
'indexes' => [
|
||
['whCode', 'Id'],
|
||
],
|
||
],
|
||
],
|
||
];
|