risk_inspection_task_scan_interval.sql 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. -- =============================================================
  2. -- 风控平台 数据库增量脚本 2026-07-21
  3. -- 巡检任务扫码字段 3 列
  4. -- 对应 commit f6614ac7 (feat(inspection): 扫码任务补全 4 字段 + verifyQrCode 时间窗口校验)
  5. -- 全部 SQL 幂等(基于 INFORMATION_SCHEMA 判断)
  6. -- =============================================================
  7. USE risk_control_platform;
  8. -- =============================================================
  9. -- 1. 巡检任务表 risk_inspection_task 补 3 列
  10. -- =============================================================
  11. -- punch_device_name: 扫码设备名称(展示用)
  12. SET @sql = (SELECT IF(
  13. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  14. WHERE TABLE_SCHEMA = DATABASE()
  15. AND TABLE_NAME = 'risk_inspection_task'
  16. AND COLUMN_NAME = 'punch_device_name') = 0,
  17. 'ALTER TABLE `risk_inspection_task` ADD COLUMN `punch_device_name` varchar(100) DEFAULT NULL COMMENT ''扫码设备名称(展示用)'' AFTER `qr_code`',
  18. 'SELECT 1'));
  19. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  20. -- scan_start_time: 扫码开启时间(二维码生效起始)
  21. SET @sql = (SELECT IF(
  22. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  23. WHERE TABLE_SCHEMA = DATABASE()
  24. AND TABLE_NAME = 'risk_inspection_task'
  25. AND COLUMN_NAME = 'scan_start_time') = 0,
  26. 'ALTER TABLE `risk_inspection_task` ADD COLUMN `scan_start_time` datetime DEFAULT NULL COMMENT ''扫码开启时间(二维码生效起始)'' AFTER `punch_device_name`',
  27. 'SELECT 1'));
  28. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  29. -- scan_interval_sec: 扫码间隔(秒),默认 1800 秒(30 分钟)
  30. SET @sql = (SELECT IF(
  31. (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
  32. WHERE TABLE_SCHEMA = DATABASE()
  33. AND TABLE_NAME = 'risk_inspection_task'
  34. AND COLUMN_NAME = 'scan_interval_sec') = 0,
  35. 'ALTER TABLE `risk_inspection_task` ADD COLUMN `scan_interval_sec` int DEFAULT 1800 COMMENT ''扫码间隔(秒),默认 1800'' AFTER `scan_start_time`',
  36. 'SELECT 1'));
  37. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  38. -- =============================================================
  39. -- 验证
  40. -- =============================================================
  41. SELECT '--- 巡检任务扫码相关字段 ---' AS info;
  42. SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_DEFAULT, COLUMN_COMMENT
  43. FROM INFORMATION_SCHEMA.COLUMNS
  44. WHERE TABLE_SCHEMA = DATABASE()
  45. AND TABLE_NAME = 'risk_inspection_task'
  46. AND COLUMN_NAME IN ('punch_device_name','scan_start_time','scan_interval_sec','qr_code')
  47. ORDER BY ORDINAL_POSITION;