Files
junhong_cmp_fiber/openspec/changes/add-silence-batch-extension/proposal.md

33 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Why
现有批量特殊延期藏在单个资产的延期弹窗里,导入 CSV 要填系统内部的 `package_usage_id` 且每行单独填天数,运营无法使用;名单有一条不合格就整批拒绝;企微审批单只显示首条资产和条数,审批人看不到 100 个资产的明细;管理端也没有批次查询页面。
## What Changes
- 管理端新增独立的「批量延期」弹窗:延期天数、延期类型、原因、依据、附件只填一次,所有资产统一天数。
- 导入文件只有一列:ICCID / 虚拟号 / IMEI;ICCID 对应卡绑定在设备上时按设备处理,同一资产重复只算一次。
- 资产名下所有处于沉默期的套餐(已过期、待实名)全部延期;**新增"过期前延期"**:待实名套餐也可通过特殊延期把截止日延后(原截止日 + 天数),状态保持待实名。
- 新增预检:逐资产逐套餐列出可延期 / 不可延期及原因、原截止日、新截止日;提交时只提交可延期的,不可延期的记入批次结果(不再整批拒绝)。
- 企微审批:资产数 ≤ 5 时审批单"资产"列出全部资产号;> 5 时系统生成 xlsx 明细作为附件上传到审批单(新增业务字段"延期明细",模板增加附件控件);明细文件同时可在管理端下载。
- 管理端新增延期批次列表与详情页:审批状态、成功 / 失败 / 跳过条数、逐条结果、下载明细。
- 原有按 `package_usage_id` 的单资产特殊延期保持不变。
## Capabilities
### New Capabilities
(无)
### Modified Capabilities
- `package-silence-extension`(本迭代 `add-package-silence-period` 引入,尚未归档):新增按资产号的批量特殊延期、预检、过期前延期、审批明细附件、批次查询。以 ADDED 需求补充,不修改未归档变更的原文。
## Impact
- 后端:`internal/application/packagesilence/`(新增批量资产解析、预检、过期前延期执行、明细 xlsx 生成)、审批字段常量与企微场景字段登记(`internal/application/wecom/scene.go`)、DTO 与路由。
- 依赖:复用已引入的 `github.com/xuri/excelize/v2` 与对象存储;企微附件复用现有审批附件上传。
- 数据库:延期批次增加明细文件 Key、跳过明细(jsonb)字段;延期明细允许来源状态为待实名。
- 企微:沉默期审批模板新增"延期明细"附件控件;场景配置新增映射。
- 管理端前端(`iteration/8-11`):批量延期弹窗、批次列表与详情页(另在前端仓库落地)。
- 只部署测试环境。