-- Visual hand-eye and tool TCP calibration profiles. Apply once before using the management page. CREATE TABLE IF NOT EXISTS `te_vision_calibration_profile` ( `id` varchar(32) NOT NULL, `profile_type` varchar(20) NOT NULL COMMENT 'HAND_EYE or TOOL_TCP', `profile_key` varchar(100) NOT NULL COMMENT 'Stable logical key used by workflows', `profile_name` varchar(100) NOT NULL, `version_no` int NOT NULL DEFAULT 1, `robot_id` varchar(128) NOT NULL, `arm_device_id` varchar(128) NOT NULL, `camera_device_id` varchar(128) DEFAULT NULL, `tool_code` varchar(100) DEFAULT NULL, `status` varchar(20) NOT NULL DEFAULT 'DRAFT' COMMENT 'DRAFT, ACTIVE, INVALID', `forced_enabled` tinyint(1) NOT NULL DEFAULT 0, `raw_matrix_json` text NOT NULL, `correction_json` varchar(500) DEFAULT NULL COMMENT 'x/y/z mm and rx/ry/rz degree correction', `effective_matrix_json` text NOT NULL, `mean_error_mm` decimal(10,4) DEFAULT NULL, `max_error_mm` decimal(10,4) DEFAULT NULL, `sample_count` int NOT NULL DEFAULT 0, `metadata_json` text DEFAULT NULL, `verified_time` datetime DEFAULT NULL, `create_by` varchar(64) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_by` varchar(64) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `remark` varchar(500) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_vision_profile_version` (`profile_key`, `version_no`), KEY `idx_vision_profile_devices` (`profile_type`, `robot_id`, `arm_device_id`, `camera_device_id`), KEY `idx_vision_profile_tool` (`profile_type`, `robot_id`, `arm_device_id`, `tool_code`), KEY `idx_vision_profile_active` (`profile_key`, `status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Visual calibration profile versions'; CREATE TABLE IF NOT EXISTS `te_vision_calibration_record` ( `id` varchar(32) NOT NULL, `profile_id` varchar(32) DEFAULT NULL, `session_type` varchar(30) NOT NULL COMMENT 'HAND_EYE, HAND_EYE_VERIFY, TOOL_TCP', `robot_id` varchar(128) NOT NULL, `arm_device_id` varchar(128) NOT NULL, `camera_device_id` varchar(128) DEFAULT NULL, `tool_code` varchar(100) DEFAULT NULL, `status` varchar(20) NOT NULL COMMENT 'RUNNING, COMPLETED, FAILED, CANCELLED', `progress_step` int NOT NULL DEFAULT 0, `total_steps` int NOT NULL DEFAULT 0, `samples_json` longtext DEFAULT NULL, `result_json` longtext DEFAULT NULL, `error_message` varchar(1000) DEFAULT NULL, `started_time` datetime DEFAULT NULL, `finished_time` datetime DEFAULT NULL, `create_by` varchar(64) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_by` varchar(64) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `remark` varchar(500) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_vision_record_profile` (`profile_id`), KEY `idx_vision_record_devices` (`robot_id`, `arm_device_id`, `camera_device_id`), KEY `idx_vision_record_status` (`status`, `started_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Visual calibration execution and verification records'; INSERT INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (2205, '视觉标定管理', 2200, 5, 'vision-calibration', 'resource/visionCalibration/index', '', 'VisionCalibration', 1, 0, 'C', '0', '0', '', 'aim', 'admin', NOW(), '', NULL, '机器人手眼标定与工具TCP管理') ON DUPLICATE KEY UPDATE menu_name=VALUES(menu_name), parent_id=VALUES(parent_id), order_num=VALUES(order_num), path=VALUES(path), component=VALUES(component), route_name=VALUES(route_name), visible=VALUES(visible), status=VALUES(status), perms=VALUES(perms), update_by='admin', update_time=NOW(), remark=VALUES(remark); -- Calibration management is available to every application role by product requirement. INSERT IGNORE INTO sys_role_menu(role_id, menu_id) SELECT role_id, 2205 FROM sys_role;