Browse Source

F10实时表

zhc
review512jwy@163.com 1 month ago
parent
commit
5d45b1d151
  1. 273
      data-center-business-controller/src/main/resources/db/migration/V92__f10_journal_realtime_.sql

273
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);
Loading…
Cancel
Save