2026-08-31_copy_print_template_to_tenant.sql 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. -- 将 AIDOP 租户的【送货标签】和【送货单】打印模板复制到租户 838257186181189
  2. -- SysPrint 表:主键 Id(雪花ID),租户字段 TenantId
  3. SET @src_tenant = (SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id = t.OrgId WHERE o.Code = 'AIDOP' AND t.Status = 1 LIMIT 1);
  4. SET @dst_tenant = 838257186181189;
  5. -- 校验源租户存在
  6. SELECT IF(@src_tenant IS NULL, ERROR('AIDOP 租户未找到'), 'OK: source tenant_id = ') AS chk, @src_tenant;
  7. -- 校验目标租户存在
  8. SELECT IF((SELECT COUNT(*) FROM SysTenant WHERE Id = @dst_tenant) = 0, ERROR('目标租户不存在'), 'OK: target tenant_id = ') AS chk, @dst_tenant;
  9. -- 查看源模板(执行前先确认)
  10. SELECT Id, Name, PrintType, LENGTH(Template) AS tpl_len
  11. FROM SysPrint
  12. WHERE TenantId = @src_tenant
  13. AND Name IN ('送货标签', '送货单');
  14. -- 复制:生成新 Id(基于 UNIX_TIMESTAMP 微秒 + 随机偏移,避免冲突)
  15. INSERT INTO SysPrint (Id, Name, Template, PrintType, ClientServiceAddress, PrintParam, OrderNo, Status, Remark, PrintDataDemo, TenantId, CreateTime)
  16. SELECT
  17. FLOOR(UNIX_TIMESTAMP(NOW(6)) * 1000000) + FLOOR(RAND() * 99999) AS Id,
  18. p.Name,
  19. p.Template,
  20. p.PrintType,
  21. p.ClientServiceAddress,
  22. p.PrintParam,
  23. p.OrderNo,
  24. p.Status,
  25. p.Remark,
  26. p.PrintDataDemo,
  27. @dst_tenant,
  28. NOW()
  29. FROM SysPrint p
  30. WHERE p.TenantId = @src_tenant
  31. AND p.Name IN ('送货标签', '送货单')
  32. AND NOT EXISTS (
  33. SELECT 1 FROM SysPrint p2
  34. WHERE p2.TenantId = @dst_tenant AND p2.Name = p.Name
  35. );
  36. -- 验证复制结果
  37. SELECT Id, Name, PrintType, LENGTH(Template) AS tpl_len, TenantId
  38. FROM SysPrint
  39. WHERE TenantId = @dst_tenant
  40. AND Name IN ('送货标签', '送货单');