| HTTP | Controller 方法 | Service | 行为 |
|---|---|---|---|
POST .../doUpdateWf |
update |
doUpdateWf |
选择性字段合并后 replace,标记 dirty |
POST .../doUpdateWfBySpotNo |
updateLastTime |
updateLastTime |
更新 LAST_TIME + dirty,不查 Oracle |
PUT /{id} → modify 不改。
pointNo。get Tarantool 现有行;若不存在且开启 fallback,可从 Oracle 加载后写入。replace 全行(含 _dirty=true, _updated_at=now)。pointNo;失败返回 ""(避免 Controller isEmpty() NPE)。pointNo。update 字段 30=LAST_TIME(epoch ms)、67=_dirty、68=_updated_at。pointNo;失败返回 ""。MeterWorkMonitorTupleCodec 负责 MeterWorkMonitor ↔ List<?>(68 元组)。LAST_TIME:Date.getTime() ↔ Long。"" / number 用 0 / date 用 null(box.NULL)。| 配置 | 行为 |
|---|---|
rtdb.monitor.fallback-oracle=false(默认) |
仅写 Tarantool;失败打日志并返回 "" |
rtdb.monitor.fallback-oracle=true |
Tarantool 失败时回退 mapper.updateByPrimaryKeySelective |
实现类:
com.steerinfo.meterwork.meterworkmonitor.rtdb.MeterWorkMonitorTupleCodeccom.steerinfo.meterwork.meterworkmonitor.rtdb.MeterWorkMonitorRtdbRepositoryMeterWorkMonitorServiceImpl(注入 Repository)