-- ============================================================================
-- 1.0.434：B-2A —— 把 UAT 租户 838257186181189 的 91 行 NbrControl 组织引用
--          从 Demo 租户组织迁回本租户自己的组织。
--
-- 背景（S0-ORG-REFERENCE-MODEL-FIX / B-1 已止血）：
--   2026-06-14 commit a18c8a6c5 在「单部署」假设下把 DEFAULT_COMPANY_REF_ID=1329900200001 /
--   DEFAULT_FACTORY_REF_ID=1329900200002 写死进 S0 仓储页；其后 1.0.317.sql 把这两个 SysOrg
--   改挂到 Demo 租户 797403760988230，前端常量未同步 → 各租户新增都写入别租户的组织 Id。
--   B-1 已让服务端（AdoS0OrgScope.ResolveAsync）成为组织归属的唯一裁决者，新增不再产生污染；
--   本脚本只清理**当前 UAT 租户**的历史存量。
--
-- 迁移口径（2026-09-01 只读实测）：
--   源：tenant_id=838257186181189 AND company_ref_id=1329900200001 AND factory_ref_id=1329900200002
--   目标：company_ref_id = factory_ref_id = 838257186320453
--        （SysOrg.Id=838257186320453 / TenantId=838257186181189 / Code=UATTEST_CHL / Pid=0，
--          即 SysTenant(838257186181189).OrgId，与 B-1 后 AdoS0OrgScope 在该租户下的实际解析
--          结果 C4→F4 完全一致，故迁移后与新增行同口径。）
--   全 27 张含 company_ref_id 的表扫描结果：UAT 命中**只有 NbrControl 91 行**，
--   且 91 行的 (company_ref_id, factory_ref_id) 完全一致，无需分类处理。
--   DepartmentMaster 在 UAT 下无跨租户行 → 不触碰，S8 App.json 的
--   DepartmentFactoryRefId=1329900200002 本轮不改。
--
-- 唯一键 dry run（迁移前只读预演）：
--   NbrControl 唯一索引只有 PRIMARY(RecID) 与 uk_NbrControl_tenant_domain_nbrtype
--   (tenant_id, domain_code, NbrType)——**不含 org 列**，改 org 结构上不可能撞唯一键；
--   模拟迁移后按该唯一键 GROUP BY HAVING COUNT(*)>1 实测 conflicts = 0。
--
-- 明确不做（本批边界）：
--   - 不动租户 797403760988229 的另外 167 行（B-2B 另批，口径待业务确认）
--   - 不动 LEGACY-NUMERIC（1000 / 0 / 1）
--   - 不改 SysOrg / SysTenant / 前端 / B-1 后端逻辑 / sysOrg:list / 1.0.431 / GrantMenu
--   - 不改 Type=501 语义、不补 CustMaster/StdOpMaster 缺 tenant_id 的唯一键
--   - 除两个 org 列外不写任何业务字段（NbrControl.UpdateTime 无 ON UPDATE CURRENT_TIMESTAMP，
--     本 UPDATE 不列它 → 业务字段与审计字段保持原值）
--
-- 安全护栏：EXISTS 子句确保目标组织确实属于该租户；目标组织不存在或归属不符时整条语句 0 行，
--   绝不把业务数据指向一个不属于本租户的组织。
--
-- 幂等：WHERE 精确命中旧值；首次 affected_rows=91，重复执行 affected_rows=0
--   （旧值已不存在）。无该数据的库上同样为 0 行空操作。
-- ============================================================================

UPDATE `NbrControl`
SET `company_ref_id` = 838257186320453,
    `factory_ref_id` = 838257186320453
WHERE `tenant_id` = 838257186181189
  AND `company_ref_id` = 1329900200001
  AND `factory_ref_id` = 1329900200002
  AND EXISTS (
    SELECT 1 FROM `SysOrg` o
     WHERE o.`Id` = 838257186320453
       AND o.`TenantId` = 838257186181189
  );
