1.0.340.sql 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. -- 1.0.340 S5 库存口径:legacy 三表归档 + 对账差异表
  2. -- 禁止同脚本 DROP;30 天后另发迁移脚本删除 zz_archive_*。
  3. SET NAMES utf8mb4;
  4. -- ① 归档本库冻结镜像(若仍存在原名)
  5. SET @sql := IF(
  6. (SELECT COUNT(*) FROM information_schema.TABLES
  7. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='LocationDetail') > 0
  8. AND (SELECT COUNT(*) FROM information_schema.TABLES
  9. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='zz_archive_20260813_LocationDetail') = 0,
  10. 'RENAME TABLE `LocationDetail` TO `zz_archive_20260813_LocationDetail`',
  11. 'SELECT 1');
  12. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  13. SET @sql := IF(
  14. (SELECT COUNT(*) FROM information_schema.TABLES
  15. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='InvTransHist') > 0
  16. AND (SELECT COUNT(*) FROM information_schema.TABLES
  17. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='zz_archive_20260813_InvTransHist') = 0,
  18. 'RENAME TABLE `InvTransHist` TO `zz_archive_20260813_InvTransHist`',
  19. 'SELECT 1');
  20. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  21. SET @sql := IF(
  22. (SELECT COUNT(*) FROM information_schema.TABLES
  23. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='InvMaster') > 0
  24. AND (SELECT COUNT(*) FROM information_schema.TABLES
  25. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='zz_archive_20260813_InvMaster') = 0,
  26. 'RENAME TABLE `InvMaster` TO `zz_archive_20260813_InvMaster`',
  27. 'SELECT 1');
  28. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  29. -- ② 日终对账差异
  30. CREATE TABLE IF NOT EXISTS `ado_inventory_recon_diff` (
  31. `id` bigint NOT NULL AUTO_INCREMENT,
  32. `tenant_id` bigint NOT NULL,
  33. `domain` varchar(32) NOT NULL,
  34. `item_num` varchar(80) NOT NULL,
  35. `lot_serial` varchar(120) NOT NULL DEFAULT '',
  36. `location` varchar(32) NOT NULL,
  37. `qty_live` decimal(18,5) NOT NULL DEFAULT 0,
  38. `qty_std` decimal(18,5) NOT NULL DEFAULT 0,
  39. `qty_diff` decimal(18,5) NOT NULL DEFAULT 0,
  40. `recon_batch_id` varchar(100) NOT NULL,
  41. `as_of` datetime(3) NOT NULL,
  42. `remark` varchar(500) DEFAULT NULL,
  43. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  44. PRIMARY KEY (`id`),
  45. KEY `idx_inv_recon_batch` (`recon_batch_id`),
  46. KEY `idx_inv_recon_item` (`tenant_id`,`domain`,`item_num`,`location`)
  47. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
  48. COMMENT='165 LocationDetail 与 mdp_std_inventory 日终对账差异';