feat(运营报表): AUG26-015 设备激活与套餐续费日报快照、查询趋势与受控导出
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 15m33s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 15m33s
- 新增成对迁移 000231 与三张快照表:日级头行、设备粒度激活行、到期事件粒度续费行,以快照日期为唯一键 - 新增每日 03:30(Asia/Shanghai)日报快照生成任务与幂等整日替换,失败重试沿用同一目标日 - 新增六条受控入口:两张报表的汇总、日/月趋势与受控导出,配套查询层只读快照事实 - 新增 operations_activation 与 operations_renewal 两个导出场景,创建期冻结筛选与可见店铺范围、派发期冻结表头、执行期只按冻结值复核资格 - 采购数量口径按系统内未删除设备数实施并在 PRD 标注,附实测差额依据 - 同步证据链 requirement-evidence.json 与入口能力矩阵、ARCHITECTURE 与验证记录 - 归档 change add-operations-reports 并新建主 Spec openspec/specs/operations-report/spec.md
This commit is contained in:
32
migrations/000231_create_operations_report_snapshot.down.sql
Normal file
32
migrations/000231_create_operations_report_snapshot.down.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- 回滚运营报表日报快照三张表,与 up 严格成对。
|
||||
-- 删除顺序与 up 的创建顺序严格倒序:先删索引,再按依赖无关的表逐一删除
|
||||
-- (三张表之间没有外键与视图,删除顺序不产生级联影响;表内 CHECK 约束随表一并移除)。
|
||||
--
|
||||
-- 不可逆说明:本迁移的 down 会删除全部已生成的日报快照。
|
||||
-- 快照是「截至某个上海自然日」的冻结读数,其源事实(实名状态可逆转、到期时间可被改写)
|
||||
-- 无法事后重算,因此 down 只在确认不需要历史报表时执行。
|
||||
--
|
||||
-- 守卫:存在已生成的快照行时直接阻断回滚,避免误删已经无法重建的历史报表事实。
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM tb_operations_report_snapshot LIMIT 1) THEN
|
||||
RAISE EXCEPTION '已存在运营报表日报快照,拒绝回滚以避免丢失无法重建的历史报表事实';
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
LOCK TABLE tb_operations_report_snapshot IN ACCESS EXCLUSIVE MODE;
|
||||
LOCK TABLE tb_operations_report_activation_row IN ACCESS EXCLUSIVE MODE;
|
||||
LOCK TABLE tb_operations_report_renewal_row IN ACCESS EXCLUSIVE MODE;
|
||||
|
||||
DROP INDEX IF EXISTS idx_operations_report_renewal_series;
|
||||
DROP INDEX IF EXISTS idx_operations_report_renewal_shop;
|
||||
DROP INDEX IF EXISTS uk_operations_report_renewal_row;
|
||||
DROP TABLE IF EXISTS tb_operations_report_renewal_row;
|
||||
|
||||
DROP INDEX IF EXISTS idx_operations_report_activation_shop;
|
||||
DROP INDEX IF EXISTS uk_operations_report_activation_row;
|
||||
DROP TABLE IF EXISTS tb_operations_report_activation_row;
|
||||
|
||||
DROP INDEX IF EXISTS uk_operations_report_snapshot_date;
|
||||
DROP TABLE IF EXISTS tb_operations_report_snapshot;
|
||||
Reference in New Issue
Block a user