# Tarantool Space：METER_WORK_MONITOR

## 引擎与主键

- Engine：`memtx`
- Space 名：`METER_WORK_MONITOR`
- PK：`POINT_NO`（format 第 1 字段，string）
- 字段顺序与 Oracle 业务列一致；线上实测为 **65 列业务字段** + `_dirty` + `_updated_at`（共 67）。

## 类型映射

| Oracle | Tarantool | Java |
|--------|-----------|------|
| VARCHAR2 | string | String |
| NUMBER / NUMBER(n) | number | Short / Long |
| DATE (`LAST_TIME`) | number（毫秒 epoch） | Date |

## 辅助字段（不落 Oracle）

| 字段 | 位置 | 类型 | 说明 |
|------|------|------|------|
| `_dirty` | 66 | boolean | Job 增量同步标记 |
| `_updated_at` | 67 | number | 最近写入毫秒时间戳 |

## 字段序号（1-based，供 update ops）

| # | 列名 | # | 列名 |
|---|------|---|------|
| 1 | POINT_NO | 34 | IS_REMOTE |
| 2 | POINT_NAME | 35 | WEIGH_INSTRUMENT_MODEL |
| 3 | VALID_WGT | 36 | WEIGH_INSTRUMENT_PARAM |
| 4 | VALID_CARNO | 37 | MOXA_IP |
| 5 | VALID_TARE_TIME | 38 | MOXA_PORT |
| 6 | VALID_TIME_INTERVAL | 39 | VALID_LIANDA |
| 7 | VALID_PARK_STATUS | 40 | IS_OPEN_SCANNING |
| 8 | VALID_EXCEED_WGT | 41 | VALID_IS_PRE |
| 9 | VALID_PREDICTION_DIFF | 42 | USER_IP |
| 10 | VALID_FLAG | 43 | POWER_STATE |
| 11 | VALID_MAT_TIME | 44 | DVR_STATE |
| 12 | CAR_MONITOR | 45 | MOXA_STATE |
| 13 | CAR_MONITOR_LVL | 46 | PLC_STATE |
| 14 | IS_HELP | 47 | LEFT_INFRARED_RAY_STATE |
| 15 | IS_TAKE_OVER | 48 | RIGHT_INFRARED_RAY_STATE |
| 16 | LED_WRITER | 49 | AMPLIFIER_STATE |
| 17 | PRINT_NUM | 50 | LAMP_STATE |
| 18 | COLLECTION_CODE | 51 | SPOT_TYPE_NO |
| 19 | IS_OVER_WGT | 52 | RED_GREEN_LIGHT_STATE |
| 20 | USER_NO | 53 | FRONT_INFRARED_RAY_STATE |
| 21 | MONITOR_USER_NO | 54 | REAR_INFRARED_RAY_STATE |
| 22 | SET_CAR | 55 | RFID_STATE |
| 23 | LED_KEEP | 56 | VALID_AREA |
| 24 | RFID_CAR | 57 | WEIGHT_STATUS |
| 25 | PHOTO_CAR | 58 | FERROALLOY_CONFIRM |
| 26 | SCAN_CAR | 59 | FERROALLOY_RESULT |
| 27 | EDIT_CAR | 60 | ZERO_STATE |
| 28 | CAR_ERR | 61 | ZERO_WEIGHT |
| 29 | WGT_ERR | 62 | IS_ZERO_STATE |
| 30 | LAST_TIME | 63 | IS_VALID_SCAN |
| 31 | STOP_OVER_TIME | 64 | IS_ENABLE_SOUND |
| 32 | MSG_INFO | 65 | PHOTO_CAR2 |
| 33 | WGT | 66 | \_dirty |
| 67 | \_updated_at | | |

## 冷启动

1. 在 Tarantool 执行 [`ddl/meter_work_monitor.lua`](ddl/meter_work_monitor.lua)。
2. 应用配置 `rtdb.monitor.bootstrap-enabled=true`，启动时从 Oracle `selectByParameters` 全量 `replace` 灌入，业务字段完整，`_dirty=false`。
3. 灌数完成后建议关闭 bootstrap，避免每次重启覆盖内存中未回写数据（生产应先确认 Job 已刷盘）。

脚本：见 `ddl/meter_work_monitor.lua`。
