All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 14m42s
- 设备资产解析外层 real_name_status:存在当前使用卡时沿用该卡状态,无任何当前卡时任一有效绑定卡已实名即视为已实名 - 手工绑定与设备导入:设备最大槽位为 1 且有效绑定唯一时,在同一事务内将该绑定初始化为当前使用卡;多卡设备不推断 - 同步 asset-device、personal-customer 主 Spec;归档变更并附存量核对清单(75 条单槽唯一待修复绑定,其中 16 条已实名)
7.6 KiB
7.6 KiB
存量当前卡标识核对与受控修复清单
本文件是 change fix-device-realname-without-current-card 任务 4.1 的只读核对产物,供维护者执行任务 4.2 的受控修复使用。
- 核对时间:2026-09-18
- 核对环境:生产库只读查询(dbhub
pro_main),全程未产生写入。 - 核对口径:
design.md决策 4 的只读查询。
口径 SQL
SELECT d.id AS device_id, b.id AS binding_id, b.iot_card_id
FROM tb_device_sim_binding b
JOIN tb_device d ON d.id = b.device_id AND d.deleted_at IS NULL
WHERE b.bind_status = 1
AND d.max_sim_slots = 1
AND NOT EXISTS (SELECT 1 FROM tb_device_sim_binding x
WHERE x.device_id = b.device_id AND x.bind_status = 1 AND x.is_current)
AND (SELECT count(*) FROM tb_device_sim_binding y
WHERE y.device_id = b.device_id AND y.bind_status = 1) = 1;
结果统计
| 指标 | 数量 |
|---|---|
| 待修复绑定(=待修复设备) | 75 |
其中绑定卡已实名(real_name_status = 1) |
16 |
| 其中绑定卡未实名 | 59 |
影响面参考(同库只读统计):
| 指标 | 数量 |
|---|---|
| 存在有效绑定卡的设备 | 19031 |
| 其中没有任何当前卡标识 | 638 |
| 其中存在已实名绑定卡 | 76 |
| 其中单槽唯一有效绑定(本清单范围) | 75(已实名 16) |
待修复绑定清单
| device_no | device_id | binding_id | iot_card_id | iccid | real_name_status |
|---|---|---|---|---|---|
| 60002846141 | 6 | 11 | 5113 | 89860624660028461414 | 1 |
| 60002846880 | 11 | 16 | 5118 | 89860624660028468807 | 1 |
| 60002817472 | 13 | 18 | 5120 | 89860624660028174728 | 1 |
| 60002817732 | 14 | 19 | 5121 | 89860624660028177325 | 1 |
| 60002842491 | 16 | 21 | 5123 | 89860624660028424917 | 1 |
| 90001595835 | 369 | 974 | 86943 | 89860624590015958355 | 1 |
| 60003081045 | 18909 | 36349 | 131202 | 89860624660030810459 | 1 |
| 90001595210 | 18912 | 36356 | 131211 | 89860624590015952101 | 1 |
| 90001595801 | 18921 | 36373 | 131227 | 89860624590015958017 | 1 |
| 90001595438 | 18942 | 36414 | 131355 | 89860624590015954388 | 1 |
| 60003080864 | 19081 | 36711 | 131611 | 89860624660030808644 | 1 |
| 90001595459 | 19082 | 36712 | 131226 | 89860624590015954594 | 1 |
| 90001595626 | 19090 | 36730 | 131609 | 89860624590015956268 | 1 |
| 60003080488 | 19091 | 36731 | 131610 | 89860624660030804882 | 1 |
| 90001595086 | 19092 | 36732 | 131679 | 89860624590015950865 | 1 |
| 60003081496 | 19128 | 36784 | 131780 | 89860624660030814964 | 1 |
| 60002842359 | 7 | 12 | 5114 | 89860624660028423596 | 0 |
| 60002846803 | 8 | 13 | 5115 | 89860624660028468039 | 0 |
| 60002842779 | 9 | 14 | 5116 | 89860624660028427795 | 0 |
| 60002842976 | 10 | 15 | 5117 | 89860624660028429767 | 0 |
| 60002817595 | 12 | 17 | 5119 | 89860624660028175956 | 0 |
| 60002817949 | 15 | 20 | 5122 | 89860624660028179495 | 0 |
| 60003080109 | 368 | 973 | 86942 | 89860624660030801094 | 0 |
| 60003081398 | 370 | 975 | 86944 | 89860624660030813982 | 0 |
| 90001595523 | 371 | 976 | 86945 | 89860624590015955237 | 0 |
| 60003081183 | 372 | 977 | 86946 | 89860624660030811838 | 0 |
| 60003081174 | 373 | 978 | 86947 | 89860624660030811747 | 0 |
| 60003081651 | 374 | 979 | 86948 | 89860624660030816514 | 0 |
| 90001595896 | 375 | 980 | 86949 | 89860624590015958967 | 0 |
| 60003080879 | 376 | 981 | 86950 | 89860624660030808792 | 0 |
| 90001595588 | 377 | 982 | 86951 | 89860624590015955880 | 0 |
| 60003081516 | 378 | 983 | 86952 | 89860624660030815169 | 0 |
| 60003081645 | 379 | 984 | 86953 | 89860624660030816456 | 0 |
| 60003081643 | 380 | 985 | 86954 | 89860624660030816431 | 0 |
| 60003080711 | 381 | 986 | 86955 | 89860624660030807117 | 0 |
| 60003080190 | 382 | 987 | 86956 | 89860624660030801904 | 0 |
| 90001595805 | 383 | 988 | 86957 | 89860624590015958058 | 0 |
| 60003080161 | 384 | 989 | 86958 | 89860624660030801615 | 0 |
| 90001595810 | 385 | 990 | 86959 | 89860624590015958108 | 0 |
| 60003081366 | 386 | 991 | 86960 | 89860624660030813669 | 0 |
| 60003081251 | 387 | 992 | 86961 | 89860624660030812513 | 0 |
| 60003081350 | 388 | 993 | 86962 | 89860624660030813503 | 0 |
| 60003080752 | 389 | 994 | 86963 | 89860624660030807521 | 0 |
| 60003081310 | 390 | 995 | 86964 | 89860624660030813107 | 0 |
| 60003080791 | 391 | 996 | 86965 | 89860624660030807919 | 0 |
| 60003081268 | 392 | 997 | 86966 | 89860624660030812687 | 0 |
| 90001595763 | 18913 | 36357 | 131212 | 89860624590015957639 | 0 |
| 90001595413 | 18914 | 36358 | 131213 | 89860624590015954131 | 0 |
| 60003080907 | 19093 | 36733 | 131680 | 89860624660030809071 | 0 |
| 60002817276 | 19101 | 36756 | 112006 | 89860624660028172763 | 0 |
| 60003080052 | 19102 | 36757 | 131715 | 89860624660030800526 | 0 |
| 90001595253 | 19103 | 36758 | 131716 | 89860624590015952531 | 0 |
| 90001595502 | 19104 | 36759 | 131717 | 89860624590015955021 | 0 |
| 60003081741 | 19105 | 36760 | 131718 | 89860624660030817413 | 0 |
| 90001595886 | 19107 | 36763 | 131719 | 89860624590015958868 | 0 |
| 90001595902 | 19108 | 36764 | 131720 | 89860624590015959023 | 0 |
| 90001595553 | 19109 | 36765 | 131721 | 89860624590015955534 | 0 |
| 90001595460 | 19110 | 36766 | 131722 | 89860624590015954602 | 0 |
| 60003081979 | 19111 | 36767 | 131723 | 89860624660030819799 | 0 |
| 60003081938 | 19112 | 36768 | 131724 | 89860624660030819385 | 0 |
| 60003081807 | 19113 | 36769 | 131725 | 89860624660030818072 | 0 |
| 90001595761 | 19114 | 36770 | 131726 | 89860624590015957613 | 0 |
| 90001595422 | 19115 | 36771 | 131727 | 89860624590015954222 | 0 |
| 60003081975 | 19116 | 36772 | 131728 | 89860624660030819757 | 0 |
| 60003080037 | 19117 | 36773 | 131729 | 89860624660030800377 | 0 |
| 90001595510 | 19118 | 36774 | 131730 | 89860624590015955104 | 0 |
| 60003080038 | 19119 | 36775 | 131731 | 89860624660030800385 | 0 |
| 60003080062 | 19120 | 36776 | 131732 | 89860624660030800625 | 0 |
| 60002817135 | 19121 | 36777 | 111363 | 89860624660028171351 | 0 |
| 60003080264 | 19122 | 36778 | 131745 | 89860624660030802647 | 0 |
| 90001595473 | 19123 | 36779 | 131746 | 89860624590015954735 | 0 |
| 60003080128 | 19124 | 36780 | 131776 | 89860624660030801284 | 0 |
| 90001595873 | 19125 | 36781 | 131777 | 89860624590015958736 | 0 |
| 60003081839 | 19126 | 36782 | 131778 | 89860624660030818395 | 0 |
| 60003081051 | 19127 | 36783 | 131779 | 89860624660030810517 | 0 |
受控修复(由维护者执行,不随发布自动执行)
修复语句使用与核对完全相同的口径,且限定 bind_status = 1,同一设备至多命中一条:
UPDATE tb_device_sim_binding b
SET is_current = true, updated_at = now()
WHERE b.bind_status = 1
AND b.id IN (
SELECT b2.id
FROM tb_device_sim_binding b2
JOIN tb_device d ON d.id = b2.device_id AND d.deleted_at IS NULL
WHERE b2.bind_status = 1
AND d.max_sim_slots = 1
AND NOT EXISTS (SELECT 1 FROM tb_device_sim_binding x
WHERE x.device_id = b2.device_id AND x.bind_status = 1 AND x.is_current)
AND (SELECT count(*) FROM tb_device_sim_binding y
WHERE y.device_id = b2.device_id AND y.bind_status = 1) = 1
);
执行前后核对:
- 执行前重跑本文件口径 SQL,与清单行数(75)比对;不一致则以最新结果为准。
- 执行后重跑口径 SQL,结果应为 0 行。
- 校验同一设备不存在多条
is_current = true:应返回 0 行。SELECT device_id, count(*) FROM tb_device_sim_binding WHERE bind_status = 1 AND is_current GROUP BY device_id HAVING count(*) > 1; - 抽样实接口核对资产信息外层实名与卡列表当前卡标识(含设备
90001595626)。
回滚:UPDATE tb_device_sim_binding SET is_current = false WHERE id IN (<清单 binding_id>)。