Skip to Content

2026年07月20日

内容截止日: 2026年07月26日

本周工作计划与执行完成进度

中心服务平台 - 功能完善

  • 进度: 🔘 未开始 -> 🟡 进行中 -> ⚠️ 部分完成 -> ✅ 已完成 -> 📌 已自测
    • 以往已完成的工作不再重复,详情请查看上周及上月报告
    • 〔工作量〕es-center-server-services 94 次(设计 34 · 代码 60)· 代码 +7.5k/-3.0k | es-center-server-web-app 69 次(设计 21 · 代码 48)· 代码 +4.9k/-2.3k | es-center-server-build 2 次 · 代码 +0.1k
    • 〔方法论〕审查发现先裁决再整改 | 缓存按阶段设计、验证与实施 | 对讲前后端先约定合同 | ADR 与改码前必查清单
    • 7-20 ~ 7-21: post-0619 审查整改
      • ✅ 后端完成 post-0619(6 月 19 日后)审查整改,公共查询与消息规则统一 〔es-center-server-services〕
        • 审查 建立 post-0619 全量审查报告骨架和覆盖台账。review-unit(可独立核对的审查单元)约定输入、证据与失败恢复方式,逐项记录已覆盖路径、确认问题和待处理项。
        • 设计 将确认问题拆成有顺序的处理阶段;保留关系复合写入的布尔聚合与部分成功边界,不把返回 false 自动解释为事务回滚。审查整改方案、分阶段计划和会话记录同步整理,code review 报告统一归档到 .ai/review/code。
        • 重构 查询限流集中到 query limit policies 和 QueryLimits:device、platform 及各 Controller 共用单次返回条数与分页上限策略,保持原默认值和边界。
        • 重构 MQTT(发布订阅消息协议)的文本消息统一送入 IoT JMS(服务间消息通知)字符串入口;模拟 PTT(按住讲话)retrieve(配置获取请求)也改走文本,不再记录完整消息载荷。
        • 重构 统一布尔值归一化,将稳定默认值移出 nacos(配置中心);admin 登录固定到 default(默认)租户,普通用户的租户选择逻辑保留。
        • 审查 核对 Janus(对讲的底层音视频网关)路由与设备标识。
        • 重构 简化空值检查,让 IoT client id 只解析一次;重试仍使用完整原始标识。
        • 实施 接受非 UUID nonce(一次性随机校验值)。
        • 测试 锁定标量路由合同。
        • 重构 关系查询增加显式 soft-delete(逻辑删除)开关;仅 removal 路径包含已删除关系,保存与更新继续查询活动关系。TalkGroup(对讲群组)分页返回类型同步统一。
      • ✅ 前端按审计发现整改群组边界与界面结构 〔es-center-server-web-app〕
        • 设计 修订 6-19 后审计计划,记录 post-audit 整改方案和分项计划;同步审查报告、执行记录与产物路径。
        • 重构 device-list-cleanup 分支合并完成,删除未使用设备列表组件。
        • 审查 保留审查整改的对应记录。
        • 重构 对讲群组端点集中到 API 层,设备—群组关系校验移到边界;编辑器与状态模块复用关系摘要,关系载荷、权限判断及候选结果组件同步整理。
        • 实施 对话框按钮组与图标按钮用法统一,尊重减少动画设置;可选 Janus 编号的校验提示拆开,静默请求错误补上抑制重复日志的说明。
    • 7-21 ~ 7-24: 前端在线状态与保存防重
      • ✅ 工作台和绑定界面接入同一份在线状态 〔es-center-server-web-app〕
        • 设计 对讲在线状态改由 MQTT 查询,去掉集中注册与引用计数,即不再按使用方数量维护额外登记层;注册作用域与实施输入随后澄清。
        • 实施 建立在线状态 store(集中存放界面状态的对象)及查询协调器;工作台、反向绑定和绑定设备三处接入状态解析,随后合并该实施分支。
      • ✅ 群组保存增加防重入,替代提交节流 〔es-center-server-web-app〕
        • 设计 明确 talkgroup 提交防重入 guard(防止重复提交的守卫),形成设计与计划;移除 Janus/talkgroup 原有提交节流,即限制提交频率的处理。
        • 实施 保存期间拦住再次提交,连点保存不再重复发送。
    • 7-21 ~ 7-24: 设备列表缓存
      • ✅ 静态查询、完整静态缓存和动态批量组装完成 〔es-center-server-services〕
        • 设计 先定位列表中逐设备查询的问题,再选择「静态查询 + 服务器/固件批量详情」方案。将查询基础、缓存服务和动态字段组装分阶段实施,固定租户、数据权限、排序、复制与回滚约束。
        • 设计 云端验收及发布/回滚预案先写进计划;门禁脚本按语义位置检查,不依赖易漂移的行号。静态缓存职责收回现有设备服务,避免另建重复查询边界。
        • 实施 阶段一新增设备列表静态查询、采集服务器批量详情和固件批量详情;阶段二缓存完整静态列表,并批量 enrichment(补齐关联详情)。动态状态随后批量组装,保持列表排序、默认上限与返回对象复制。
        • 测试 7-22 ~ 7-23,核对查询、空入参、批量边界与缓存不受返回对象修改影响的合同;修正 phase 2 静态审查门禁,让测试类历史名称与新增调用点不再误报。
      • 📌 对讲架构讨论与缓存性能审查已有记录 〔es-center-server-services〕
        • 评审 在 grilling(逐条追问的设计评审)中梳理在线状态、PTT 配置、房间生命周期与 Janus 路由;记录缓存性能审查,重组对讲架构 issue 编号并扩写 spec 合同。
    • 7-21 ~ 7-24: 前端房间与回放
      • ✅ 房间数据入口统一,断连与恢复行为完成调整 〔es-center-server-web-app〕
        • 设计 room(对讲房间)唯一 HTTP 入口定为 getByTalkGroupId;明确 participant(房间参与者)身份和生命周期,新增三份实现计划。Web 对讲细化设计与 ADR 0003-0006 记录有界重试、RoomPIN、入房前确保房间存在和成员列表的约定。
        • 实施 房间元数据加载、复用与稳定化完成:复用进行中的请求,复用范围限于本次路由进入,数据绑定到所请求群组;加载失败显式显示错误。参与者改从 Janus 获取,刷新状态增加守卫。
        • 实施 房间生命周期按四项边界处理:MQTT 断连 fail-fast(立即失败,不排队等待)、房间可用性裁决、中断恢复、清理时保留 Janus 目标。离房取消等待,连接或房间失败后停止加载和刷新。
        • 实施 修复迟到事件、参与者广播与 Janus 应答路由的异常和竞态。
        • 设计 成员同步方案由增量合并改用 Janus snapshots(完整快照),并细化失败恢复设计;本周修订的是 spec、ADR 与实施事项,快照方案仍是设计进展。
      • ✅ 回放页拆成组件,补齐播放器与文件卡片 〔es-center-server-web-app〕
        • 实施 playback(回放页)路由拆开布局、时间轴、文件列表、地图和控制区,并内联图标;补齐 player-2 组件族,新增 box-2 文件卡片与 route-last 路由组件。
        • 设计 回放拆分随附的 ADR 记录 talking indicator(正在讲话提示)延后处理。
    • 7-23 ~ 7-25: 后端在线状态与房间补偿
      • ✅ 后端区分两类对讲客户端状态,PTT 下发完整配置 〔es-center-server-services〕
        • 设计 在线状态按 PTT/SFU(音视频转发服务器)客户端类型区分;同时约定 room PIN(进房密码)和 PTT 房间操作前的 SFU 校验。
        • 实施 在线状态按类型批量读取并使用缓存,空白账号直接归为离线,预置 SFU 客户端常量。
        • 实施 PTT 配置保留数据库顺序,canSpeak 统一格式,空快照也强制下发,用于清除设备旧配置。
        • 重构 移除 JetCache(缓存框架)在线状态读写的冗余异常兜底;锁定旧版缓存键的兼容读取合同,普通设备入口继续读取历史状态键。
        • 实施 TalkGroup 更新禁止改动创建后不可变字段,存在性校验覆盖跨租户及软删除记录。
      • ✅ 房间补偿改为分页增量,并增加每日销毁补偿 〔es-center-server-services〕
        • 实施 房间操作前核对 SFU 在线状态;活动房间补偿采用分页增量与周期调度,已删除房间每日补偿销毁。调度时区改用服务器/JVM 默认时区。
        • 测试 完成后端预验收,记录待人工签署清单;新增本地构建脚本,便于重复验证。预验收保持其原有边界。
    • 7-24 ~ 7-26(含 7-26 周日): 编码规范与回归修复
      • ✅ 编码规范改组为 ADR 与必查清单,简化重构完成 〔es-center-server-services〕
        • 设计 将散落工程规则整理为 ADR(架构决策记录)与改码前必查清单;完善编码规范及体验改进提示词,修正缓存 ADR,记录允许并存的实现方式与既有缓存不为形式统一而迁移的偏好。
        • 重构 移除重复参数校验、统一判空,改用 Java 原生集合构造器;群组设备关系的批量校验、事务与结果语义下沉到服务层。
        • 重构 抽取在线状态批量查询组件,统一查询复用、去重与分批;简化缓存读取,让空结果和缺失键沿用离线默认值。
        • 重构 整理角色/用户组/租户 ID 集合构造、内存分页范围、Janus topic(消息主题)空值归一化与自定义日期区间,保留各自原有边界和回退行为。
      • ✅ 回归审查完成复核,确认问题按独立修复方案处理 〔es-center-server-services〕
        • 审查 建立回归审查提示词、报告与复核工作流脚本;对初审逐项核对证据、修正误报,再将回归问题拆成独立 repair session prompts(修复会话提示词)。
        • 实施 明确公开保存未抛异常即视为完成;统一个人空间查询限流,强制 Janus 编号先持久化且创建后不变。
      • 📌 Janus 会话兼容与 room PIN 合同继续推进 〔es-center-server-services〕
        • 实施 恢复 Janus session 兼容,同时接受数字和字符串形式的 session_id/handle_id(会话与句柄标识);管理密钥 fallback(本地兜底范围)收窄为仅数据库未配置时使用本地 secret,不再吞掉查询异常。
        • 设计 形成群组详情返回 room pin 的设计,返回字段仍待实施;新增 ADR-0008,并统一 roomPin/roomSecret 的边界。
    • 7-20 ~ 7-24: 构建环境与发布物
      • ✅ 构建基座与目标发布流程同步调整 〔es-center-server-build〕
        • 实施 Web 基座升级到 Node 26.5.0,显式批准必要的原生构建脚本后重装依赖;同步基础镜像入口,迁移一个 CA 发布目标,暂时停用 APK 上传与部分镜像分发。
        • 实施 Web 与后端分别选择长期协作分支,生成 07-22 发布物并同步四个正式目标引用;为测试目标新增构建、传输、加载和 Compose 重启的手工流程。
      • ✅ 后端执行记录与本地工作环境完成整理 〔es-center-server-services〕
        • 设计 后端整理本地 Markdown 工单、分诊标签、领域文档与 Agent 工作流入口;会话日志按审查、设计与实施阶段对应。
        • 重构 开发日志、数据同步和 SFTP 路径统一到 /tmp,精简重复配置与编辑器扩展。
      • ✅ 前端工作流与报告入口同步整理 〔es-center-server-web-app〕
        • 设计 更新 Agent skills 工作流、prompt 跟踪和审查产物路径,移除废弃模板,保留本周设计、整改和实施的可追溯记录。

其它工作

  • 目标: 记录日常杂项工作、协作沟通等事务
  • 进度: 🔘 未开始 -> 🟡 进行中 -> ⚠️ 部分完成 -> ✅ 已完成 -> 📌 已自测
    • 📌 以往已自测工作不再重复,详情请查看上周及上月报告
    • 20 日
      • ✅ 协作 git → svn 源代码同步
    • 23 日
      • ✅ 排障 KH3980(印度客户执法仪): 排查切换租户后异常(前后端版本不一致)并部署新版;回放改英文版并部署;协助排查回放地图问题
    • 24 日
      • ✅ 排障 KH3980: 回退部署为旧版,避免上线未经系统化测试的新版本
    • 25 日
      • ✅ 排障 KH3980: 处理线上问题——客户误删数据后重启无法登录,定位为 bmc 程序与本程序重启时相互抢资源,本项目 postgresql 未抢占成功导致启动失败
Last updated on