Files
jcgl-dev/dev/sql/apt_rev01/36_it7_jcxx_times.sql
T
zfjia d9a4383cd1
IT-0 verify / verify (push) Waiting to run
更新叫乘过程中状态。
2026-11-14 13:01:46 +08:00

64 lines
3.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- IT-7 叫乘记录三时间字段(可重放)
-- 依据:叫乘任务要求「每条记录包含 叫乘时间 / 复叫时间 / 应离寓时间」,
-- 到点分别触发:首轮呼叫、自动复叫、离寓报警。
-- 口径:
-- 1) jcsj 已存在(叫乘时间,权威);本次只补 fjsj(复叫时间,计划)与
-- ylysj(应离寓时间);
-- 2) fjsj 与既有 fjsj_s 分工:fjsj=计划复叫时间(到点判定),
-- fjsj_s=实际复叫时刻(执行留痕,防重复触发);
-- 3) ryzt / finish_jc / finish_ly / stoped 仍只有 apt.duty.state 一个写入口,
-- 本脚本不写任何业务数据;
-- 4) 幂等:补列走 apt_add_column_if_missing,索引先查 information_schema。
-- =============================================================================
SET NAMES utf8mb4;
-- -----------------------------------------------------------------------------
-- 1. gy_jcxx 三时间字段补齐
-- -----------------------------------------------------------------------------
CALL apt_add_column_if_missing('gy_jcxx', 'fjsj',
"fjsj DATETIME(3) NULL COMMENT '复叫时间(计划;到点自动复叫)'");
CALL apt_add_column_if_missing('gy_jcxx', 'ylysj',
"ylysj DATETIME(3) NULL COMMENT '应离寓时间(到点未离寓转离寓报警)'");
-- -----------------------------------------------------------------------------
-- 2. 到点扫描索引(复叫到点 + 应离寓超时)
-- -----------------------------------------------------------------------------
SET @apt_idx_fjsj = (SELECT COUNT(*) FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gy_jcxx'
AND INDEX_NAME = 'idx_jcxx_fjsj');
SET @apt_sql_fjsj = IF(@apt_idx_fjsj = 0,
'ALTER TABLE gy_jcxx ADD KEY idx_jcxx_fjsj (gyid, fjsj)',
'SELECT 1');
PREPARE apt_stmt_fjsj FROM @apt_sql_fjsj;
EXECUTE apt_stmt_fjsj;
DEALLOCATE PREPARE apt_stmt_fjsj;
SET @apt_idx_ylysj = (SELECT COUNT(*) FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gy_jcxx'
AND INDEX_NAME = 'idx_jcxx_ylysj');
SET @apt_sql_ylysj = IF(@apt_idx_ylysj = 0,
'ALTER TABLE gy_jcxx ADD KEY idx_jcxx_ylysj (gyid, ylysj)',
'SELECT 1');
PREPARE apt_stmt_ylysj FROM @apt_sql_ylysj;
EXECUTE apt_stmt_ylysj;
DEALLOCATE PREPARE apt_stmt_ylysj;
-- -----------------------------------------------------------------------------
-- 3. 校验
-- -----------------------------------------------------------------------------
SELECT '=== IT-7 gy_jcxx 三时间字段(应 3:jcsj / fjsj / ylysj)===' AS section;
SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_COMMENT
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gy_jcxx'
AND COLUMN_NAME IN ('jcsj','fjsj','ylysj')
ORDER BY COLUMN_NAME;
SELECT '=== IT-7 到点扫描索引(应 2)===' AS section;
SELECT TABLE_NAME, INDEX_NAME, GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX) AS cols
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND INDEX_NAME IN ('idx_jcxx_fjsj','idx_jcxx_ylysj')
GROUP BY TABLE_NAME, INDEX_NAME;