1111
IT-0 verify / verify (push) Waiting to run

This commit is contained in:
zfjia committed 2026-11-11 18:30:31 +08:00
1 parent 417c076465
commit 35751b4f00
144 files changed
+13905 -342

No files matched your search

+149
View File
@@ -3,6 +3,7 @@
-- 预期:business_table_count = 59;missing_pk = 0;missing_gyid = 0
-- 口径:apt_* 36 + gy_*/gygl_* 18 + duty_* 5 = 59(CR-02 表 3-25、公寓端/03 表 3-8)
-- apt_ops_probe 为连通性探针表,显式排除,不计入 59 张。
-- 追加:第 7~13 段为 IT-3(DV-3)增量校验,见文件末段说明。
-- =============================================================================
SELECT '=== 1. 业务表总数(应为 59)===' AS section;
SELECT COUNT(*) AS business_table_count
@@ -62,3 +63,151 @@ SELECT '=== 6. 探针表与基线种子 ===' AS section;
SELECT (SELECT COUNT(*) FROM apt_ops_probe) AS probe_rows,
(SELECT COUNT(*) FROM apt_master_version WHERE source = 'LOCAL') AS local_baseline_rows,
(SELECT COUNT(*) FROM apt_ops_selfcheck) AS selfcheck_item_rows;
-- =============================================================================
-- IT-3 追加校验(DV-3 / 13 表 13-13 验收①)
-- 预期:IT-3 增量列 6 条;人脸权限点 7 行(6 F + 1 C);IT-7 置灰项授权 0;
-- N-34 可申请设备 2 台;注册链三处「泄漏」计数均为 0。
-- =============================================================================
SELECT '=== 7. IT-3 增量列(应 6:回执态 3 + §12 设备范围 3)===' AS section;
SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND ( (TABLE_NAME = 'apt_person_face_reg' AND COLUMN_NAME IN ('platform_version','unit_code'))
OR (TABLE_NAME = 'apt_master_person' AND COLUMN_NAME = 'face_platform_version')
OR (TABLE_NAME = 'gy_sb' AND COLUMN_NAME IN ('device_class','face_scope_value','face_cache_enabled')))
ORDER BY TABLE_NAME, COLUMN_NAME;
SELECT '=== 8. 人脸权限点与页面菜单(应 7 行:6 F + 1 C)===' AS section;
SELECT menu_id, menu_name, menu_type, visible, status, perms
FROM sys_menu WHERE menu_id BETWEEN 3201 AND 3216 ORDER BY menu_id;
SELECT '=== 9. IT-7 预留点置灰且未授权(3213~3216 应为 0)===' AS section;
SELECT COUNT(*) AS it3_grey_bound
FROM sys_role_menu rm JOIN sys_menu m ON m.menu_id = rm.menu_id
WHERE m.menu_id IN (3213, 3214, 3215, 3216);
SELECT '=== 10. N-34 可申请设备(state <> DISABLED,应 2)===' AS section;
SELECT COUNT(*) AS it3_apply_device_count
FROM gy_sb
WHERE device_code IN ('DEV-CHECKIN-01', 'DEV-TABLET-01', 'DEV-CHECKIN-99')
AND state <> 'DISABLED';
SELECT '=== 11. 注册链一致性:APPLIED 不得带 ryid、CONFIRMED 必带 ryid(均应 0)===' AS section;
SELECT
(SELECT COUNT(*) FROM apt_person_face_reg
WHERE reg_state = 'APPLIED' AND (confirmed_ryid IS NOT NULL OR local_only <> 1)) AS it3_applied_leak,
(SELECT COUNT(*) FROM apt_person_face_reg
WHERE reg_state = 'CONFIRMED' AND confirmed_ryid IS NULL) AS it3_confirmed_without_ryid,
(SELECT COUNT(*) FROM apt_person_face_reg
WHERE reg_state = 'REJECTED' AND confirmed_ryid IS NOT NULL) AS it3_rejected_with_ryid;
SELECT '=== 12. 双路状态链独立:CONFIRMED 行不得缺 upload_state / dispatch_state(应 0)===' AS section;
SELECT reg_id, upload_state, dispatch_state, verdict, platform_version
FROM apt_person_face_reg
WHERE reg_state = 'CONFIRMED' AND (upload_state IS NULL OR dispatch_state IS NULL);
SELECT '=== 13. 确认行必须有对应人员主档(应 0 孤儿)===' AS section;
SELECT COUNT(*) AS it3_confirmed_orphan
FROM apt_person_face_reg r
WHERE r.reg_state = 'CONFIRMED'
AND NOT EXISTS (
SELECT 1 FROM apt_master_person p
WHERE p.gyid = r.gyid AND p.ryid = r.confirmed_ryid AND p.deleted = 0
);
-- =============================================================================
-- IT-4 追加校验(入住作业核心 / 表 11-4、表 11-9、CR-02 表 3-57 验收 18~20)
-- 预期:增量列 26 条;流程态字典 8/5 值;入住权限点 5 行;三处链路泄漏均为 0。
-- =============================================================================
SELECT '=== 14. IT-4 apt_local_task 增量列(应 27)===' AS section;
SELECT COUNT(*) AS it4_local_task_columns
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'apt_local_task'
AND COLUMN_NAME IN ('device_code','device_event_id','work_no','name_snapshot','reg_id',
'reg_state_at_apply','jch','kcsj_snapshot','verified_ryid','verified_at','feature_version',
'source','submitted_at','occurred_at','review_note','adjusted_by','adjusted_at','adjust_reason',
'reported_at','matched_at','task_ready_at','matched_plan_key','base_kcsj','base_jcfs',
'origin_jcsj','derived_rule_version','jllx');
SELECT '=== 15. 流程态字典(checkin_state 8 值 / sync_state 5 值 / 事件含 ROOM_SWAP)===' AS section;
SELECT CONSTRAINT_NAME, CHECK_CLAUSE
FROM information_schema.CHECK_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = DATABASE()
AND CONSTRAINT_NAME IN ('ck_lt_checkin','ck_lt_sync','ck_lye_type')
ORDER BY CONSTRAINT_NAME;
SELECT '=== 16. 入住权限点与页面菜单(应 5 行)===' AS section;
SELECT menu_id, menu_name, menu_type, visible, status, perms
FROM sys_menu WHERE menu_id IN (3005, 3202, 3217, 3218, 3219) ORDER BY menu_id;
SELECT '=== 17. 任务就绪必须已复算 jcsj(应 0)===' AS section;
SELECT COUNT(*) AS it4_task_ready_without_jcsj
FROM apt_local_task
WHERE sync_state = 'TASK_READY' AND jcsj IS NULL AND deleted = 0;
SELECT '=== 18. CHECKED_IN 必须有 gy_jcxx 行(应 0 孤儿)===' AS section;
SELECT COUNT(*) AS it4_checked_in_orphan
FROM apt_local_task t
WHERE t.checkin_state = 'CHECKED_IN' AND t.deleted = 0
AND NOT EXISTS (
SELECT 1 FROM gy_jcxx j WHERE j.gyid = t.gyid AND j.jcid = t.jcid AND j.deleted = 0
);
SELECT '=== 19. 未入住不得提前生成叫乘行(应 0 泄漏)===' AS section;
SELECT COUNT(*) AS it4_checkin_leak
FROM apt_local_task t
WHERE t.checkin_state IN ('SUBMITTED','REVIEWING','APPROVED','ROOM_ADJUSTED','REJECTED')
AND t.deleted = 0
AND EXISTS (SELECT 1 FROM gy_jcxx j WHERE j.gyid = t.gyid AND j.jcid = t.jcid AND j.deleted = 0);
-- =============================================================================
-- IT-5 追加校验(叫乘执行与状态机 / 表 3-10、表 4-9、表 5-20、表 7-3 M3)
-- 预期:增量列 11 条;叫乘权限点 5 行;平板字典 3 个 CHECK;
-- 状态一致性四类泄漏全为 0;平板链路无 #24 语音摘要。
-- =============================================================================
SELECT '=== 20. IT-5 gy_jcxx 增量列(应 12)===' AS section;
SELECT COUNT(*) AS it5_jcxx_columns
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'gy_jcxx'
AND COLUMN_NAME IN ('jcsj_s','hjxysj','jcbjsj_s','fjsj_s','lybjsj','is_jcbj',
'is_lybj','is_temp_call','leave_type','leave_event_id','leave_remark','jch');
SELECT '=== 21. 叫乘权限点与页面菜单(应 5 行)===' AS section;
SELECT menu_id, menu_name, menu_type, visible, status, perms
FROM sys_menu WHERE menu_id IN (3004, 3220, 3221, 3222, 3203) ORDER BY menu_id;
SELECT '=== 22. 平板字典 CHECK(应 3:face / result_type / applied_state)===' AS section;
SELECT CONSTRAINT_NAME, CHECK_CLAUSE
FROM information_schema.CHECK_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = DATABASE()
AND CONSTRAINT_NAME IN ('ck_tabletresult_face','ck_tabletresult_type','ck_tabletresult_applied')
ORDER BY CONSTRAINT_NAME;
SELECT '=== 23. 终态一致性:ryzt=3 必须 finish_jc=1(应 0)===' AS section;
SELECT COUNT(*) AS it5_answered_without_finish
FROM gy_jcxx
WHERE deleted = 0 AND ryzt = '3' AND finish_jc <> '1';
SELECT '=== 24. 已结束叫乘不得回退到未完成态(应 0)===' AS section;
SELECT COUNT(*) AS it5_finished_regressed
FROM gy_jcxx
WHERE deleted = 0 AND finish_jc = '1' AND ryzt IN ('0','1');
SELECT '=== 25. 平板任务与结果一致:DONE 任务必须有结果行(应 0)===' AS section;
SELECT COUNT(*) AS it5_task_done_without_result
FROM apt_tablet_task t
WHERE t.pull_state = 'DONE'
AND NOT EXISTS (
SELECT 1 FROM apt_tablet_call_result r
WHERE r.gyid = t.gyid AND r.task_id = t.task_id
);
SELECT '=== 26. 平板链路不得上报 #24 语音摘要(应 0)===' AS section;
SELECT COUNT(*) AS it5_tablet_voice_summary
FROM apt_report_outbox o
WHERE o.biz_type = 'VOICE_SUMMARY'
AND EXISTS (
SELECT 1 FROM gy_jcxx j
WHERE j.gyid = o.gyid AND j.jcid = o.biz_id AND j.call_mode = 'TABLET'
);