56 lines
3.3 KiB
SQL
56 lines
3.3 KiB
SQL
-- =============================================================================
|
||||
|
|
-- 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;
|