Files
jcgl-dev/dev/sql/apt_rev01/34_duty_test_seed.sql
T

95 lines
4.3 KiB
SQL
Raw Normal View History

2026-11-14 12:59:44 +08:00
-- =============================================================================
-- 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);