优化
This commit is contained in:
@@ -6183,14 +6183,56 @@ ON DUPLICATE KEY UPDATE
|
||||
color = VALUES(color),
|
||||
remark = VALUES(remark);
|
||||
|
||||
-- 国内作业仓最小库位基线:每仓一个普通 A1 和一个系统共享溢出位 A0。
|
||||
-- 义乌仓初始化 A-F 六个库区,每区 A1-A15 共 90 个普通库位。
|
||||
-- A0 仍是系统共享溢出位;东莞仓继续保留最小 A1 + A0 基线。
|
||||
-- 不初始化预占、占用或任何业务单据。
|
||||
INSERT INTO wh_location (
|
||||
id, tenant_id, warehouse_id, zone_code, zone_name, location_code, location_name,
|
||||
location_type, max_weight_kg, shared_overflow, status, remark, created_by, updated_by
|
||||
)
|
||||
WITH RECURSIVE
|
||||
zones AS (
|
||||
SELECT 0 AS zone_index
|
||||
UNION ALL
|
||||
SELECT zone_index + 1 FROM zones WHERE zone_index < 5
|
||||
),
|
||||
slots AS (
|
||||
SELECT 1 AS slot_number
|
||||
UNION ALL
|
||||
SELECT slot_number + 1 FROM slots WHERE slot_number < 15
|
||||
)
|
||||
SELECT
|
||||
CAST(193000000000200000 + CASE
|
||||
WHEN zones.zone_index = 0 AND slots.slot_number = 1 THEN 201
|
||||
ELSE 203 + zones.zone_index * 15 + slots.slot_number
|
||||
END AS UNSIGNED),
|
||||
0,
|
||||
193000000000200001,
|
||||
CHAR(65 + zones.zone_index),
|
||||
CONCAT(CHAR(65 + zones.zone_index), '区'),
|
||||
CONCAT(CHAR(65 + zones.zone_index), slots.slot_number),
|
||||
CONCAT(CHAR(65 + zones.zone_index), slots.slot_number, ' 普通库位'),
|
||||
'PALLET',1000.000,0,'AVAILABLE',NULL,0,0
|
||||
FROM zones
|
||||
CROSS JOIN slots
|
||||
ON DUPLICATE KEY UPDATE
|
||||
tenant_id = 0,
|
||||
warehouse_id = VALUES(warehouse_id),
|
||||
zone_code = VALUES(zone_code),
|
||||
zone_name = VALUES(zone_name),
|
||||
location_name = VALUES(location_name),
|
||||
location_type = VALUES(location_type),
|
||||
max_weight_kg = VALUES(max_weight_kg),
|
||||
shared_overflow = VALUES(shared_overflow),
|
||||
status = 'AVAILABLE',
|
||||
remark = VALUES(remark),
|
||||
deleted = 0;
|
||||
|
||||
INSERT INTO wh_location (
|
||||
id, tenant_id, warehouse_id, zone_code, zone_name, location_code, location_name,
|
||||
location_type, max_weight_kg, shared_overflow, status, remark, created_by, updated_by
|
||||
)
|
||||
VALUES
|
||||
(193000000000200201,0,193000000000200001,'A','A区','A1','A1 普通库位','PALLET',1000.000,0,'AVAILABLE',NULL,0,0),
|
||||
(193000000000200202,0,193000000000200001,'A','A区','A0','A0 共享溢出位','PALLET',NULL,1,'AVAILABLE','系统共享临时溢出位',0,0),
|
||||
(193000000000200203,0,193000000000200002,'A','A区','A1','A1 普通库位','PALLET',1000.000,0,'AVAILABLE',NULL,0,0),
|
||||
(193000000000200204,0,193000000000200002,'A','A区','A0','A0 共享溢出位','PALLET',NULL,1,'AVAILABLE','系统共享临时溢出位',0,0)
|
||||
@@ -6207,6 +6249,35 @@ ON DUPLICATE KEY UPDATE
|
||||
remark = VALUES(remark),
|
||||
deleted = 0;
|
||||
|
||||
DROP PROCEDURE IF EXISTS assert_yiwu_location_seed;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE assert_yiwu_location_seed()
|
||||
BEGIN
|
||||
IF (SELECT COUNT(*)
|
||||
FROM wh_location
|
||||
WHERE tenant_id = 0
|
||||
AND warehouse_id = 193000000000200001
|
||||
AND deleted = 0
|
||||
AND shared_overflow = 0
|
||||
AND zone_code IN ('A','B','C','D','E','F')
|
||||
AND location_code REGEXP '^[A-F]([1-9]|1[0-5])$'
|
||||
AND LEFT(location_code, 1) = zone_code) <> 90 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '义乌仓 A-F 每区 15 个普通库位初始化不完整';
|
||||
END IF;
|
||||
IF (SELECT COUNT(*)
|
||||
FROM wh_location
|
||||
WHERE tenant_id = 0
|
||||
AND warehouse_id = 193000000000200001
|
||||
AND location_code = 'A0'
|
||||
AND shared_overflow = 1
|
||||
AND deleted = 0) <> 1 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '义乌仓系统共享溢出位 A0 初始化不完整';
|
||||
END IF;
|
||||
END//
|
||||
DELIMITER ;
|
||||
CALL assert_yiwu_location_seed();
|
||||
DROP PROCEDURE IF EXISTS assert_yiwu_location_seed;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_wh_fba_public_master_data;
|
||||
CREATE TEMPORARY TABLE tmp_wh_fba_public_master_data (
|
||||
warehouse_id_seed BIGINT UNSIGNED NOT NULL,
|
||||
|
||||
Reference in New Issue
Block a user