Type: task Status: ready-for-human Label: ready-for-human Category: backend-deployment
不是缺列需要补,而是部署时序错位:数据库迁移领先于运行中的构建。
| 事实 | 证据 |
|---|---|
| 运行实例是旧构建 | 后端进程 PID 37792 启动于 2026-10-10 08:28:52,其源码基线为 d8a6b03(2026-10-09) |
| 数据库已被上游重构 | 927fad2 refactor(warning): 重构预警系统数据结构和业务逻辑(林仔,2026-10-10 11:43:10 +0800)提交说明明写「移除预警名称和经纬度字段,优化数据库表结构」,该提交从 EarlyWarning.java 删除了 warningName、longitude、latitude 映射 |
| 旧构建仍读被删列 | d8a6b03 的 EarlyWarning 仍映射 @TableField("warning_name") → MyBatis-Plus 生成 SELECT ... warning_name ... FROM early_warning → KingbaseES 报「字段 "warning_name" 不存在」 |
| 修复已在远端 | 927fad2 与其后的 94971b5 feat(warning): 添加预警参考服务 均已包含在 origin/master(远端 master 现为 94971b5) |
sql/early_warning_system.sql 里 early_warning 仍写着 warning_name,那是旧版建表脚本,不能作为当前库结构的依据;warning_name 现在只存在于 warning_type 表(WarningType.java)。
动作是:用 origin/master(≥ 927fad2)重新构建并部署到联调环境。 这是一次部署动作,按仓库规则不自动执行,由维护者执行。
部署后应同时恢复的端点:/equipments/{code}/events/current 与 history、/events/current、/events/history-analysis、/events/handling-efficiency、/events/multidimensional-analysis、/monitoring/situation、/overview/warning-settings、/infrastructure/emergency-support。
927fad2 同时删除了预警的经纬度字段,因此预警类事件将不再有坐标。用户本次提供的真实报警记录本身即 longitude: null, latitude: null。这与「地图对象不上图」是同一族问题:需要确认驾驶舱对无坐标预警事件的呈现(不得伪造坐标),并与前端执行票 24 的坐标纪律一致。
927fad2,且与 origin/master 一致)。code=200,且报警字段真实(warningCode、阈值、报警等级);确认 warningName 是改由 warning_type 关联取得还是按新契约置空。verify/t18-real-audit.mjs,events-* 与 warning-* 相关失败项清零。发现于票 18;根因为部署时序,与前端执行票 22(前端把 code=500 读成 success)叠加放大了故障表现——两处都要修。