优化
This commit is contained in:
@@ -2528,14 +2528,38 @@ CREATE TABLE IF NOT EXISTS fl_inbound_order (
|
||||
) ENGINE=InnoDB COMMENT='二期头程入库单聚合根和列表查询快照';
|
||||
|
||||
UPDATE baiyue_order.ord_order o
|
||||
LEFT JOIN baiyue_firstleg.fl_inbound_order i
|
||||
JOIN baiyue_firstleg.fl_inbound_order i
|
||||
ON i.tenant_id = o.tenant_id AND i.order_id = o.id AND i.deleted = 0
|
||||
SET o.inbound_code = COALESCE(i.inbound_code, CONCAT('RK-', o.id))
|
||||
SET o.inbound_code = i.inbound_code
|
||||
WHERE o.deleted = 0
|
||||
AND o.status <> 'DRAFT'
|
||||
AND (o.submitted_at IS NOT NULL
|
||||
OR o.status IN ('SUBMITTED', 'APPROVED', 'ACCEPTED', 'PROCESSING', 'COMPLETED'))
|
||||
AND o.inbound_code IS NULL;
|
||||
AND o.inbound_code IS NULL
|
||||
AND i.inbound_code IS NOT NULL
|
||||
AND TRIM(i.inbound_code) <> '';
|
||||
|
||||
-- 非草稿订单若既无订单入仓码也无 Firstleg 权威入仓码,禁止用内部 ID 伪造业务键。
|
||||
DROP PROCEDURE IF EXISTS assert_submitted_order_inbound_code;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE assert_submitted_order_inbound_code()
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM baiyue_order.ord_order o
|
||||
WHERE o.deleted = 0
|
||||
AND o.status <> 'DRAFT'
|
||||
AND (o.submitted_at IS NOT NULL
|
||||
OR o.status IN ('SUBMITTED', 'APPROVED', 'ACCEPTED', 'PROCESSING', 'COMPLETED'))
|
||||
AND (o.inbound_code IS NULL OR TRIM(o.inbound_code) = '')
|
||||
) THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT = '存在已提交订单缺少权威入仓码,请先修复订单/Firstleg业务事实后重跑';
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL assert_submitted_order_inbound_code();
|
||||
DROP PROCEDURE IF EXISTS assert_submitted_order_inbound_code;
|
||||
|
||||
-- 从未提交的草稿或由草稿直接取消的订单不应拥有入仓码。
|
||||
UPDATE baiyue_order.ord_order
|
||||
|
||||
Reference in New Issue
Block a user