Compare commits

...

3 Commits

  1. 22
      data-center-business-controller/src/main/resources/db/migration/V101__csdj_alarm.sql
  2. 89
      data-center-business-controller/src/main/resources/db/migration/V102__csdj_log_analysis.sql
  3. 30
      data-center-business-controller/src/main/resources/db/migration/V103__black_category.sql

22
data-center-business-controller/src/main/resources/db/migration/V101__csdj_alarm.sql

@ -0,0 +1,22 @@
-- CSDJ告警历史表
CREATE TABLE csdj_alarm_history (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`company_id` bigint DEFAULT NULL,
`raw_hex` text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '原始HEX报文',
terminal_id VARCHAR(64) NOT NULL COMMENT '终端ID',
terminal_no INT NOT NULL COMMENT '端子番号',
alarm_time DATETIME NOT NULL COMMENT '告警时间(日本时区)',
alarm_timestamp BIGINT NOT NULL COMMENT '告警时间戳(毫秒)',
recovery_time DATETIME COMMENT '恢复时间(日本时区)',
recovery_timestamp BIGINT COMMENT '恢复时间戳(毫秒)',
alarm_state TINYINT(1) DEFAULT 1 COMMENT '告警状态(0=已恢复,1=告警中)',
state_raw INT COMMENT '端子状态原始值',
abnormal_mode INT COMMENT '异常模式',
alert_history_id bigint DEFAULT NULL COMMENT '告警表主键ID',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX idx_terminal_id (terminal_id),
INDEX idx_alarm_state (alarm_state),
INDEX idx_alarm_time (alarm_time),
INDEX idx_alert_history_id (alert_history_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CSDJ告警历史表';

89
data-center-business-controller/src/main/resources/db/migration/V102__csdj_log_analysis.sql

@ -0,0 +1,89 @@
ALTER TABLE csdj_log ADD `parsed_json` text DEFAULT NULL COMMENT '解析json' after `raw_hex`;
ALTER TABLE csdj_log ADD `parsed_content` text DEFAULT NULL COMMENT '解析内容' after `parsed_json`;
-- CSDJ设备实时状态表(单字段+JSON双存储)
CREATE TABLE csdj_device_realtime (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
terminal_id VARCHAR(64) NOT NULL UNIQUE COMMENT '终端ID(唯一)',
company_id BIGINT COMMENT '公司ID',
-- ===== 通報基础信息 =====
last_notification_time DATETIME COMMENT '最后通報时间',
last_notification_timestamp BIGINT COMMENT '最后通報时间戳',
last_raw_hex TEXT COMMENT '最后原始HEX报文',
-- ============================================
-- ===== デジタル入力端子(单字段+JSON)=====
-- ============================================
-- 同时保留完整JSON
digital_input_json JSON COMMENT 'デジタル入力端子状态JSON',
-- 单字段(按端子号预留,最多16个)
di_1_no INT COMMENT 'デジタル入力1-端子号',
di_1_is_alarm TINYINT(1) COMMENT 'デジタル入力1-是否告警',
di_1_state_raw INT COMMENT 'デジタル入力1-状态原始值',
di_1_state_text VARCHAR(64) COMMENT 'デジタル入力1-状态文本',
di_1_abnormal_mode INT COMMENT 'デジタル入力1-异常模式',
di_2_no INT COMMENT 'デジタル入力2-端子号',
di_2_is_alarm TINYINT(1) COMMENT 'デジタル入力2-是否告警',
di_2_state_raw INT COMMENT 'デジタル入力2-状态原始值',
di_2_state_text VARCHAR(64) COMMENT 'デジタル入力2-状态文本',
di_2_abnormal_mode INT COMMENT 'デジタル入力2-异常模式',
-- 以此类推,可以继续加 di_3~di_16...
di_3_no INT COMMENT 'デジタル入力3-端子号',
di_3_is_alarm TINYINT(1) COMMENT 'デジタル入力3-是否告警',
di_3_state_raw INT COMMENT 'デジタル入力3-状态原始值',
di_3_state_text VARCHAR(64) COMMENT 'デジタル入力3-状态文本',
di_3_abnormal_mode INT COMMENT 'デジタル入力3-异常模式',
-- ============================================
-- ===== アナログ入力端子(单字段+JSON)=====
-- ============================================
analog_input_json JSON COMMENT 'アナログ入力端子状态JSON',
ai_1_no INT COMMENT 'アナログ入力1-端子号',
ai_1_is_threshold_alarm TINYINT(1) COMMENT 'アナログ入力1-是否阈值告警',
ai_1_threshold_no INT COMMENT 'アナログ入力1-阈值编号',
ai_1_additional_data BIGINT COMMENT 'アナログ入力1-附加数据',
ai_1_state_raw INT COMMENT 'アナログ入力1-状态原始值',
ai_2_no INT COMMENT 'アナログ入力2-端子号',
ai_2_is_threshold_alarm TINYINT(1) COMMENT 'アナログ入力2-是否阈值告警',
ai_2_threshold_no INT COMMENT 'アナログ入力2-阈值编号',
ai_2_additional_data BIGINT COMMENT 'アナログ入力2-附加数据',
ai_2_state_raw INT COMMENT 'アナログ入力2-状态原始值',
-- 以此类推,可以继续加 ai_3~ai_8...
-- ============================================
-- ===== デジタル出力端子(单字段+JSON)=====
-- ============================================
digital_output_json JSON COMMENT 'デジタル出力端子状态JSON',
do_1_no INT COMMENT 'デジタル出力1-端子号',
do_1_output_state VARCHAR(32) COMMENT 'デジタル出力1-输出接点状态',
do_1_state_raw INT COMMENT 'デジタル出力1-状态原始值',
do_1_additional_data BIGINT COMMENT 'デジタル出力1-附加数据',
do_2_no INT COMMENT 'デジタル出力2-端子号',
do_2_output_state VARCHAR(32) COMMENT 'デジタル出力2-输出接点状态',
do_2_state_raw INT COMMENT 'デジタル出力2-状态原始值',
do_2_additional_data BIGINT COMMENT 'デジタル出力2-附加数据',
-- 以此类推,可以继续加 do_3~do_16...
-- ============================================
-- ===== システム状態(直接字段存储)=====
-- ============================================
system_state_no INT COMMENT '系统状态番号',
system_scheduled_time_no INT COMMENT '定时编号',
system_mode_state INT COMMENT '模式状态',
system_is_power_off TINYINT(1) COMMENT '停电状态(0=正常,1=停电)',
system_is_battery_low TINYINT(1) COMMENT '电池状态(0=正常,1=低)',
system_is_line_disconnected TINYINT(1) COMMENT '线路状态(0=正常,1=断开)',
system_is_slave_communication_error TINYINT(1) COMMENT '子机通信状态(0=正常,1=错误)',
system_state_raw INT COMMENT '系统状态原始值',
-- ===== 时间字段 =====
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
INDEX idx_terminal_id (terminal_id),
INDEX idx_company_id (company_id),
INDEX idx_last_notification_time (last_notification_time),
INDEX idx_di_1_is_alarm (di_1_is_alarm)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CSDJ设备实时状态表(单字段+JSON双存储)';

30
data-center-business-controller/src/main/resources/db/migration/V103__black_category.sql

@ -0,0 +1,30 @@
ALTER TABLE dashboard_block_config ADD `category_type` json DEFAULT NULL COMMENT '屏蔽类型,f10=キング通信,csdj=コルソス,main=中央監視' after block_big_class_id;
USE `data_center_aeon_admin`;
DROP PROCEDURE IF EXISTS `add_authorized_category_type_column`;
DELIMITER $$
CREATE PROCEDURE add_authorized_category_type_column()
BEGIN
-- 姓
IF NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'data_center_aeon_admin'
AND table_name = 'basic_user'
AND column_name = 'authorized_device_category_type'
) THEN
ALTER TABLE basic_user
ADD `authorized_device_category_type` json DEFAULT NULL COMMENT '可查看的设备类型,f10=キング通信,csdj=コルソス,main=中央監視';
END IF;
END$$
DELIMITER ;
CALL add_authorized_category_type_column();
DROP PROCEDURE IF EXISTS `add_authorized_category_type_column`;
Loading…
Cancel
Save