Files
FT517-WCS/sql/wcs_init_mysql.sql

239 lines
15 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================
-- 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;