-- 电池基础信息表
DROP TABLE IF EXISTS `bms_battery`;
CREATE TABLE `bms_battery` (
  `battery_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '电池ID',
  `box_id` bigint(20) NOT NULL COMMENT 'BOX设备ID',
  `battery_code` varchar(50) NOT NULL COMMENT '电池编号',
  `battery_name` varchar(100) NOT NULL COMMENT '电池名称',
  `battery_type` varchar(50) DEFAULT NULL COMMENT '电池类型（锂电池、铅酸电池等）',
  `chemistry` varchar(50) DEFAULT NULL COMMENT '电池化学类型（LiFePO4、Li-ion等）',
  `manufacturer` varchar(100) DEFAULT NULL COMMENT '制造商',
  `model` varchar(100) DEFAULT NULL COMMENT '型号',
  `serial_number` varchar(100) DEFAULT NULL COMMENT '序列号',
  `production_date` date DEFAULT NULL COMMENT '生产日期',
  `install_date` datetime DEFAULT NULL COMMENT '安装日期',
  `position_in_box` int(11) NOT NULL COMMENT '在BOX中的位置（1-N）',
  `rated_capacity` decimal(8,2) DEFAULT '0.00' COMMENT '额定容量(Ah)',
  `rated_voltage` decimal(6,2) DEFAULT '0.00' COMMENT '额定电压(V)',
  `max_charge_voltage` decimal(6,2) DEFAULT '0.00' COMMENT '最大充电电压(V)',
  `min_discharge_voltage` decimal(6,2) DEFAULT '0.00' COMMENT '最小放电电压(V)',
  `max_charge_current` decimal(8,2) DEFAULT '0.00' COMMENT '最大充电电流(A)',
  `max_discharge_current` decimal(8,2) DEFAULT '0.00' COMMENT '最大放电电流(A)',
  `status` tinyint(1) DEFAULT '1' COMMENT '电池状态（0停用 1启用 2维护 3报废）',
  `warranty_start_date` date DEFAULT NULL COMMENT '保修开始日期',
  `warranty_end_date` date DEFAULT NULL COMMENT '保修结束日期',
  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `del_flag` char(1) DEFAULT '0' COMMENT '删除标志（0代表存在 2代表删除）',
  `version` int(11) DEFAULT '0' COMMENT '乐观锁版本号',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`battery_id`),
  UNIQUE KEY `uk_battery_code` (`battery_code`),
  UNIQUE KEY `uk_box_position` (`box_id`, `position_in_box`),
  KEY `idx_box_id` (`box_id`),
  KEY `idx_battery_type` (`battery_type`),
  KEY `idx_status` (`status`),
  CONSTRAINT `fk_battery_box` FOREIGN KEY (`box_id`) REFERENCES `bms_box_device` (`box_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='电池基础信息表';

-- 插入电池基础信息示例数据（BOX001的8个电池）
INSERT INTO `bms_battery` VALUES 
(1, 1, 'BAT001-01', 'BOX001-电池01', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250001', '2024-12-01', '2025-01-01 10:30:00', 1, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-01', '2027-01-01', 'admin', '2025-01-01 10:30:00', 'admin', '2025-01-22 10:30:00', '0', 0, 'BOX001位置1电池'),
(2, 1, 'BAT001-02', 'BOX001-电池02', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250002', '2024-12-01', '2025-01-01 10:30:00', 2, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-01', '2027-01-01', 'admin', '2025-01-01 10:30:00', 'admin', '2025-01-22 10:30:00', '0', 0, 'BOX001位置2电池'),
(3, 1, 'BAT001-03', 'BOX001-电池03', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250003', '2024-12-01', '2025-01-01 10:30:00', 3, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-01', '2027-01-01', 'admin', '2025-01-01 10:30:00', 'admin', '2025-01-22 10:30:00', '0', 0, 'BOX001位置3电池'),
(4, 1, 'BAT001-04', 'BOX001-电池04', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250004', '2024-12-01', '2025-01-01 10:30:00', 4, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-01', '2027-01-01', 'admin', '2025-01-01 10:30:00', 'admin', '2025-01-22 10:30:00', '0', 0, 'BOX001位置4电池'),
(5, 1, 'BAT001-05', 'BOX001-电池05', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250005', '2024-12-01', '2025-01-01 10:30:00', 5, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-01', '2027-01-01', 'admin', '2025-01-01 10:30:00', 'admin', '2025-01-22 10:30:00', '0', 0, 'BOX001位置5电池'),
(6, 1, 'BAT001-06', 'BOX001-电池06', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250006', '2024-12-01', '2025-01-01 10:30:00', 6, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-01', '2027-01-01', 'admin', '2025-01-01 10:30:00', 'admin', '2025-01-22 10:30:00', '0', 0, 'BOX001位置6电池'),
(7, 1, 'BAT001-07', 'BOX001-电池07', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250007', '2024-12-01', '2025-01-01 10:30:00', 7, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-01', '2027-01-01', 'admin', '2025-01-01 10:30:00', 'admin', '2025-01-22 10:30:00', '0', 0, 'BOX001位置7电池'),
(8, 1, 'BAT001-08', 'BOX001-电池08', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250008', '2024-12-01', '2025-01-01 10:30:00', 8, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-01', '2027-01-01', 'admin', '2025-01-01 10:30:00', 'admin', '2025-01-22 10:30:00', '0', 0, 'BOX001位置8电池');

-- 插入BOX002的12个电池基础信息
INSERT INTO `bms_battery` VALUES 
(9, 2, 'BAT002-01', 'BOX002-电池01', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250009', '2024-12-05', '2025-01-02 14:30:00', 1, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置1电池'),
(10, 2, 'BAT002-02', 'BOX002-电池02', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250010', '2024-12-05', '2025-01-02 14:30:00', 2, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置2电池'),
(11, 2, 'BAT002-03', 'BOX002-电池03', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250011', '2024-12-05', '2025-01-02 14:30:00', 3, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置3电池'),
(12, 2, 'BAT002-04', 'BOX002-电池04', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250012', '2024-12-05', '2025-01-02 14:30:00', 4, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置4电池'),
(13, 2, 'BAT002-05', 'BOX002-电池05', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250013', '2024-12-05', '2025-01-02 14:30:00', 5, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置5电池'),
(14, 2, 'BAT002-06', 'BOX002-电池06', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250014', '2024-12-05', '2025-01-02 14:30:00', 6, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置6电池'),
(15, 2, 'BAT002-07', 'BOX002-电池07', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250015', '2024-12-05', '2025-01-02 14:30:00', 7, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置7电池'),
(16, 2, 'BAT002-08', 'BOX002-电池08', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250016', '2024-12-05', '2025-01-02 14:30:00', 8, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置8电池'),
(17, 2, 'BAT002-09', 'BOX002-电池09', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250017', '2024-12-05', '2025-01-02 14:30:00', 9, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置9电池'),
(18, 2, 'BAT002-10', 'BOX002-电池10', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250018', '2024-12-05', '2025-01-02 14:30:00', 10, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置10电池'),
(19, 2, 'BAT002-11', 'BOX002-电池11', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250019', '2024-12-05', '2025-01-02 14:30:00', 11, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置11电池'),
(20, 2, 'BAT002-12', 'BOX002-电池12', 'LiFePO4', 'LiFePO4', 'BYD', 'LFP-100Ah', 'BAT20250020', '2024-12-05', '2025-01-02 14:30:00', 12, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-02', '2027-01-02', 'admin', '2025-01-02 14:30:00', 'admin', '2025-01-22 10:25:00', '0', 0, 'BOX002位置12电池');

-- 插入BOX003的6个电池基础信息
INSERT INTO `bms_battery` VALUES 
(21, 3, 'BAT003-01', 'BOX003-电池01', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250021', '2024-11-20', '2025-01-03 09:45:00', 1, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 2, '2025-01-03', '2027-01-03', 'admin', '2025-01-03 09:45:00', 'admin', '2025-01-22 09:45:00', '0', 0, 'BOX003位置1电池-维护中'),
(22, 3, 'BAT003-02', 'BOX003-电池02', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250022', '2024-11-20', '2025-01-03 09:45:00', 2, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-03', '2027-01-03', 'admin', '2025-01-03 09:45:00', 'admin', '2025-01-22 09:45:00', '0', 0, 'BOX003位置2电池'),
(23, 3, 'BAT003-03', 'BOX003-电池03', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250023', '2024-11-20', '2025-01-03 09:45:00', 3, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 2, '2025-01-03', '2027-01-03', 'admin', '2025-01-03 09:45:00', 'admin', '2025-01-22 09:45:00', '0', 0, 'BOX003位置3电池-维护中'),
(24, 3, 'BAT003-04', 'BOX003-电池04', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250024', '2024-11-20', '2025-01-03 09:45:00', 4, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-03', '2027-01-03', 'admin', '2025-01-03 09:45:00', 'admin', '2025-01-22 09:45:00', '0', 0, 'BOX003位置4电池'),
(25, 3, 'BAT003-05', 'BOX003-电池05', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250025', '2024-11-20', '2025-01-03 09:45:00', 5, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-03', '2027-01-03', 'admin', '2025-01-03 09:45:00', 'admin', '2025-01-22 09:45:00', '0', 0, 'BOX003位置5电池'),
(26, 3, 'BAT003-06', 'BOX003-电池06', 'LiFePO4', 'LiFePO4', 'CATL', 'LFP-100Ah', 'BAT20250026', '2024-11-20', '2025-01-03 09:45:00', 6, 100.00, 6.4, 7.2, 5.0, 50.0, 100.0, 1, '2025-01-03', '2027-01-03', 'admin', '2025-01-03 09:45:00', 'admin', '2025-01-22 09:45:00', '0', 0, 'BOX003位置6电池');