feat: complete reporting and filing workflows
This commit is contained in:
@@ -2579,3 +2579,65 @@ git diff --check
|
||||
- 部署后真实数据库直接验证待审核签名`【安徽航天信息】`返回`allowedActions=["approve","reject"]`、`blockedReasons=[]`且配置必填字段数为0,证明不再套用旧固定资格项。`SmsSubmitRecord`共530条,其中512条已回填通道组ID及名称;剩余18条无法唯一归因的测试或历史提交保持空值,未伪造归因。真实`OperationsService`可返回当天charged计费企业消费排行(首位“启瑞中转企业”77220内部计费单位)及包含`acceptedCount/submitFailureCount`的签名统计。
|
||||
- `.deployed-commit=7c1a0287a0b68e6f3ecdbd16243dd05bb8a263e1`;API、Gateway、Nginx、PostgreSQL、MinIO均active,Redis`PONG`,`12026/17890/8090/3000/6379/5432/9000`均监听。Gateway重启后3个客户CMPP账号因旧进程连接行尚在90秒心跳期限内首次重连收到连接数限制,超时清理后均由客户端自动重连成功,最终4个客户CMPP应用均有实时心跳;4个启用供应商通道也全部恢复`connected/currentConnections=1/desiredConnections=1`。Redis Stream消费者1、`pending=0`、`lag=0`。
|
||||
- 公网首页、运营端、客户端和API health均HTTP 200,公网CMPP 17890 TCP可连接。应用内浏览器验证运营登录页标题为“聆界短信管理平台”,1280px视口`scrollWidth=clientWidth=1280`且控制台0条error/warn;当前无可接管的已登录会话且页面存在图形验证码,未绕过认证,因此十项登录后交互的最终可见验收保留为持有有效运营会话后的人工复核项。本轮未发送真实测试短信。
|
||||
|
||||
## 2026-07-28 运营端有效数据口径与审核详情补齐(本地未提交)
|
||||
|
||||
- 报备字段库引用数改为只统计未删除通道并按通道去重;字段只剩已删除通道历史映射时可正常删除,并同步清理失效映射。通道报备详情同时排除已删除签名。
|
||||
- 运营看板今日企业消费在原有北京时间当日真实charged计费口径上排除已删除企业。
|
||||
- 短信审核列表改为展示发送企业和企业应用,移除审核任务号与审核原因列;详情仍保留任务、原因和真实号码明细。
|
||||
- 短信任务进度号码数量新增真实列表入口,后端按批次提供手机号搜索、分页及手机号、归属地、运营商、短信状态字段,不在浏览器内截断或拼装。
|
||||
- 企业签名引流资料新增/编辑统一为“引流url或号码”,移除独立“引流信息”输入;企业管理移除“数据来自租户、账户真实接口。”研发注释。
|
||||
- 企业认证、短信、模板、签名、引流信息审核入口统一为“详情”,缺失详情入口的页面已补齐;所有详情展示审核时间和审核人员用户名。新审核动作保存真实审核用户,历史缺失审核人不伪造。
|
||||
- Node.js v24.14.0下前端TypeScript、API TypeScript和Vite生产构建通过;字典、通道、运营统计、风控审核、企业认证5 suites / 94 tests及发送链1 suite / 101 tests定向通过,临时本地Redis下API全量26 suites / 358 tests通过,测试结束后已停止临时Redis;`git diff --check`通过。应用内浏览器访问本地生产构建的短信审核路由时,真实鉴权守卫跳转运营登录页;本地预览未连接API而返回502,且图形验证码阻止登录后页面验收,未绕过认证或将登录页冒充目标页面。
|
||||
- 本轮按用户要求保持未提交、未推送、未部署;既有构建缓存、`outputs/`及空文件`=`继续作为其他会话/历史临时产物保留。
|
||||
|
||||
## 2026-07-28 签名/引流导入审核与报备批次页面重构(本地未提交)
|
||||
|
||||
- Excel 导入从“确认后直接写业务对象”改为真实待审核明细:新增 `ReportMaterialImportItem` 保存行号、新增/修改类型、目标对象、资料载荷、原快照、校验错误、审核人及审核时间。提交导入只进入 `pending_review`,不会创建、修改或自动审核通过签名/引流信息。
|
||||
- 短信签名审核和引流信息审核分别增加“导入批次审核”页签,支持按批次查看行明细、勾选多行或整批通过、批量驳回;驳回原因可选。审核通过后才复用真实短信配置服务应用新增/修改并进入正常待报备流程,非法行独立记录错误。
|
||||
- 企业签名管理新增“批量导入签名及引流资料”入口;导入弹窗文案明确为提交审核,不再从待生成资料页混入导入操作。
|
||||
- “待生成报备批次”改为“待生成资料/已生成批次”两个页签,两个页签均提供后端分页、关键字和时间查询;筛选重置使用显式空条件重新查询,避免 React 状态异步导致旧条件残留。
|
||||
- 已生成批次按真实导出文件明细统计报备总数,按关联通道任务当前通过状态统计成功数和成功率;移除已导入回执、等待回执等无明确当前需求的展示。
|
||||
- 原“报备任务”页面收敛为逐通道“报备明细”,移除无真实产物的“生成同范围任务”和回执导入入口。人工状态弹窗只选择目标状态,原因可选;详情展示企业、应用、来源批次/文件行号和按时间顺序排列的状态轨迹。历史回执表及后端兼容接口暂不删除,避免破坏既有数据追溯。
|
||||
- 新增 migration `20260728153000_stage_report_material_import_reviews`。Node.js v24.14.0 下报备资料与通道服务定向 2 suites / 51 tests 通过,覆盖导入仅暂存不改业务对象、无原因驳回、批次总数/成功数/成功率及通道报备关联读取;临时本地 Redis 下 API 全量 26 suites / 361 tests 通过,测试结束后已停止临时 Redis。前端/API TypeScript、Prisma validate、Vite 生产构建及 `git diff --check` 通过,Vite 只保留既有大 chunk 提示。
|
||||
- 应用内浏览器连接失败后按浏览器控制技能切换到可用 Chrome,在本地生产构建访问 `/admin/report-materials`;前端路由和登录守卫正常,但本地未启动 NestJS API,认证请求返回 502 并跳转登录页,且没有可接管的已登录运营会话。未绕过验证码,因此双页签、批次审核和人工状态弹窗的登录后视觉验收仍需有效会话复核,不能以登录页冒充完成。
|
||||
- 本轮按用户要求保持未提交、未推送、未部署;工作区其他会话及历史未提交修改继续原样保留。
|
||||
|
||||
## 2026-07-28 企业营业执照、利润成本与删除余额门禁(本地未提交)
|
||||
|
||||
- 新建/编辑企业共用页面将“企业照片”统一改为“企业营业执照”,同步调整已上传占位、上传按钮、默认文件名和失败提示;对象存储既有 purpose/prefix 保持兼容,不迁移历史文件。
|
||||
- 利润报表成本改为“提交时通道成本单价快照 × 该次提交成功短信分片数”。新数据优先按 `SmsMessageSegmentAudit` 中 `receiptStatus=delivered` 的分片数统计;历史缺少分片审计但存在明确成功回执时按短信计费分片数兼容,失败、未知和未收到成功回执的分片不计成本。企业应用和通道两个利润维度使用同一口径,利润及利润率随成本同步重算。
|
||||
- 企业删除在与充值、扣费、退款相同的 `tenant-account:<tenantId>` PostgreSQL 事务锁内读取真实账户余额;余额非0时拒绝删除并提示“完成余额清算后方可删除,请给企业充值到金额为0”,余额为0后仍继续执行活动企业应用门禁。
|
||||
- Node.js v24.14.0 下报表和企业服务定向 2 suites / 14 tests、API 全量 26 suites / 364 tests、前端与 API TypeScript、Vite 生产构建及 `git diff --check` 通过;Vite 仅保留既有大 chunk 提示。
|
||||
- 本地 PostgreSQL 启动后确认目标为 `localhost:5432/cmpp_platform`,应用至75条 migration;本地 API 在3000端口、前端生产预览在4173端口、Redis在6379端口运行,健康接口和页面均返回 HTTP 200。真实 PostgreSQL 已使用新成本 SQL 成功重算 2026-07-24 至 2026-07-27,未出现 SQL 语法或字段关联错误。
|
||||
- 本地未启动 Gateway,API 启动时本地库两个历史 active 通道的恢复连接请求按预期失败;发送 worker 和回执超时扫描已关闭,不连接供应商、不发送短信,不影响运营页面查看。
|
||||
- 本轮继续保留为未提交、未推送、未部署状态;本地服务按用户要求保持运行。
|
||||
|
||||
## 2026-07-28 恢复状态与下游投递近七天筛选(本地未提交)
|
||||
|
||||
- “恢复状态管理”补充用途说明:该页按客户账号展示 Gateway 在客户重连或实例重启后,对未完成状态回执和上行短信续投的当前/最近一次恢复状态;逐条消息的投递、重试与客户端 ACK 仍在“下游投递记录”查看。
|
||||
- 恢复状态增加按最近更新时间的真实后端时间区间筛选,默认今天在内的近 7 个自然日;摘要、失败分类、分页列表和 CSV 导出统一使用同一筛选条件,重置后恢复默认近 7 天。
|
||||
- 恢复状态列表标题区补充卡片内边距,避免标题紧贴外框;“最后错误/跳过原因”列固定为 320px 可读宽度。下游投递记录创建日期默认及重置均改为近 7 天。
|
||||
- Operations 专项 1 suite / 22 tests 通过,覆盖恢复状态列表和 CSV 导出的北京时间起止边界;前端 TypeScript、API 正式构建配置 TypeScript、Vite 生产构建及 `git diff --check` 通过,Vite 仅保留既有大 chunk 提示。真实本地 PostgreSQL 使用 2026-07-22 至 2026-07-28 条件执行恢复状态查询成功,本地库当前返回 0 条。
|
||||
- API 全量 Jest 在本轮等待 120 秒后仍未结束且未输出最终汇总,确认遗留测试进程仍在运行后已只停止该本轮测试进程;不把它记录为通过或失败。专项测试及正式构建结果不受影响。
|
||||
- 本地 API 已重启并在 3000 端口健康运行,前端生产预览继续在 4173 端口运行;Gateway 未启动,发送 worker 与回执超时扫描保持关闭。本地浏览器已打开运营登录页,受图形验证码保护,未绕过认证。
|
||||
- 本轮保持未提交、未推送、未部署,工作区其他会话及历史未提交修改继续原样保留。
|
||||
|
||||
## 2026-07-28 签名通道与运营商发送质量(本地未提交)
|
||||
|
||||
- 数据统计页新增已登记签名发送质量区域,默认北京时间当天并跟随现有日期查询;支持按签名、企业或应用关键字查询及后端分页。未关联`signatureId`的正文签名按用户最新决定不纳入统计。
|
||||
- 签名主表按业务短信记录展示业务短信、送达成功、送达失败、提交失败、最终成功率和平均到达时间;通道提交数按真实`SmsSubmitRecord`尝试统计,明确允许补发时大于业务短信数。
|
||||
- “查看明细”使用右侧大尺寸抽屉,先按移动、联通、电信汇总,再以通道为行、运营商为列展示提交次数、成功率、平均到达时间和提交失败;同一通道可同时出现多个运营商,不建立错误的一对一归属关系。
|
||||
- 新增独立真实后端接口`GET /admin/operations/signature-quality`,签名汇总只连接平台`SmsSignature`,通道质量复用分片审计及供应商回执完成口径;平均到达时间仅统计成功送达尝试,长短信以全部成功分片完成为准。
|
||||
- Operations定向1 suite / 24 tests通过,新增覆盖分页签名矩阵合并和真实空状态;API TypeScript正式构建、前端TypeScript检查及Vite生产构建通过,Vite仅保留既有约1.98MB单chunk提示。
|
||||
- 新SQL已对本地PostgreSQL真实执行。为便于本地视觉验收,新增必须显式设置`ALLOW_LOCAL_SIGNATURE_QUALITY_DEMO=true`、只允许localhost数据库且在`NODE_ENV=production`下无条件拒绝执行的演示数据脚本,并写入明确标记的“本地统计演示企业/应用”、3个已登记签名、54条业务短信、61次通道提交和51条回执;演示通道均为inactive,Gateway未启动,不连接供应商、不发送短信。
|
||||
- 本地API和前端生产预览分别运行于3000、4173端口,健康检查及数据统计页均HTTP 200。应用内浏览器以真实本地运营会话验证签名列表、运营商概览和通道×运营商矩阵;窄窗口下矩阵横向滚动已限制在矩阵内部,不再撑宽整个详情抽屉。
|
||||
- 本轮按用户要求只运行在本地,保持未提交、未推送、未部署;工作区其他会话已有未提交修改继续保留。
|
||||
|
||||
## 2026-07-28 工作区汇总发布门禁
|
||||
|
||||
- 本次汇总范围包含:报备字段和有效通道引用口径、审核详情与号码列表、签名/引流资料导入审核、待生成资料与已生成批次双页签、报备明细人工状态、企业营业执照文案、利润成功分片成本、企业余额删除门禁、恢复状态和下游投递近7天筛选,以及签名通道×运营商发送质量统计。
|
||||
- 演示数据脚本仅作为本地视觉验收工具纳入源码,不属于部署初始化或migration;脚本必须显式设置`ALLOW_LOCAL_SIGNATURE_QUALITY_DEMO=true`、数据库主机必须为localhost,并在`NODE_ENV=production`时无条件拒绝执行,预发布部署不会写入演示数据。
|
||||
- 发布前重新确认`HEAD`与`origin/main`均为`352a6293b47f95653fbb079f2cf528fba4d59818`,工作区修改来自前序多个会话,按用户明确要求统一归入本次发布;`outputs/`、空文件`=`、`api/tsconfig.build.tsbuildinfo`和`tsconfig.tsbuildinfo`继续作为构建或临时产物排除。
|
||||
- 首次API全量测试因本地Redis未运行导致3个发送链用例连接等待超时;恢复本地Redis后重跑,API全量26 suites / 366 tests全部通过。Prisma format/validate/generate、API TypeScript正式构建、前端TypeScript/Vite生产构建、Gateway `go test ./...`与`go vet ./...`、依赖安全门禁和`git diff --check`均通过;Vite仅保留既有大chunk提示,Jest保留既有`--forceExit`异步句柄提示。
|
||||
- 本节为提交和部署前门禁记录;提交、推送、备份、migration、服务重启和预发布验收结果在发布完成后补记。
|
||||
|
||||
Reference in New Issue
Block a user