Files
jcgl-dev/dev/sql/apt_rev01/34_duty_test_seed.sql
T
2026-11-14 13:01:21 +08:00

96 lines
4.3 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.
-- =============================================================================
-- 34 值班台测试前置数据(R5 / 应用端/17)
--
-- 两件事:
-- ① SIP 服务器(AMI)配置落库:地址 / 端口 / 用户名 / 口令引用 / 号码段。
-- **口令不落库**:`ami_secret_ref` 只存环境变量名,实际口令由部署环境注入
-- (21_ami_instance.sql 已断言「口令不落明文」,此处不改口径)。
-- 本机联调请在 `dev/.env` 或 IDEA 运行配置里设置:
-- APT_AMI_SECRET=<AMI 口令>
-- ② 为「系统内人员」补齐一条 CONFIRMED 人脸注册记录:
-- 入住申请(N-40)在服务层强制校验「人脸注册已获值班员确认」,
-- 没有这条记录时任何入住都会被 40922 拒绝,叫乘链路无从验证。
-- 这里只是把前置台账补齐,不绕过任何服务层校验。
-- =============================================================================
SET NAMES utf8mb4;
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
USE apt_rev01;
-- ---------------------------------------------------------------------------
-- ① AMI / SIP 服务器配置(一公寓一实例,uk_astinstance_gyid)
-- ---------------------------------------------------------------------------
UPDATE apt_ast_instance
SET ami_host = '192.168.1.179',
ami_port = 7058,
ami_user = 'manager01',
ami_secret_ref = 'APT_AMI_SECRET',
ext_pool_from = '1010',
ext_pool_to = '1050',
enabled = 1,
biz_version = biz_version + 1
WHERE gyid = 'APT-REV01-001' AND deleted = 0;
-- 若该 gyid 尚无实例行则补一条(同一公寓只允许一条)
INSERT INTO apt_ast_instance
(gyid, instance_code, ami_host, ami_port, ami_user, ami_secret_ref,
tls_enabled, channel_tech, state, enabled, biz_version, ext_pool_from, ext_pool_to, deleted)
SELECT 'APT-REV01-001', 'AST-REV01-001', '192.168.1.179', 7058, 'manager01', 'APT_AMI_SECRET',
0, 'PJSIP', 'DISABLED', 1, 1, '1010', '1050', 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM apt_ast_instance WHERE gyid = 'APT-REV01-001');
-- ---------------------------------------------------------------------------
-- ② 人脸注册确认台账(仅为缺记录的人员补一条,幂等)
-- ---------------------------------------------------------------------------
INSERT INTO apt_person_face_reg
(gyid, reg_id, work_no, name, unit_code, face_feature_ref, feature_version,
person_category, reg_state, local_only, verdict, confirmed_ryid, confirmed_by, confirmed_at,
upload_state, dispatch_state, report_state, face_sync_state, platform_version,
occurred_at, created_at)
SELECT p.gyid,
CONCAT('REG-TEST-', p.ryid),
p.work_no,
p.xm,
NULL,
CONCAT('test://feature/', p.ryid),
COALESCE(p.feature_version, 1),
COALESCE(p.person_category, 'TRANSIENT'),
'CONFIRMED',
1,
'ACCEPTED',
p.ryid,
'LOCAL-SEED',
NOW(3),
'PENDING',
'PENDING',
'PENDING',
'SYNCED',
1,
NOW(3),
NOW(3)
FROM apt_master_person p
WHERE p.gyid = 'APT-REV01-001'
AND COALESCE(p.deleted, 0) = 0
AND NOT EXISTS (
SELECT 1 FROM apt_person_face_reg r
WHERE r.gyid = p.gyid AND r.reg_state = 'CONFIRMED' AND r.confirmed_ryid = p.ryid);
-- ---------------------------------------------------------------------------
-- 自检
-- ---------------------------------------------------------------------------
SELECT '=== 34. AMI 配置(口令只显示引用名)===' AS section;
SELECT ami_host, ami_port, ami_user, ami_secret_ref, ext_pool_from, ext_pool_to, enabled, state
FROM apt_ast_instance WHERE gyid = 'APT-REV01-001';
SELECT '=== 34. 可办理入住的人员数(有 CONFIRMED 注册且当前未在住)===' AS section;
SELECT COUNT(*) AS candidate_person
FROM apt_master_person p
WHERE p.gyid = 'APT-REV01-001' AND COALESCE(p.deleted, 0) = 0
AND EXISTS (SELECT 1 FROM apt_person_face_reg r
WHERE r.gyid = p.gyid
AND r.reg_state = 'CONFIRMED' AND r.confirmed_ryid = p.ryid)
AND NOT EXISTS (SELECT 1 FROM gy_jcxx j
WHERE j.gyid = p.gyid AND j.ryid = p.ryid AND j.deleted = 0
AND j.finish_ly = '0' AND j.sjlysj IS NULL);