fix(crm): 合同改号后同步运输计划合同号快照。
归档列表读 pl_plan_contract 快照,改 CRM 合同编号时同事务回写,避免列表与详情不一致。
This commit is contained in:
1 parent
d58f6ea5bd
commit
bfb611b2e1
4 files changed
+292
No files matched your search
@@ -0,0 +1,39 @@
|
||||
-- 一次性数据修复:将 pl_plan_contract / pl_plan 合同号快照对齐到 CRM 现网编号。
|
||||
-- 背景:合同页直接改 contract_no 后,计划归档列表仍读快照,导致列表与详情不一致。
|
||||
-- 范围:全库 del_flag=0 且快照与 crm_contract.contract_no 不一致的关联/遗留主表行。
|
||||
-- 含客户反馈三单:PO20261008011 / PO20261009018 / PO20261012005(临时号 SX/X-JT20261009002 → P0-2026-10-0016)。
|
||||
-- MySQL 5.7。可重复执行(已对齐行不再更新)。
|
||||
-- !!! 生产执行须单独授权;本文件不随应用启动自动执行。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- 预览(执行前建议先跑):
|
||||
-- SELECT p.plan_no, pc.id AS link_id, pc.side, pc.contract_id,
|
||||
-- pc.contract_no AS snapshot_no, c.contract_no AS live_no
|
||||
-- FROM pl_plan_contract pc
|
||||
-- JOIN pl_plan p ON p.id = pc.plan_id AND p.del_flag = 0
|
||||
-- JOIN crm_contract c ON c.id = pc.contract_id AND c.tenant_no = pc.tenant_no AND c.del_flag = 0
|
||||
-- WHERE pc.del_flag = 0
|
||||
-- AND IFNULL(pc.contract_no, '') <> IFNULL(c.contract_no, '');
|
||||
|
||||
UPDATE pl_plan_contract pc
|
||||
INNER JOIN crm_contract c
|
||||
ON c.id = pc.contract_id
|
||||
AND c.tenant_no = pc.tenant_no
|
||||
AND c.del_flag = 0
|
||||
SET pc.contract_no = c.contract_no,
|
||||
pc.update_time = NOW()
|
||||
WHERE pc.del_flag = 0
|
||||
AND IFNULL(pc.contract_no, '') <> IFNULL(c.contract_no, '');
|
||||
|
||||
UPDATE pl_plan p
|
||||
INNER JOIN crm_contract c
|
||||
ON c.id = p.contract_id
|
||||
AND c.tenant_no = p.tenant_no
|
||||
AND c.del_flag = 0
|
||||
SET p.contract_no = c.contract_no,
|
||||
p.update_time = NOW()
|
||||
WHERE p.del_flag = 0
|
||||
AND p.contract_id IS NOT NULL
|
||||
AND p.contract_id <> ''
|
||||
AND IFNULL(p.contract_no, '') <> IFNULL(c.contract_no, '');
|
||||
Reference in new issue
Block a user