Files
jcgl-dev/dev/sql/apt_rev01/15_it3_seed.sql
T

56 lines
3.3 KiB
SQL
Raw Normal View History

2026-11-11 18:30:31 +08:00
-- =============================================================================
-- IT-3 / DV-3 Mock 设备灌数(可重放):1 签到终端 + 1 平板 + 1 停用签到终端。
-- 依据:公寓端/10 表 10-2(gy_sb §12 补列)、表 10-15 / 10-16(设备类别→可见范围矩阵)、
-- 表 10-26 N-34(申请设备须在公寓设备档案登记)、13 表 13-13。
-- 口径:
-- 1) 只登记设备档案,不伪造心跳与缓存台账(gy_sb_xt 由设备真实心跳写入,IT-7 才读)。
-- 2) 签到终端 CHECKIN / ALL_ACTIVE / 允许缓存;平板 TABLET / NONE / 不缓存(表 10-16)。
-- 3) 停用设备 DEV-CHECKIN-99 用于验证 40303:countDeviceByCode 只认 state <> 'DISABLED',
-- 停用设备不得作为 N-34 申请设备。
-- 4) device_code 入库大写,与 AptDeviceSigner 的规范化口径一致;重复执行不产生重复设备。
-- 执行前可用以下方式覆盖公寓标识(需与环境变量 APT_GY_ID 保持一致):
-- mysql ... -e "SET @apt_gyid='YOUR_GYID'; SOURCE 15_it3_seed.sql"
-- =============================================================================
SET @apt_gyid := COALESCE(NULLIF(@apt_gyid, ''), 'APT-REV01-001');
-- 1. 设备档案(§12 补列随 14_it3_columns.sql 一并落地)
INSERT INTO gy_sb
(gyid, device_code, device_type, device_class, room_id, state,
face_scope_type, face_scope_ref, face_scope_value, face_cache_enabled,
biz_version, deleted)
VALUES
(@apt_gyid, 'DEV-CHECKIN-01', 'FACE', 'CHECKIN', NULL, 'ACTIVE',
'ALL_ACTIVE', 'scope://face/all-active', 'ALL', 1, 1, 0),
(@apt_gyid, 'DEV-TABLET-01', 'TABLET', 'TABLET', 'ROOM-201', 'ACTIVE',
'NONE', NULL, NULL, 0, 1, 0),
(@apt_gyid, 'DEV-CHECKIN-99', 'FACE', 'CHECKIN', NULL, 'DISABLED',
'ALL_ACTIVE', 'scope://face/all-active', 'ALL', 1, 1, 0)
ON DUPLICATE KEY UPDATE device_type = VALUES(device_type), device_class = VALUES(device_class),
room_id = VALUES(room_id), state = VALUES(state),
face_scope_type = VALUES(face_scope_type), face_scope_ref = VALUES(face_scope_ref),
face_scope_value = VALUES(face_scope_value),
face_cache_enabled = VALUES(face_cache_enabled), deleted = VALUES(deleted);
-- 2. 校验
SELECT '=== IT-3 Mock 设备(应 3 行:2 CHECKIN + 1 TABLET)===' AS section;
SELECT device_code, device_type, device_class, state,
face_scope_type, face_scope_value, face_cache_enabled
FROM gy_sb
WHERE gyid = @apt_gyid
AND device_code IN ('DEV-CHECKIN-01', 'DEV-TABLET-01', 'DEV-CHECKIN-99')
ORDER BY device_code;
SELECT '=== N-34 可申请设备(state <> DISABLED,应 2)===' AS section;
SELECT COUNT(*) AS apply_device_count
FROM gy_sb
WHERE gyid = @apt_gyid
AND device_code IN ('DEV-CHECKIN-01', 'DEV-TABLET-01', 'DEV-CHECKIN-99')
AND state <> 'DISABLED';
SELECT '=== 表 10-16 矩阵一致性(CHECKIN 须 ALL_ACTIVE 且可缓存;TABLET 不得缓存,应 0 行违规)===' AS section;
SELECT device_code, device_class, face_scope_type, face_cache_enabled
FROM gy_sb
WHERE gyid = @apt_gyid AND deleted = 0
AND ( (device_class = 'CHECKIN' AND (face_scope_type <> 'ALL_ACTIVE' OR face_cache_enabled <> 1))
OR (device_class = 'TABLET' AND face_cache_enabled <> 0))
ORDER BY device_code;