From e76f0739e647fe8a7e0e2618914e2faff554b1b7 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期一, 17 十一月 2025 17:33:23 +0800
Subject: [PATCH] 解决冲突

---
 mes-processes/mes-plcSend/src/main/resources/db/migration/V20241030__create_device_management_tables.sql |  166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 166 insertions(+), 0 deletions(-)

diff --git a/mes-processes/mes-plcSend/src/main/resources/db/migration/V20241030__create_device_management_tables.sql b/mes-processes/mes-plcSend/src/main/resources/db/migration/V20241030__create_device_management_tables.sql
new file mode 100644
index 0000000..07fc2d4
--- /dev/null
+++ b/mes-processes/mes-plcSend/src/main/resources/db/migration/V20241030__create_device_management_tables.sql
@@ -0,0 +1,166 @@
+-- 澶氳澶囩鐞嗘暟鎹簱琛ㄥ垱寤鸿剼鏈�
+-- 鍒涘缓鏃堕棿: 2025-10-30
+-- 鍔熻兘: 鏀寔澶氳澶囪仈鍚堟祴璇�
+
+-- 璁惧閰嶇疆琛�
+CREATE TABLE device_config (
+    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '璁惧ID',
+    device_id VARCHAR(50) UNIQUE NOT NULL COMMENT '璁惧鍞竴鏍囪瘑',
+    device_name VARCHAR(100) NOT NULL COMMENT '璁惧鍚嶇О',
+    device_code VARCHAR(50) NOT NULL UNIQUE COMMENT '璁惧缂栫爜',
+    device_type VARCHAR(50) NOT NULL COMMENT '璁惧绫诲瀷(涓婂ぇ杞�/澶х悊鐗�/鐜荤拑瀛樺偍)',
+    project_id BIGINT NOT NULL COMMENT '鎵�灞為」鐩甀D',
+    plc_ip VARCHAR(15) NOT NULL COMMENT 'PLC IP鍦板潃',
+    plc_type VARCHAR(20) NOT NULL COMMENT 'PLC绫诲瀷(S7-1200/S7-1500绛�)',
+    module_name VARCHAR(50) NOT NULL COMMENT '妯″潡鍚嶇О',
+    is_primary BOOLEAN DEFAULT FALSE COMMENT '鏄惁涓绘帶璁惧',
+    enabled BOOLEAN DEFAULT TRUE COMMENT '鏄惁鍚敤',
+    config_json TEXT COMMENT '璁惧鐗瑰畾閰嶇疆(JSON鏍煎紡)',
+    description VARCHAR(200) COMMENT '璁惧鎻忚堪',
+    extra_params JSON COMMENT '鎵╁睍鍙傛暟JSON',
+    is_deleted INT DEFAULT 0 COMMENT '鏄惁鍒犻櫎锛�0-鍚︼紝1-鏄�',
+    created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+    updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+    created_by VARCHAR(50) NOT NULL DEFAULT 'system' COMMENT '鍒涘缓浜�',
+    updated_by VARCHAR(50) NOT NULL DEFAULT 'system' COMMENT '鏇存柊浜�',
+    
+    INDEX idx_device_type (device_type),
+    INDEX idx_module_name (module_name),
+    INDEX idx_enabled (enabled),
+    INDEX idx_is_deleted (is_deleted),
+    INDEX idx_device_config_project_id (project_id),
+    INDEX idx_device_config_device_code (device_code),
+    INDEX idx_device_config_created_at (created_time),
+    INDEX idx_device_config_updated_at (updated_time)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='璁惧閰嶇疆琛�';
+
+-- 璁惧缁勯厤缃〃
+CREATE TABLE device_group_config (
+    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '璁惧缁処D',
+    group_code VARCHAR(50) UNIQUE NOT NULL COMMENT '璁惧缁勭紪鐮�',
+    group_name VARCHAR(100) NOT NULL COMMENT '璁惧缁勫悕绉�',
+    group_type INT NOT NULL COMMENT '璁惧缁勭被鍨嬶細1-鐢熶骇绾匡紝2-娴嬭瘯绾匡紝3-杈呭姪璁惧缁�',
+    project_id BIGINT NOT NULL COMMENT '鎵�灞為」鐩甀D',
+    status INT NOT NULL DEFAULT 1 COMMENT '璁惧缁勭姸鎬侊細0-鍋滅敤锛�1-鍚敤锛�3-缁存姢涓�',
+    max_concurrent_devices INT DEFAULT 0 COMMENT '鏈�澶у苟鍙戣澶囨暟',
+    heartbeat_interval INT DEFAULT 30 COMMENT '蹇冭烦妫�娴嬮棿闅�(绉�)',
+    communication_timeout INT DEFAULT 5000 COMMENT '閫氫俊瓒呮椂鏃堕棿(姣)',
+    description VARCHAR(200) COMMENT '璁惧缁勬弿杩�',
+    extra_config JSON COMMENT '鎵╁睍閰嶇疆JSON',
+    is_deleted INT NOT NULL DEFAULT 0 COMMENT '鏄惁鍒犻櫎锛�0-鍚︼紝1-鏄�',
+    created_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+    updated_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+    created_by VARCHAR(50) NOT NULL DEFAULT 'system' COMMENT '鍒涘缓浜�',
+    updated_by VARCHAR(50) NOT NULL DEFAULT 'system' COMMENT '鏇存柊浜�',
+
+    INDEX idx_device_group_config_group_code (group_code),
+    INDEX idx_device_group_config_group_type (group_type),
+    INDEX idx_device_group_config_project_id (project_id),
+    INDEX idx_device_group_config_created_at (created_time),
+    INDEX idx_device_group_config_updated_at (updated_time)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='璁惧缁勯厤缃〃';
+
+-- 璁惧缁勪笌璁惧鍏宠仈鍏崇郴琛�
+CREATE TABLE device_group_relation (
+    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '鍏宠仈ID',
+    group_id BIGINT NOT NULL COMMENT '璁惧缁処D',
+    device_id BIGINT NOT NULL COMMENT '璁惧ID',
+    priority INT DEFAULT 5 COMMENT '璁惧鍦ㄧ粍鍐呯殑浼樺厛绾э細1-鏈�楂橈紝10-鏈�浣�',
+    role INT DEFAULT 2 COMMENT '璁惧鍦ㄧ粍鍐呯殑瑙掕壊锛�1-涓绘帶锛�2-鍗忎綔锛�3-鐩戞帶',
+    status INT DEFAULT 1 COMMENT '璁惧鍦ㄨ缁勪腑鐨勭姸鎬侊細0-鏈厤缃紝1-姝e父锛�2-鏁呴殰锛�3-缁存姢',
+    connection_order INT DEFAULT 1 COMMENT '杩炴帴椤哄簭锛氭暟鍊艰秺灏忚秺鍏堣繛鎺�',
+    relation_desc VARCHAR(200) COMMENT '鍏宠仈鎻忚堪',
+    extra_params JSON COMMENT '鎵╁睍鍙傛暟JSON',
+    is_deleted INT NOT NULL DEFAULT 0 COMMENT '鏄惁鍒犻櫎锛�0-鍚︼紝1-鏄�',
+    created_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+    updated_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+    created_by VARCHAR(50) NOT NULL DEFAULT 'system' COMMENT '鍒涘缓浜�',
+    updated_by VARCHAR(50) NOT NULL DEFAULT 'system' COMMENT '鏇存柊浜�',
+
+    INDEX idx_device_group_relation_group_id (group_id),
+    INDEX idx_device_group_relation_device_id (device_id),
+    INDEX idx_device_group_relation_role (role),
+    INDEX idx_device_group_relation_status (status),
+    INDEX idx_device_group_relation_priority (priority),
+    INDEX idx_device_group_relation_connection_order (connection_order),
+    INDEX idx_device_group_relation_created_at (created_time),
+    INDEX idx_device_group_relation_updated_at (updated_time)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='璁惧缁勪笌璁惧鍏宠仈鍏崇郴琛�';
+
+-- 澶氳澶囦换鍔¤〃
+CREATE TABLE multi_device_task (
+    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '浠诲姟ID',
+    task_id VARCHAR(50) UNIQUE NOT NULL COMMENT '浠诲姟鍞竴鏍囪瘑',
+    group_id VARCHAR(50) NOT NULL COMMENT '璁惧缁処D',
+    project_id VARCHAR(50) NOT NULL COMMENT '椤圭洰ID',
+    status ENUM('PENDING', 'RUNNING', 'COMPLETED', 'FAILED', 'CANCELLED') DEFAULT 'PENDING' COMMENT '浠诲姟鐘舵��',
+    current_step INT DEFAULT 0 COMMENT '褰撳墠鎵ц姝ラ',
+    total_steps INT DEFAULT 0 COMMENT '鎬绘楠ゆ暟',
+    start_time DATETIME COMMENT '寮�濮嬫椂闂�',
+    end_time DATETIME COMMENT '缁撴潫鏃堕棿',
+    error_message TEXT COMMENT '閿欒淇℃伅',
+    result_data JSON COMMENT '缁撴灉鏁版嵁(JSON鏍煎紡)',
+    created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+    updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '鏇存柊鏃堕棿',
+    
+    INDEX idx_task_project (project_id),
+    INDEX idx_task_status (status),
+    INDEX idx_task_time (created_time)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澶氳澶囦换鍔¤〃';
+
+-- 浠诲姟姝ラ璇︽儏琛�
+CREATE TABLE task_step_detail (
+    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '姝ラID',
+    task_id VARCHAR(50) NOT NULL COMMENT '浠诲姟ID',
+    step_order INT NOT NULL COMMENT '姝ラ椤哄簭',
+    device_id VARCHAR(50) NOT NULL COMMENT '璁惧ID',
+    step_name VARCHAR(100) NOT NULL COMMENT '姝ラ鍚嶇О',
+    status ENUM('PENDING', 'RUNNING', 'COMPLETED', 'FAILED', 'SKIPPED') DEFAULT 'PENDING' COMMENT '姝ラ鐘舵��',
+    start_time DATETIME COMMENT '姝ラ寮�濮嬫椂闂�',
+    end_time DATETIME COMMENT '姝ラ缁撴潫鏃堕棿',
+    duration_ms BIGINT COMMENT '鎵ц鑰楁椂(姣)',
+    input_data JSON COMMENT '杈撳叆鏁版嵁(JSON鏍煎紡)',
+    output_data JSON COMMENT '杈撳嚭鏁版嵁(JSON鏍煎紡)',
+    error_message TEXT COMMENT '閿欒淇℃伅',
+    retry_count INT DEFAULT 0 COMMENT '閲嶈瘯娆℃暟',
+    created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '鍒涘缓鏃堕棿',
+    
+    INDEX idx_step_task (task_id),
+    INDEX idx_step_device (device_id),
+    INDEX idx_step_status (status)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='浠诲姟姝ラ璇︽儏琛�';
+
+-- 璁惧鐘舵�佺洃鎺ц〃
+CREATE TABLE device_status (
+    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '璁板綍ID',
+    device_id VARCHAR(50) NOT NULL COMMENT '璁惧ID',
+    task_id VARCHAR(50) COMMENT '鍏宠仈浠诲姟ID(鍙��)',
+    status ENUM('ONLINE', 'OFFLINE', 'BUSY', 'ERROR', 'MAINTENANCE') DEFAULT 'OFFLINE' COMMENT '璁惧鐘舵��',
+    last_heartbeat DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '鏈�鍚庡績璺虫椂闂�',
+    cpu_usage DECIMAL(5,2) COMMENT 'CPU浣跨敤鐜�(%)',
+    memory_usage DECIMAL(5,2) COMMENT '鍐呭瓨浣跨敤鐜�(%)',
+    plc_connection_status ENUM('CONNECTED', 'DISCONNECTED', 'ERROR') DEFAULT 'DISCONNECTED' COMMENT 'PLC杩炴帴鐘舵��',
+    current_operation VARCHAR(100) COMMENT '褰撳墠鎿嶄綔',
+    operation_progress DECIMAL(5,2) COMMENT '鎿嶄綔杩涘害(0-100)',
+    alert_message TEXT COMMENT '鍛婅淇℃伅',
+    created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '璁板綍鏃堕棿',
+    
+    INDEX idx_device_status (device_id),
+    INDEX idx_device_heartbeat (last_heartbeat),
+    INDEX idx_plc_connection (plc_connection_status)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='璁惧鐘舵�佺洃鎺ц〃';
+
+-- 鎻掑叆涓�浜涚ず渚嬫暟鎹�
+INSERT INTO device_config (device_id, device_name, device_code, device_type, project_id, plc_ip, plc_type, module_name, is_primary, config_json, description) VALUES
+('DEVICE_001', '涓婂ぇ杞﹁澶�1', 'DEV_001', '涓婂ぇ杞�', 1, '192.168.1.100', 'S7-1200', '涓婂ぇ杞︽ā鍧�', TRUE, '{"vehicleCapacity": 6000, "glassIntervalMs": 1000}', '涓婂ぇ杞﹁澶�1'),
+('DEVICE_002', '澶х悊鐗囪澶�1', 'DEV_002', '澶х悊鐗�', 1, '192.168.1.101', 'S7-1200', '澶х悊鐗囨ā鍧�', FALSE, '{"glassMatchingEnabled": true, "batchProcessing": true}', '澶х悊鐗囪澶�1'),
+('DEVICE_003', '鐜荤拑瀛樺偍璁惧1', 'DEV_003', '鐜荤拑瀛樺偍', 1, '192.168.1.102', 'S7-1500', '鐜荤拑瀛樺偍妯″潡', FALSE, '{"storageCapacity": 100, "sortingEnabled": true}', '鐜荤拑瀛樺偍璁惧1');
+
+INSERT INTO device_group_config (group_code, group_name, group_type, project_id, status, description) VALUES
+('GROUP_001', '鐢熶骇绾緼', 1, 1, 1, '鐢熶骇绾緼璁惧缁�');
+
+-- 鎻掑叆璁惧缁勫叧鑱旀暟鎹�
+INSERT INTO device_group_relation (group_id, device_id, role, status, priority, connection_order) VALUES
+((SELECT id FROM device_group_config WHERE group_code = 'GROUP_001' AND is_deleted = 0), (SELECT id FROM device_config WHERE device_id = 'DEVICE_001' AND is_deleted = 0), 1, 1, 5, 1),
+((SELECT id FROM device_group_config WHERE group_code = 'GROUP_001' AND is_deleted = 0), (SELECT id FROM device_config WHERE device_id = 'DEVICE_002' AND is_deleted = 0), 2, 1, 5, 2),
+((SELECT id FROM device_group_config WHERE group_code = 'GROUP_001' AND is_deleted = 0), (SELECT id FROM device_config WHERE device_id = 'DEVICE_003' AND is_deleted = 0), 2, 1, 5, 3);
\ No newline at end of file

--
Gitblit v1.8.0