-- 设备区域(车间/位置)父子递归结构
|
CREATE TABLE IF NOT EXISTS `device_area` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
`name` varchar(255) NOT NULL COMMENT '区域/车间/位置名称',
|
`parent_id` bigint NULL COMMENT '父级区域ID,根节点为NULL',
|
`ancestors` varchar(1000) NULL COMMENT '祖级路径,如 1,2,3',
|
`sort` int NULL COMMENT '排序',
|
`dept_id` bigint NULL COMMENT '部门ID',
|
`tenant_id` bigint NULL COMMENT '租户ID',
|
`create_user` int NULL COMMENT '创建人',
|
`create_time` datetime NULL COMMENT '创建时间',
|
`update_user` int NULL COMMENT '更新人',
|
`update_time` datetime NULL COMMENT '更新时间',
|
PRIMARY KEY (`id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备区域表(车间/位置)';
|
|
-- 设备台账关联区域(幂等:已存在列时跳过)
|
SET @col_exists = (SELECT COUNT(*) FROM information_schema.COLUMNS
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'device_ledger' AND COLUMN_NAME = 'area_id');
|
SET @ddl = IF(@col_exists = 0,
|
'ALTER TABLE `device_ledger` ADD COLUMN `area_id` bigint NULL COMMENT ''设备区域ID'' AFTER `dept_id`',
|
'SELECT 1');
|
PREPARE stmt FROM @ddl;
|
EXECUTE stmt;
|
DEALLOCATE PREPARE stmt;
|