All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m3s
4.1 KiB
4.1 KiB
1. 配置与文档
- 1.1 更新
scripts/migration/config/mapping.yaml.example,新增ownership_rules、package_rules、overrides示例 - 1.2 更新
scripts/migration/resources/README.md,说明current_slot、package_source_slot、批量默认槽位和覆盖优先级 - 1.3 更新
scripts/migration/README.md,说明新执行流程、审核 CSV、错误阻断规则和手动验证方法 - 1.4 更新
docs/脚本/奇成数据迁移方案.md,将范围改为当前生效 + 未生效待生效套餐,并说明 mapping.yaml 是决策源
2. 配置加载与输入解析
- 2.1 扩展
lib/mapping_loader.py,新增归属规则、套餐规则、覆盖规则的数据结构 - 2.2 在
mapping_loader中实现配置校验:店铺码格式、槽位范围、套餐规则、覆盖项唯一性 - 2.3 扩展
lib/csv_loader.py,支持读取设备行级current_slot和package_source_slot - 2.4 实现设备槽位解析优先级:设备行配置 >
overrides.devices>ownership_rules.device默认值 - 2.5 保留或显式拒绝旧配置结构,输出中文错误提示和升级指引
3. 奇成套餐生命周期查询
- 3.1 在
lib/legacy_query.py新增正式套餐生命周期查询函数,读取当前生效和未生效待生效套餐所需字段 - 3.2 查询结果保留 legacy 套餐 ID、套餐名、类型、状态、开始时间、到期时间和稳定排序键
- 3.3 排除加油包和已过期套餐,并在审核产物中记录跳过原因
- 3.4 处理同一资产多个 active 主套餐的冲突:无法唯一裁决时写入错误并阻断该资产套餐生成
4. 归属决策与资产 SQL
- 4.1 新增归属解析模块或函数,统一输出资产目标店铺、决策来源和错误
- 4.2 修改卡资产生成逻辑:独立卡按
ownership_rules.standalone_card和覆盖项确定店铺 - 4.3 修改设备资产生成逻辑:设备按
ownership_rules.device、槽位配置和覆盖项确定店铺 - 4.4 修改设备绑定逻辑:
is_current使用解析后的current_slot,不再固定默认 slot1 - 4.5 修改分配记录生成逻辑:只按归属解析结果生成,不再依赖奇成
agent_id
5. 套餐队列 SQL
- 5.1 拆分独立卡套餐生成路径,生成
single_card订单和套餐使用记录 - 5.2 拆分设备套餐生成路径,按
package_source_slot生成device订单和套餐使用记录 - 5.3 为 active 套餐写入
status=1、生效/到期时间和用量快照 - 5.4 为 pending 套餐写入
status=0、稳定priority、到期时间和 0 用量 - 5.5 设备和卡的
series_id从目标套餐tb_package.series_id回填,并覆盖已有资产漏写场景 - 5.6 目标套餐不存在、已删除或不是 formal 时生成 SQL 前置校验或错误阻断
6. 审核产物与错误输出
- 6.1 生成
output/ownership_resolution.csv - 6.2 生成
output/package_resolution.csv - 6.3 更新
output/summary.txt,展示分配数、active/pending 套餐数、跳过数和错误数 - 6.4 更新
errors.csv/warnings.csv结构或内容,覆盖店铺缺失、槽位缺失、套餐映射缺失、目标套餐无效等关键错误 - 6.5 确保关键错误阻断对应资产或套餐 SQL,不再静默进入平台库存
7. 手动验证
- 7.1 使用当前 120 台设备样例生成 SQL,确认
ownership_resolution.csv显示 120 台设备归属到预期店铺 - 7.2 使用包含 current + pending 套餐的小样例生成 SQL,确认
package_resolution.csv显示 active 和 pending 队列 - 7.3 检查
step2_02_package_usages.sql,确认 active 写status=1,pending 写status=0且 priority 稳定递增 - 7.4 检查设备套餐 SQL,确认只为
package_source_slot生成 device 级套餐,非来源槽位不重复生成主套餐 - 7.5 在测试库手动执行生成 SQL,查询
tb_device.shop_id、tb_iot_card.shop_id、tb_package_usage.status、tb_package_usage.priority和资产series_id - 7.6 记录未验证项和已知限制,不新增自动化测试或
_test.go