Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

当站点被设置为主站点时,需要做的迁移动作。假设主站点是1站点和36站点

...

迁移项

备注

数量(1站点,36站点)

SQL

客户站点开通

开通主站点和分站点,在其他数据处理完后,最后设置主站点同步的webhook,分站点的webhook

在界面处理

库存

不处理, 跟库位一起到分站点.不需要特别处理

主站点要手动建通用的库位

1: 72215

36: 1502

Code Block
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到主站点。

Code Block
languagesql
INSERT INTO company_product (product_id, company_id, live_stock, live_stock_fba, last_stock_update_time)
                SELECT
                    container_product.product_id,
                    warehouse.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)
                group by container_product.product_id
                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_to_use, 主站点也要有副本数据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

Code Block
languagesql
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 ;

Code Block
languagesql
update warehouse set company_id=xxx where company_id=1;
update warehouse set company_id=xxx where company_id=36;

产品

跨站点的,不处理

本地订单

准备中待处理的留在主站点,但要通过界面按钮手动同步副本到分站点。
已完成的留在主站点,不需要处理。
待拣货拣货中,处理中的移到分站点 (因为得跟着库存记录走),但要考虑在主站点扣费的问题 和 换成分站点邮递服务的问题

=》 建议加一个工具,根据分站点的订单,反向往主站点创建一个傀儡订单,解决在主站点扣费的问题。

Code Block
languagesql
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, 移到分站点

Code Block
languagesql
-- 迁移批次
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.

...