fix(import_init): 嵌套码表kv id改用getID(),修拼接id超32字符1406崩溃(bid_qual_match_status_human_required=36);幂等仍靠(parentid,k)组合检查

This commit is contained in:
yumoqing 2026-09-14 12:43:42 +08:00
parent f0b6e69457
commit 7db4f63df9

View File

@ -58,8 +58,11 @@ def normalize(data):
pid = ac['parentid'] pid = ac['parentid']
appcodes.append({'id': pid, 'name': ac.get('parentname', pid), 'hierarchy_flg': '0'}) appcodes.append({'id': pid, 'name': ac.get('parentname', pid), 'hierarchy_flg': '0'})
for item in ac.get('items', []): for item in ac.get('items', []):
# id 用 getID()(21字符)而非 f"{pid}_{k}" 拼接:拼接 id 会超
# appcodes_kv.id varchar(32)(实测 bid_qual_match_status_human_required=36 → 1406)。
# 幂等由 (parentid,k) 组合检查保证,不依赖 id,故随机 id 安全且与历史 UUID 行一致。
appcodes_kv.append({ appcodes_kv.append({
'id': f"{pid}_{item['k']}", 'id': getID(),
'parentid': pid, 'parentid': pid,
'k': item['k'], 'k': item['k'],
'v': item['v'], 'v': item['v'],