当站点被设置为主站点时,需要做的迁移动作。假设主站点是1站点和36站点
数量和sql,只写觉的重要的数据
迁移项 | 备注 | 数量(1站点,36站点) | SQL | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
客户站点开通 | 开通主站点和分站点,在其他数据处理完后,最后设置主站点同步的webhook,分站点的webhook | 在界面处理 | |||||||||||||
库存 | 不处理, 跟库位一起到分站点 主站点要手动建通用的库位 | 1: 72215 36: 1502 | select count(*) from container_product inner join container on container.id = container_id inner join aisle on aisle.id = container.aisle_id inner join zone on zone.id = zone_id inner join warehouse on warehouse.id = warehouse_id where warehouse.company_id = 1 and container.status = 'ACTIVE'; | 关联数据需要到分站点 company_product update company_product set company_id=xxx where company_id=1; update company_product set company_id=xxx where company_id=36; 再SQL group by到主站点。 INSERT INTO company_product (product_id, company_id, live_stock, live_stock_fba, last_stock_update_time) SELECT IFNULL(container_product.product_id,_id), IFNULL(warehouse.company_id,_company_id), IFNULL(SUM(container_product.quantity),0) AS quantity, IFNULL(SUM(IF(warehouse.is_fba_transport=1,container_product.quantity,0)),0) AS fba_quantity, NOW() FROM container_product JOIN container ON container.id = container_product.container_id JOIN container_type ON container_type.id = container.container_type_id AND container_type.special_type <> 'IN_USE_FOR_STOCKING' JOIN aisle ON aisle.id = container.aisle_id JOIN zone ON aisle.zone_id = zone.id JOIN warehouse ON warehouse.id = zone.warehouse_id AND warehouse.company_id in (1,19) ON DUPLICATE KEY UPDATE company_product.live_stock = VALUES(live_stock), company_product.live_stock_fba = VALUES(live_stock_fba), company_product.last_stock_update_time = VALUES(last_stock_update_time); company_product_date_stock, 移到分站点,最后用 sql 把多个分站点的数据,合并到主站点. update company_product_date_stock set company_id=xxx where company_id=1; update company_product_date_stock set company_id=xxx where company_id=36; //合并库存SQL delete from company_product_date_stock where company_id=1; insert into company_product_date_stock select 1 as company_id,product_id,date,sum(stock),now() as update_time,type from company_product_date_stock where company_id in (1,19,20) group by product_id,date,type; company_product_stock_to_use,只有准备中,待处理的订单会有,跟着订单走。 订单留在主站点,所以这数据也留在主站点。 client_company_date_temp_storage_volume, 同 company_product_date_stock 。 移到分站点,然后从各个分站点group by 合并到主站点 | |||||||||||
库位 | 不处理,跟过道一起自动到分站点 | 1:843115 36: 23044 | select count(container.id) from container inner join aisle on aisle.id = container.aisle_id inner join zone on zone.id = zone_id inner join warehouse on warehouse.id = warehouse_id where warehouse.company_id = 1 and container.status = 'ACTIVE'; | container_product_transaction移到分站点 与container_id 绑定,不需要处理 client_temp_storage_volume_transaction 移到分站点,这个看着有点麻烦 | |||||||||||
过道 | 不处理,跟库区一起自动到分站点 | ||||||||||||||
库区 | 不处理,跟仓库一起自动到分站点 | ||||||||||||||
仓库 | 移到分站点, 主站点要另建一个通用库位 | 1: 19 36:12 | select company_id,count(*) from warehouse where company_id in (1,36) group by company_id ; update warehouse set company_id=xxx where company_id=1; update warehouse set company_id=xxx where company_id=36; | ||||||||||||
产品 | 跨站点的,不处理 | ||||||||||||||
本地订单 | 准备中,待处理的留在主站点,但要通过界面按钮手动同步副本到分站点。 =》 建议加一个工具,根据分站点的订单,反向往主站点创建一个傀儡订单,解决在主站点扣费的问题。 | update consignment set company_id=xxx,delivery_service_id=xx,delivery_service_id_internal=xxx,delivery_package_size_id=xxx,delivery_package_size_id=xxx where company_id=1 and and type='LOCAL' and status in ('WAIT_PICKING','PICKING', 'PROCESSING'); | |||||||||||||
拣货单 | 移到分站点 | ||||||||||||||
代理专线订单 | 留在主站点, 未完成的订单,通过界面按钮手动同步副本到分站点 | ||||||||||||||
专线订单 | 留在主站点, 未完成的订单,通过界面按钮手动同步副本到分站点 | ||||||||||||||
FBA订单 | 留在主站点, 未完成的订单,通过界面按钮手动同步副本到分站点 | ||||||||||||||
退货订单 | 留在主站点, 未完成的订单,通过界面按钮手动同步副本到分站点 | ||||||||||||||
补货订单 | 不处理, 留在主站点 | ||||||||||||||
客户发货单 | 不处理, 虽然有company_id,但是跨站点显示的,起始仓目的仓所在站都能看到 | ||||||||||||||
提单 | 跨站点的,不处理 | ||||||||||||||
物流计划 | 跨站点的,不处理 | ||||||||||||||
批次&箱&包裹 | 修改company_id, 移到分站点 | -- 迁移批次 update agent_direct_consignment_batch set company_id=xx where company_id=1; update agent_direct_consignment_batch set company_id=xx where company_id=36; -- 迁移箱子 update agent_direct_consignment_carton set company_id=xx where company_id=1; update agent_direct_consignment_carton set company_id=xx where company_id=36; -- 迁移包裹 update agent_direct_consignment_package set company_id=xx where company_id=1; update agent_direct_consignment_package set company_id=xx where company_id=36; | |||||||||||||
仓库调拨单 | 跟发货单走的,不处理 | ||||||||||||||
仓库调拨箱 | 跟箱子走的,不处理 | ||||||||||||||
邮递服务 | 不移,但要在分站点创建对应下单的邮递服务 (不同类型要分开打单的,面单尺寸不一样的,还是要分开不同的名字来建服务) | ||||||||||||||
邮递服务商账号 | 不移,分站点不需要做对接,不需要服务商账号 | ||||||||||||||
包裹尺寸 | 不移,简单考虑分站点使用一个Unlimited Size即可。 但是代理专线订单过机时如何检查尺寸? | ||||||||||||||
客户组 | 暂不移?但要在分站点建一个共用的客户组 | ||||||||||||||
费率表 | 不移,分站点不产生扣费, 但要在分站点设置一个通用的费率表,收费都为0. |