-- ============================================= -- WCS 仓库控制系统 - MySQL 初始化脚本 -- 适用数据库: MySQL 5.7+ / 8.0+ -- 字符集: utf8mb4 -- 说明: 骨架阶段最小字段集,后续迭代逐步扩展 -- ============================================= SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- 1. 设备信息表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_device`; CREATE TABLE `wcs_device` ( `device_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '设备ID', `device_code` varchar(64) NOT NULL COMMENT '设备编码', `device_name` varchar(128) DEFAULT NULL COMMENT '设备名称', `device_type` varchar(32) DEFAULT NULL COMMENT '设备类型(conveyor/agv/elevator/stacker等)', `area_code` varchar(64) DEFAULT NULL COMMENT '所属区域编码', `protocol_type` varchar(32) DEFAULT NULL COMMENT '通信协议(modbus_tcp/opc_ua/s7等)', `ip_address` varchar(64) DEFAULT NULL COMMENT '设备IP地址', `port` int(11) DEFAULT NULL COMMENT '通信端口', `status` char(1) DEFAULT '0' COMMENT '设备状态(0正常 1停用)', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 2删除)', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`device_id`), UNIQUE KEY `uk_device_code` (`device_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 设备信息表'; -- ---------------------------- -- 2. 设备点位表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_device_point`; CREATE TABLE `wcs_device_point` ( `point_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '点位ID', `device_id` bigint(20) NOT NULL COMMENT '所属设备ID', `point_code` varchar(64) NOT NULL COMMENT '点位编码', `point_name` varchar(128) DEFAULT NULL COMMENT '点位名称', `point_type` varchar(32) DEFAULT NULL COMMENT '点位类型(read/write/read_write)', `data_type` varchar(32) DEFAULT NULL COMMENT '数据类型(int/float/bool/string)', `address` varchar(128) DEFAULT NULL COMMENT '寄存器地址/OPC节点', `unit` varchar(32) DEFAULT NULL COMMENT '单位', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 2删除)', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`point_id`), KEY `idx_device_id` (`device_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 设备点位表'; -- ---------------------------- -- 3. 设备点位值记录表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_device_point_value`; CREATE TABLE `wcs_device_point_value` ( `value_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '记录ID', `point_id` bigint(20) NOT NULL COMMENT '点位ID', `device_id` bigint(20) NOT NULL COMMENT '设备ID', `point_value` varchar(256) DEFAULT NULL COMMENT '点位值', `quality` varchar(16) DEFAULT NULL COMMENT '数据质量(good/bad/uncertain)', `collect_time` datetime DEFAULT NULL COMMENT '采集时间', `create_time` datetime DEFAULT NULL COMMENT '记录时间', PRIMARY KEY (`value_id`), KEY `idx_point_id` (`point_id`), KEY `idx_collect_time` (`collect_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 设备点位值记录表'; -- ---------------------------- -- 4. 接口配置表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_api_config`; CREATE TABLE `wcs_api_config` ( `api_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '接口ID', `api_code` varchar(64) NOT NULL COMMENT '接口编码', `api_name` varchar(128) DEFAULT NULL COMMENT '接口名称', `api_url` varchar(512) DEFAULT NULL COMMENT '接口地址', `request_method` varchar(16) DEFAULT 'POST' COMMENT '请求方式(GET/POST/PUT/DELETE)', `content_type` varchar(64) DEFAULT 'application/json' COMMENT '内容类型', `timeout` int(11) DEFAULT 30000 COMMENT '超时时间(毫秒)', `retry_count` int(11) DEFAULT 0 COMMENT '重试次数', `direction` varchar(16) DEFAULT NULL COMMENT '方向(inbound/outbound)', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 2删除)', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`api_id`), UNIQUE KEY `uk_api_code` (`api_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 接口配置表'; -- ---------------------------- -- 5. 流程定义表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_flow_def`; CREATE TABLE `wcs_flow_def` ( `flow_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '流程ID', `flow_code` varchar(64) NOT NULL COMMENT '流程编码', `flow_name` varchar(128) DEFAULT NULL COMMENT '流程名称', `flow_type` varchar(32) DEFAULT NULL COMMENT '流程类型', `version` int(11) DEFAULT 1 COMMENT '版本号', `flow_json` text COMMENT '流程JSON定义(画布数据)', `status` char(1) DEFAULT '0' COMMENT '状态(0草稿 1已发布 2已停用)', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 2删除)', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`flow_id`), UNIQUE KEY `uk_flow_code_version` (`flow_code`, `version`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 流程定义表'; -- ---------------------------- -- 6. 流程节点表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_flow_node`; CREATE TABLE `wcs_flow_node` ( `node_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '节点ID', `flow_id` bigint(20) NOT NULL COMMENT '所属流程ID', `node_code` varchar(64) NOT NULL COMMENT '节点编码', `node_name` varchar(128) DEFAULT NULL COMMENT '节点名称', `node_type` varchar(32) DEFAULT NULL COMMENT '节点类型(start/end/task/condition/parallel等)', `handler_class` varchar(256) DEFAULT NULL COMMENT '处理器类名', `config_json` text COMMENT '节点配置JSON', `pos_x` int(11) DEFAULT 0 COMMENT '画布X坐标', `pos_y` int(11) DEFAULT 0 COMMENT '画布Y坐标', `sort_order` int(11) DEFAULT 0 COMMENT '排序', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`node_id`), KEY `idx_flow_id` (`flow_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 流程节点表'; -- ---------------------------- -- 7. 流程连线表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_flow_line`; CREATE TABLE `wcs_flow_line` ( `line_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '连线ID', `flow_id` bigint(20) NOT NULL COMMENT '所属流程ID', `source_node_id` bigint(20) NOT NULL COMMENT '源节点ID', `target_node_id` bigint(20) NOT NULL COMMENT '目标节点ID', `condition_expr` varchar(512) DEFAULT NULL COMMENT '条件表达式', `line_label` varchar(128) DEFAULT NULL COMMENT '连线标签', `sort_order` int(11) DEFAULT 0 COMMENT '排序', `create_time` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`line_id`), KEY `idx_flow_id` (`flow_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 流程连线表'; -- ---------------------------- -- 8. 流程实例表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_flow_instance`; CREATE TABLE `wcs_flow_instance` ( `instance_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '实例ID', `flow_id` bigint(20) NOT NULL COMMENT '流程定义ID', `instance_code` varchar(64) DEFAULT NULL COMMENT '实例编码', `trigger_source` varchar(64) DEFAULT NULL COMMENT '触发来源', `current_node_id` bigint(20) DEFAULT NULL COMMENT '当前节点ID', `instance_status` varchar(16) DEFAULT 'running' COMMENT '实例状态(running/completed/failed/cancelled)', `context_json` text COMMENT '运行时上下文JSON', `start_time` datetime DEFAULT NULL COMMENT '开始时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `error_msg` varchar(2000) DEFAULT NULL COMMENT '错误信息', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`instance_id`), KEY `idx_flow_id` (`flow_id`), KEY `idx_instance_status` (`instance_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 流程实例表'; -- ---------------------------- -- 9. 流程节点执行日志表 -- ---------------------------- DROP TABLE IF EXISTS `wcs_flow_node_log`; CREATE TABLE `wcs_flow_node_log` ( `log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID', `instance_id` bigint(20) NOT NULL COMMENT '流程实例ID', `node_id` bigint(20) NOT NULL COMMENT '节点ID', `node_name` varchar(128) DEFAULT NULL COMMENT '节点名称', `execute_status` varchar(16) DEFAULT NULL COMMENT '执行状态(success/fail/skip)', `input_data` text COMMENT '输入数据JSON', `output_data` text COMMENT '输出数据JSON', `error_msg` varchar(2000) DEFAULT NULL COMMENT '错误信息', `start_time` datetime DEFAULT NULL COMMENT '开始时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `duration` bigint(20) DEFAULT NULL COMMENT '执行耗时(毫秒)', `create_time` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`log_id`), KEY `idx_instance_id` (`instance_id`), KEY `idx_node_id` (`node_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='WCS 流程节点执行日志表'; -- ---------------------------- -- WCS 菜单数据初始化(插入若依菜单表) -- 菜单ID 从 2000 起,避免与系统菜单冲突 -- ---------------------------- -- WCS 一级菜单 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 (2000, 'WCS控制系统', 0, 5, 'wcs', NULL, '', '', 1, 0, 'M', '0', '0', '', 'server', 'admin', sysdate(), '', NULL, 'WCS仓库控制系统'); -- 设备管理 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 (2001, '设备管理', 2000, 1, 'device', 'wcs/device/index', '', '', 1, 0, 'C', '0', '0', 'wcs:device:list', 'component', 'admin', sysdate(), '', NULL, 'WCS设备管理'); -- 点位配置 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 (2002, '点位配置', 2000, 2, 'point', 'wcs/point/index', '', '', 1, 0, 'C', '0', '0', 'wcs:point:list', 'edit', 'admin', sysdate(), '', NULL, 'WCS点位配置'); -- 接口配置 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 (2003, '接口配置', 2000, 3, 'apiconfig', 'wcs/apiconfig/index', '', '', 1, 0, 'C', '0', '0', 'wcs:api:list', 'link', 'admin', sysdate(), '', NULL, 'WCS接口配置'); -- 流程定义 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 (2004, '流程定义', 2000, 4, 'flowdef', 'wcs/flowdef/index', '', '', 1, 0, 'C', '0', '0', 'wcs:flow:list', 'cascader', 'admin', sysdate(), '', NULL, 'WCS流程定义'); -- 流程实例 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 (2005, '流程实例', 2000, 5, 'flowinstance', 'wcs/flowinstance/index', '', '', 1, 0, 'C', '0', '0', 'wcs:instance:list', 'list', 'admin', sysdate(), '', NULL, 'WCS流程实例'); -- 运行日志 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 (2006, '运行日志', 2000, 6, 'flowlog', 'wcs/flowlog/index', '', '', 1, 0, 'C', '0', '0', 'wcs:log:list', 'log', 'admin', sysdate(), '', NULL, 'WCS运行日志'); SET FOREIGN_KEY_CHECKS = 1;