From 5d45b1d151ba4ef05e3823048e46bfb16911341b Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Sun, 14 Jun 2026 17:44:35 +0800 Subject: [PATCH] =?UTF-8?q?F10=E5=AE=9E=E6=97=B6=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migration/V92__f10_journal_realtime_.sql | 273 ++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 data-center-business-controller/src/main/resources/db/migration/V92__f10_journal_realtime_.sql diff --git a/data-center-business-controller/src/main/resources/db/migration/V92__f10_journal_realtime_.sql b/data-center-business-controller/src/main/resources/db/migration/V92__f10_journal_realtime_.sql new file mode 100644 index 0000000..e6122f7 --- /dev/null +++ b/data-center-business-controller/src/main/resources/db/migration/V92__f10_journal_realtime_.sql @@ -0,0 +1,273 @@ +CREATE TABLE f10_journal_realtime ( + + device_id varchar(255) NOT NULL COMMENT '设备ID', + + company_id bigint DEFAULT NULL, + + raw_hex text, + + raw_text text, + + serial_no varchar(10), + + mode varchar(10), + + signal_seq varchar(10), + + receive_date varchar(10), + + receive_time varchar(10), + + receive_timestamp bigint, + + channel_no varchar(10), + + test_flag varchar(10), + + block_no varchar(10), + + block_name varchar(50), + + signal_type1 varchar(10), + + signal_type2 varchar(10), + + signal_label varchar(10), + + signal_status varchar(10), + + course_no varchar(10), + + area_code varchar(10), + + course_code varchar(10), + + standby_name varchar(50), + + physical_addr varchar(10), + + customer_name varchar(500), + + phone varchar(50), + + remark varchar(500), + + display_color varchar(10), + + error_reason varchar(10), + + line_type varchar(10), + + area_name varchar(50), + + send_date varchar(10), + + send_time varchar(10), + + customer_no varchar(10), + + display_data1 varchar(50), + + display_data2 varchar(50), + + instruction_flag varchar(10), + + signal_code varchar(10), + + card_no varchar(10), + + card_type varchar(10), + + mansion_building varchar(10), + + mansion_room varchar(10), + + option_field varchar(50), + + expired_flag int DEFAULT 0, + + alert_history_id bigint, + + created_at bigint, + + created_time datetime, + + update_at bigint, + + update_time datetime, + + PRIMARY KEY(device_id), + + KEY idx_company(company_id), + + KEY idx_receive_timestamp(receive_timestamp), + + KEY idx_alert_history(alert_history_id) + +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='F10实时状态表'; + + +INSERT INTO f10_journal_realtime ( + device_id, company_id, raw_hex, raw_text, serial_no, mode, + signal_seq, receive_date, receive_time, receive_timestamp, + channel_no, test_flag, block_no, block_name, + signal_type1, signal_type2, signal_label, signal_status, + course_no, area_code, course_code, standby_name, physical_addr, + customer_name, phone, remark, display_color, error_reason, line_type, area_name, + send_date, send_time, customer_no, display_data1, display_data2, + instruction_flag, signal_code, card_no, card_type, mansion_building, mansion_room, option_field, + expired_flag, alert_history_id, + created_at, created_time, + update_at, update_time +) +SELECT + t.device_id, + t.company_id, + t.raw_hex, + t.raw_text, + t.serial_no, + t.mode, + t.signal_seq, + t.receive_date, + t.receive_time, + t.receive_timestamp, + t.channel_no, + t.test_flag, + t.block_no, + t.block_name, + t.signal_type1, + t.signal_type2, + t.signal_label, + t.signal_status, + t.course_no, + t.area_code, + t.course_code, + t.standby_name, + t.physical_addr, + t.customer_name, + t.phone, + t.remark, + t.display_color, + t.error_reason, + t.line_type, + t.area_name, + t.send_date, + t.send_time, + t.customer_no, + t.display_data1, + t.display_data2, + t.instruction_flag, + t.signal_code, + t.card_no, + t.card_type, + t.mansion_building, + t.mansion_room, + t.option_field, + t.expired_flag, + t.alert_history_id, + t.created_at, + t.created_time, + UNIX_TIMESTAMP(NOW()) * 1000, -- update_at + NOW() -- update_time +FROM ( + SELECT + l.device_id, + l.company_id, + l.raw_hex, + l.raw_text, + l.serial_no, + l.mode, + l.signal_seq, + l.receive_date, + l.receive_time, + l.receive_timestamp, + l.channel_no, + l.test_flag, + l.block_no, + l.block_name, + l.signal_type1, + l.signal_type2, + l.signal_label, + l.signal_status, + l.course_no, + l.area_code, + l.course_code, + l.standby_name, + l.physical_addr, + l.customer_name, + l.phone, + l.remark, + l.display_color, + l.error_reason, + l.line_type, + l.area_name, + l.send_date, + l.send_time, + l.customer_no, + l.display_data1, + l.display_data2, + l.instruction_flag, + l.signal_code, + l.card_no, + l.card_type, + l.mansion_building, + l.mansion_room, + l.option_field, + l.expired_flag, + l.alert_history_id, + l.created_at, + l.created_time, + ROW_NUMBER() OVER ( + PARTITION BY l.device_id + ORDER BY l.receive_timestamp DESC, l.id DESC + ) AS rn + FROM f10_journal_log l + ) t +WHERE t.rn = 1 +ON DUPLICATE KEY UPDATE + company_id = VALUES(company_id), + raw_hex = VALUES(raw_hex), + raw_text = VALUES(raw_text), + serial_no = VALUES(serial_no), + mode = VALUES(mode), + signal_seq = VALUES(signal_seq), + receive_date = VALUES(receive_date), + receive_time = VALUES(receive_time), + receive_timestamp = VALUES(receive_timestamp), + channel_no = VALUES(channel_no), + test_flag = VALUES(test_flag), + block_no = VALUES(block_no), + block_name = VALUES(block_name), + signal_type1 = VALUES(signal_type1), + signal_type2 = VALUES(signal_type2), + signal_label = VALUES(signal_label), + signal_status = VALUES(signal_status), + course_no = VALUES(course_no), + area_code = VALUES(area_code), + course_code = VALUES(course_code), + standby_name = VALUES(standby_name), + physical_addr = VALUES(physical_addr), + customer_name = VALUES(customer_name), + phone = VALUES(phone), + remark = VALUES(remark), + display_color = VALUES(display_color), + error_reason = VALUES(error_reason), + line_type = VALUES(line_type), + area_name = VALUES(area_name), + send_date = VALUES(send_date), + send_time = VALUES(send_time), + customer_no = VALUES(customer_no), + display_data1 = VALUES(display_data1), + display_data2 = VALUES(display_data2), + instruction_flag = VALUES(instruction_flag), + signal_code = VALUES(signal_code), + card_no = VALUES(card_no), + card_type = VALUES(card_type), + mansion_building = VALUES(mansion_building), + mansion_room = VALUES(mansion_room), + option_field = VALUES(option_field), + expired_flag = VALUES(expired_flag), + -- 修复歧义:使用表名限定旧值 + alert_history_id = IFNULL(VALUES(alert_history_id), f10_journal_realtime.alert_history_id), + update_at = VALUES(update_at), + update_time = VALUES(update_time); \ No newline at end of file