From 679a1916065110f6295a54385f75a3777c4c9a68 Mon Sep 17 00:00:00 2001
From: Dftre <3066417822@qq.com>
Date: Wed, 8 Jan 2025 01:18:18 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=AF=B9PostgreSQL=E7=9A=84?=
=?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=EF=BC=8C=E6=B3=A8=EF=BC=9A=E6=9A=82?=
=?UTF-8?q?=E6=97=B6=E8=BF=98=E6=97=A0=E6=B3=95=E5=AE=8C=E5=85=A8=E6=AD=A3?=
=?UTF-8?q?=E5=B8=B8=E4=BD=BF=E7=94=A8=EF=BC=8C=E6=9C=89=E4=BA=9Bmysql?=
=?UTF-8?q?=E7=89=B9=E6=9C=89=E7=9A=84=E5=87=BD=E6=95=B0=E9=9C=80=E8=A6=81?=
=?UTF-8?q?=E5=81=9A=E5=85=A8=E5=B1=80=E6=9B=BF=E6=8D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.vscode/settings.json | 10 +
pom.xml | 9 +
ruoyi-admin/pom.xml | 5 +
.../src/main/resources/application-druid.yml | 10 +-
sql/{ => mysql}/auth.sql | 0
sql/{ => mysql}/create_database.sql | 0
sql/{ => mysql}/gen.sql | 0
sql/{ => mysql}/online.sql | 0
sql/{ => mysql}/pay.sql | 0
sql/{ => mysql}/quartz.sql | 0
sql/{ => mysql}/ry_20230223.sql | 0
sql/postgresql/auth.sql | 78 ++
sql/postgresql/create_database.sql | 1 +
sql/postgresql/gen.sql | 138 +++
sql/postgresql/online.sql | 131 +++
sql/postgresql/pay.sql | 118 ++
sql/postgresql/quartz.sql | 263 +++++
sql/postgresql/ry_20230223.sql | 1009 +++++++++++++++++
18 files changed, 1769 insertions(+), 3 deletions(-)
rename sql/{ => mysql}/auth.sql (100%)
rename sql/{ => mysql}/create_database.sql (100%)
rename sql/{ => mysql}/gen.sql (100%)
rename sql/{ => mysql}/online.sql (100%)
rename sql/{ => mysql}/pay.sql (100%)
rename sql/{ => mysql}/quartz.sql (100%)
rename sql/{ => mysql}/ry_20230223.sql (100%)
create mode 100644 sql/postgresql/auth.sql
create mode 100644 sql/postgresql/create_database.sql
create mode 100644 sql/postgresql/gen.sql
create mode 100644 sql/postgresql/online.sql
create mode 100644 sql/postgresql/pay.sql
create mode 100644 sql/postgresql/quartz.sql
create mode 100644 sql/postgresql/ry_20230223.sql
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 9dec49b..072ca11 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -35,6 +35,16 @@
"database": "ry",
"username": "root",
"password": "123456"
+ },
+ {
+ "previewLimit": 50,
+ "server": "localhost",
+ "port": 5432,
+ "driver": "PostgreSQL",
+ "name": "postgres",
+ "database": "ry",
+ "username": "postgres",
+ "password": "123456"
}
],
}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 2c3c04d..ea2240d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,6 +38,7 @@
3.0.3
8.3.0
+ 42.7.4
2.3.1
4.0.5
2.1.0
@@ -92,6 +93,14 @@
runtime
+
+
+ org.postgresql
+ postgresql
+ ${postgresql.version}
+ runtime
+
+
com.alibaba
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index f9e8a19..11d7bda 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -29,6 +29,11 @@
mysql-connector-j
+
+ org.postgresql
+ postgresql
+
+
com.ruoyi
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 7460bb1..70d46ca 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -7,9 +7,13 @@ spring:
primary: MASTER
datasource:
# 主库数据源
+ # MASTER:
+ # url: jdbc:mysql://127.0.0.1/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ # username: root
+ # password: 123456
MASTER:
- url: jdbc:mysql://127.0.0.1/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
- username: root
+ url: jdbc:postgresql://127.0.0.1/ry
+ username: postgres
password: 123456
# 从库数据源
# SLAVE:
@@ -36,7 +40,7 @@ spring:
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
- validationQuery: SELECT 1 FROM DUAL
+ validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
diff --git a/sql/auth.sql b/sql/mysql/auth.sql
similarity index 100%
rename from sql/auth.sql
rename to sql/mysql/auth.sql
diff --git a/sql/create_database.sql b/sql/mysql/create_database.sql
similarity index 100%
rename from sql/create_database.sql
rename to sql/mysql/create_database.sql
diff --git a/sql/gen.sql b/sql/mysql/gen.sql
similarity index 100%
rename from sql/gen.sql
rename to sql/mysql/gen.sql
diff --git a/sql/online.sql b/sql/mysql/online.sql
similarity index 100%
rename from sql/online.sql
rename to sql/mysql/online.sql
diff --git a/sql/pay.sql b/sql/mysql/pay.sql
similarity index 100%
rename from sql/pay.sql
rename to sql/mysql/pay.sql
diff --git a/sql/quartz.sql b/sql/mysql/quartz.sql
similarity index 100%
rename from sql/quartz.sql
rename to sql/mysql/quartz.sql
diff --git a/sql/ry_20230223.sql b/sql/mysql/ry_20230223.sql
similarity index 100%
rename from sql/ry_20230223.sql
rename to sql/mysql/ry_20230223.sql
diff --git a/sql/postgresql/auth.sql b/sql/postgresql/auth.sql
new file mode 100644
index 0000000..2fe637c
--- /dev/null
+++ b/sql/postgresql/auth.sql
@@ -0,0 +1,78 @@
+-- ----------------------------
+-- 1、oauth_user 表
+-- ----------------------------
+DROP TABLE IF EXISTS oauth_user CASCADE;
+
+CREATE TABLE oauth_user (
+ id SERIAL NOT NULL PRIMARY KEY,
+ uuid VARCHAR(255) NOT NULL,
+ user_id BIGINT NOT NULL,
+ source VARCHAR(255) NOT NULL,
+ access_token VARCHAR(255) NOT NULL,
+ expire_in INT,
+ refresh_token VARCHAR(255),
+ open_id VARCHAR(255),
+ uid VARCHAR(255),
+ access_code VARCHAR(255),
+ union_id VARCHAR(255),
+ scope VARCHAR(255),
+ token_type VARCHAR(255),
+ id_token VARCHAR(255),
+ mac_algorithm VARCHAR(255),
+ mac_key VARCHAR(255),
+ code VARCHAR(255),
+ oauth_token VARCHAR(255),
+ oauth_token_secret VARCHAR(255)
+);
+
+COMMENT ON TABLE oauth_user IS '第三方登录';
+COMMENT ON COLUMN oauth_user.id IS '主键';
+COMMENT ON COLUMN oauth_user.uuid IS '第三方系统的唯一ID,详细解释请参考:名词解释';
+COMMENT ON COLUMN oauth_user.user_id IS '用户ID';
+COMMENT ON COLUMN oauth_user.source IS '第三方用户来源,可选值:GITHUB、GITEE、QQ,更多请参考:AuthDefaultSource.java(opens new window)';
+COMMENT ON COLUMN oauth_user.access_token IS '用户的授权令牌';
+COMMENT ON COLUMN oauth_user.expire_in IS '第三方用户的授权令牌的有效期,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.refresh_token IS '刷新令牌,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.open_id IS '第三方用户的 open id,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.uid IS '第三方用户的 ID,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.access_code IS '个别平台的授权信息,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.union_id IS '第三方用户的 union id,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.scope IS '第三方用户授予的权限,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.token_type IS '个别平台的授权信息,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.id_token IS 'id token,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.mac_algorithm IS '小米平台用户的附带属性,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.mac_key IS '小米平台用户的附带属性,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.code IS '用户的授权code,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.oauth_token IS 'Twitter平台用户的附带属性,部分平台可能没有';
+COMMENT ON COLUMN oauth_user.oauth_token_secret IS 'Twitter平台用户的附带属性,部分平台可能没有';
+
+-- ----------------------------
+-- 菜单 SQL
+-- ----------------------------
+SELECT setval('sys_menu_menu_id_seq', max(menu_id)) FROM sys_menu WHERE menu_id < 100;
+INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+VALUES ('第三方认证', 1, 1, 'oauth', 'system/oauth/index', '', 1, 0, 'C', '0', '0', 'system:oauth:list', 'checkbox', 'admin', CURRENT_TIMESTAMP, '', NULL, '第三方认证菜单');
+
+-- 按钮父菜单ID
+DO $$
+DECLARE
+ parentId INTEGER;
+BEGIN
+ SELECT LASTVAL() INTO parentId;
+
+ -- 按钮 SQL
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('第三方认证查询', parentId, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:oauth:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('第三方认证新增', parentId, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:oauth:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('第三方认证修改', parentId, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:oauth:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('第三方认证删除', parentId, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:oauth:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('第三方认证导出', parentId, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:oauth:export', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+END $$;
\ No newline at end of file
diff --git a/sql/postgresql/create_database.sql b/sql/postgresql/create_database.sql
new file mode 100644
index 0000000..a0ea1ea
--- /dev/null
+++ b/sql/postgresql/create_database.sql
@@ -0,0 +1 @@
+CREATE DATABASE ry WITH ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE = template0;
\ No newline at end of file
diff --git a/sql/postgresql/gen.sql b/sql/postgresql/gen.sql
new file mode 100644
index 0000000..b0670c0
--- /dev/null
+++ b/sql/postgresql/gen.sql
@@ -0,0 +1,138 @@
+-- ----------------------------
+-- 18、代码生成业务表
+-- ----------------------------
+DROP TABLE IF EXISTS gen_table;
+CREATE TABLE gen_table (
+ table_id bigserial PRIMARY KEY,
+ table_name varchar(200) DEFAULT '' ,
+ table_comment varchar(500) DEFAULT '' ,
+ have_sub_column char(1) DEFAULT '0',
+ sub_table_name varchar(64) DEFAULT NULL,
+ sub_table_fk_name varchar(64) DEFAULT NULL,
+ class_name varchar(100) DEFAULT '' ,
+ tpl_category varchar(200) DEFAULT 'crud',
+ tpl_web_type varchar(200) DEFAULT 'element-plus',
+ package_name varchar(100) DEFAULT NULL,
+ module_name varchar(30) DEFAULT NULL,
+ business_name varchar(30) DEFAULT NULL,
+ function_name varchar(50) DEFAULT NULL,
+ function_author varchar(50) DEFAULT NULL,
+ gen_type char(1) DEFAULT '0',
+ gen_path varchar(200) DEFAULT '/' ,
+ options varchar(1000) DEFAULT NULL,
+ create_by varchar(64) DEFAULT '' ,
+ create_time timestamp DEFAULT CURRENT_TIMESTAMP,
+ update_by varchar(64) DEFAULT '' ,
+ update_time timestamp DEFAULT CURRENT_TIMESTAMP,
+ remark varchar(500) DEFAULT NULL
+);
+
+COMMENT ON TABLE gen_table IS '代码生成业务表';
+COMMENT ON COLUMN gen_table.table_id IS '编号';
+COMMENT ON COLUMN gen_table.table_name IS '表名称';
+COMMENT ON COLUMN gen_table.table_comment IS '表描述';
+COMMENT ON COLUMN gen_table.have_sub_column IS '是否含有关联字段';
+COMMENT ON COLUMN gen_table.sub_table_name IS '关联子表的表名';
+COMMENT ON COLUMN gen_table.sub_table_fk_name IS '子表关联的外键名';
+COMMENT ON COLUMN gen_table.class_name IS '实体类名称';
+COMMENT ON COLUMN gen_table.tpl_category IS '使用的模板(crud单表操作 tree树表操作)';
+COMMENT ON COLUMN gen_table.tpl_web_type IS '使用的模板类型';
+COMMENT ON COLUMN gen_table.package_name IS '生成包路径';
+COMMENT ON COLUMN gen_table.module_name IS '生成模块名';
+COMMENT ON COLUMN gen_table.business_name IS '生成业务名';
+COMMENT ON COLUMN gen_table.function_name IS '生成功能名';
+COMMENT ON COLUMN gen_table.function_author IS '生成功能作者';
+COMMENT ON COLUMN gen_table.gen_type IS '生成代码方式(0zip压缩包 1自定义路径)';
+COMMENT ON COLUMN gen_table.gen_path IS '生成路径(不填默认项目路径)';
+COMMENT ON COLUMN gen_table.options IS '其它生成选项';
+COMMENT ON COLUMN gen_table.create_by IS '创建者';
+COMMENT ON COLUMN gen_table.create_time IS '创建时间';
+COMMENT ON COLUMN gen_table.update_by IS '更新者';
+COMMENT ON COLUMN gen_table.update_time IS '更新时间';
+COMMENT ON COLUMN gen_table.remark IS '备注';
+
+-- ----------------------------
+-- 19、代码生成业务表字段
+-- ----------------------------
+DROP TABLE IF EXISTS gen_table_column;
+CREATE TABLE gen_table_column (
+ column_id bigserial PRIMARY KEY,
+ table_id bigint DEFAULT NULL,
+ column_name varchar(200) DEFAULT NULL,
+ column_comment varchar(500) DEFAULT NULL,
+ column_type varchar(100) DEFAULT NULL,
+ java_type varchar(500) DEFAULT NULL,
+ java_field varchar(200) DEFAULT NULL,
+ is_pk char(1) DEFAULT NULL,
+ is_increment char(1) DEFAULT NULL,
+ is_required char(1) DEFAULT NULL,
+ is_insert char(1) DEFAULT NULL,
+ is_edit char(1) DEFAULT NULL,
+ is_list char(1) DEFAULT NULL,
+ is_query char(1) DEFAULT NULL,
+ query_type varchar(200) DEFAULT 'EQ',
+ html_type varchar(200) DEFAULT NULL,
+ dict_type varchar(200) DEFAULT '' ,
+ sort int DEFAULT NULL,
+ sub_column_table_name varchar(200) DEFAULT NULL,
+ sub_column_fk_name varchar(200) DEFAULT NULL,
+ sub_column_name varchar(200) DEFAULT NULL,
+ sub_column_java_field varchar(200) DEFAULT NULL,
+ sub_column_java_type varchar(255) DEFAULT NULL,
+ create_by varchar(64) DEFAULT '' ,
+ create_time timestamp DEFAULT CURRENT_TIMESTAMP,
+ update_by varchar(64) DEFAULT '' ,
+ update_time timestamp DEFAULT CURRENT_TIMESTAMP
+);
+
+COMMENT ON TABLE gen_table_column IS '代码生成业务表字段';
+COMMENT ON COLUMN gen_table_column.column_id IS '编号';
+COMMENT ON COLUMN gen_table_column.table_id IS '归属表编号';
+COMMENT ON COLUMN gen_table_column.column_name IS '列名称';
+COMMENT ON COLUMN gen_table_column.column_comment IS '列描述';
+COMMENT ON COLUMN gen_table_column.column_type IS '列类型';
+COMMENT ON COLUMN gen_table_column.java_type IS 'JAVA类型';
+COMMENT ON COLUMN gen_table_column.java_field IS 'JAVA字段名';
+COMMENT ON COLUMN gen_table_column.is_pk IS '是否主键(1是)';
+COMMENT ON COLUMN gen_table_column.is_increment IS '是否自增(1是)';
+COMMENT ON COLUMN gen_table_column.is_required IS '是否必填(1是)';
+COMMENT ON COLUMN gen_table_column.is_insert IS '是否为插入字段(1是)';
+COMMENT ON COLUMN gen_table_column.is_edit IS '是否编辑字段(1是)';
+COMMENT ON COLUMN gen_table_column.is_list IS '是否列表字段(1是)';
+COMMENT ON COLUMN gen_table_column.is_query IS '是否查询字段(1是)';
+COMMENT ON COLUMN gen_table_column.query_type IS '查询方式(等于、不等于、大于、小于、范围)';
+COMMENT ON COLUMN gen_table_column.html_type IS '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)';
+COMMENT ON COLUMN gen_table_column.dict_type IS '字典类型';
+COMMENT ON COLUMN gen_table_column.sort IS '排序';
+COMMENT ON COLUMN gen_table_column.sub_column_table_name IS '关联表名称';
+COMMENT ON COLUMN gen_table_column.sub_column_fk_name IS '关联字段名称';
+COMMENT ON COLUMN gen_table_column.sub_column_name IS '映射字段名称';
+COMMENT ON COLUMN gen_table_column.sub_column_java_field IS '映射字段JAVA字段名';
+COMMENT ON COLUMN gen_table_column.sub_column_java_type IS '映射字段JAVA类型';
+COMMENT ON COLUMN gen_table_column.create_by IS '创建者';
+COMMENT ON COLUMN gen_table_column.create_time IS '创建时间';
+COMMENT ON COLUMN gen_table_column.update_by IS '更新者';
+COMMENT ON COLUMN gen_table_column.update_time IS '更新时间';
+
+-- 插入菜单数据
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+VALUES (116, '代码生成', 3, 2, 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', CURRENT_TIMESTAMP, '', NULL, '代码生成菜单');
+
+-- 代码生成按钮
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+VALUES (1055, '生成查询', 116, 1, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+VALUES (1056, '生成修改', 116, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+VALUES (1057, '生成删除', 116, 3, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+VALUES (1058, '导入代码', 116, 4, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+VALUES (1059, '预览代码', 116, 5, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+VALUES (1060, '生成代码', 116, 6, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
\ No newline at end of file
diff --git a/sql/postgresql/online.sql b/sql/postgresql/online.sql
new file mode 100644
index 0000000..7a86270
--- /dev/null
+++ b/sql/postgresql/online.sql
@@ -0,0 +1,131 @@
+-- ----------------------------
+-- 18、在线接口表
+-- ----------------------------
+DROP TABLE IF EXISTS online_mb;
+
+CREATE TABLE online_mb (
+ mb_id bigserial PRIMARY KEY,
+ tag varchar(255) NULL,
+ tag_id varchar(255) NULL,
+ parameter_type varchar(255) NULL,
+ result_map varchar(255) NULL,
+ sql_text varchar(255) NULL,
+ path varchar(255) NULL,
+ method varchar(255) NULL,
+ result_type varchar(255) NULL,
+ actuator varchar(255) NULL,
+ user_id char(1) NULL,
+ dept_id char(1) NULL,
+ permission_type varchar(255) NULL,
+ permission_value varchar(255) NULL,
+ del_flag varchar(10) NOT NULL DEFAULT '0'
+);
+
+COMMENT ON COLUMN online_mb.mb_id IS '主键';
+COMMENT ON COLUMN online_mb.tag IS '标签名';
+COMMENT ON COLUMN online_mb.tag_id IS '标签id';
+COMMENT ON COLUMN online_mb.parameter_type IS '参数类型';
+COMMENT ON COLUMN online_mb.result_map IS '结果类型';
+COMMENT ON COLUMN online_mb.sql_text IS 'sql语句';
+COMMENT ON COLUMN online_mb.path IS '请求路径';
+COMMENT ON COLUMN online_mb.method IS '请求方式';
+COMMENT ON COLUMN online_mb.result_type IS '响应类型';
+COMMENT ON COLUMN online_mb.actuator IS '执行器';
+COMMENT ON COLUMN online_mb.user_id IS '是否需要userId';
+COMMENT ON COLUMN online_mb.dept_id IS '是否需要deptId';
+COMMENT ON COLUMN online_mb.permission_type IS '许可类型';
+COMMENT ON COLUMN online_mb.permission_value IS '许可值';
+COMMENT ON COLUMN online_mb.del_flag IS '删除标志(0代表存在 1代表删除)';
+
+-- 插入菜单数据
+SELECT setval('sys_menu_menu_id_seq', max(menu_id)) FROM sys_menu WHERE menu_id < 100;
+INSERT INTO sys_menu (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 ('Online', 0, 5, 'onlinedev', NULL, NULL, '', 1, 0, 'M', '0', '0', NULL, 'international', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+-- 获取插入的父菜单ID
+DO $$
+DECLARE
+ parentId bigint;
+BEGIN
+ INSERT INTO sys_menu (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 ('Online', 0, 5, 'onlinedev', NULL, NULL, '', 1, 0, 'M', '0', '0', NULL, 'international', 'admin', CURRENT_TIMESTAMP, '', NULL, '')
+ RETURNING menu_id INTO parentId;
+
+ -- 菜单 SQL
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('mybatis在线接口', parentId, '1', 'mb', 'online/mb/index', '', 1, 0, 'C', '0', '0', 'online:mb:list', 'code', 'admin', CURRENT_TIMESTAMP, '', NULL, 'mybatis在线接口菜单');
+
+ -- 获取插入的子菜单ID
+ INSERT INTO sys_menu (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 ('数据库', parentId, 1, 'db', 'online/db/index', NULL, '', 1, 0, 'C', '0', '0', 'admin', 'table', 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '')
+ RETURNING menu_id INTO parentId;
+
+ -- 按钮 SQL
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('mybatis在线接口查询', parentId, '1', '#', '', '', 1, 0, 'F', '0', '0', 'online:mb:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('mybatis在线接口新增', parentId, '2', '#', '', '', 1, 0, 'F', '0', '0', 'online:mb:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('mybatis在线接口修改', parentId, '3', '#', '', '', 1, 0, 'F', '0', '0', 'online:mb:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('mybatis在线接口删除', parentId, '4', '#', '', '', 1, 0, 'F', '0', '0', 'online:mb:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('mybatis在线接口导出', parentId, '5', '#', '', '', 1, 0, 'F', '0', '0', 'online:mb:export', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+END $$;
+
+-- 插入字典类型
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+VALUES ('请求方式', 'online_api_method', '0', 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, NULL);
+
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+VALUES ('标签名', 'online_api_tag', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+VALUES ('响应类型', 'online_api_result', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+VALUES ('执行器', 'online_api_actuator', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+-- 插入字典数据
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'POST', 'POST', 'online_api_method', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'GET', 'GET', 'online_api_method', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'PUT', 'PUT', 'online_api_method', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'DELETE', 'DELETE', 'online_api_method', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'select', 'select', 'online_api_tag', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'update', 'update', 'online_api_tag', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'insert', 'insert', 'online_api_tag', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'delete', 'delete', 'online_api_tag', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'selectList', 'selectList', 'online_api_actuator', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'insert', 'insert', 'online_api_actuator', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'selectOne', 'selectOne', 'online_api_actuator', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'update', 'update', 'online_api_actuator', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
+
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+VALUES (0, 'delete', 'delete', 'online_api_actuator', NULL, 'default', 'N', '0', 'admin', CURRENT_TIMESTAMP, '', NULL, NULL);
\ No newline at end of file
diff --git a/sql/postgresql/pay.sql b/sql/postgresql/pay.sql
new file mode 100644
index 0000000..292d28b
--- /dev/null
+++ b/sql/postgresql/pay.sql
@@ -0,0 +1,118 @@
+-- ----------------------------
+-- 订单表
+-- ----------------------------
+DROP TABLE IF EXISTS pay_order;
+CREATE TABLE pay_order (
+ order_id bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
+ order_number varchar(255) NULL DEFAULT NULL,
+ order_status varchar(255) NULL DEFAULT NULL,
+ total_amount varchar(255) NULL DEFAULT NULL,
+ actual_amount varchar(255) NULL DEFAULT NULL,
+ order_content varchar(255) NULL DEFAULT NULL,
+ order_message varchar(255) NULL DEFAULT NULL,
+ create_by varchar(64) default '',
+ create_time timestamp default CURRENT_TIMESTAMP,
+ update_by varchar(64) default '',
+ update_time timestamp default CURRENT_TIMESTAMP,
+ remark varchar(500) default null
+);
+
+COMMENT ON COLUMN pay_order.order_id IS '订单id';
+COMMENT ON COLUMN pay_order.order_number IS '订单号';
+COMMENT ON COLUMN pay_order.order_status IS '订单状态';
+COMMENT ON COLUMN pay_order.total_amount IS '订单总金额';
+COMMENT ON COLUMN pay_order.actual_amount IS '实际支付金额';
+COMMENT ON COLUMN pay_order.order_content IS '订单内容';
+COMMENT ON COLUMN pay_order.order_message IS '负载信息';
+COMMENT ON COLUMN pay_order.create_by IS '创建者';
+COMMENT ON COLUMN pay_order.create_time IS '创建时间';
+COMMENT ON COLUMN pay_order.update_by IS '更新者';
+COMMENT ON COLUMN pay_order.update_time IS '更新时间';
+COMMENT ON COLUMN pay_order.remark IS '备注';
+
+-- ----------------------------
+-- 发票表
+-- ----------------------------
+DROP TABLE IF EXISTS pay_invoice;
+CREATE TABLE pay_invoice (
+ invoice_id bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
+ order_number varchar(255) NULL DEFAULT NULL,
+ invoice_type varchar(255) NULL DEFAULT NULL,
+ invoice_header varchar(255) NULL DEFAULT NULL,
+ invoice_number varchar(255) NULL DEFAULT NULL,
+ invoice_phone varchar(255) NULL DEFAULT NULL,
+ invoice_email varchar(255) NULL DEFAULT NULL,
+ invoice_remark varchar(255) NULL DEFAULT NULL,
+ create_by varchar(64) default '',
+ create_time timestamp default CURRENT_TIMESTAMP,
+ update_by varchar(64) default '',
+ update_time timestamp default CURRENT_TIMESTAMP,
+ remark varchar(500) default null
+);
+
+COMMENT ON COLUMN pay_invoice.invoice_id IS '发票id';
+COMMENT ON COLUMN pay_invoice.order_number IS '订单号';
+COMMENT ON COLUMN pay_invoice.invoice_type IS '发票类型';
+COMMENT ON COLUMN pay_invoice.invoice_header IS '发票抬头';
+COMMENT ON COLUMN pay_invoice.invoice_number IS '纳税人识别号';
+COMMENT ON COLUMN pay_invoice.invoice_phone IS '收票人手机号';
+COMMENT ON COLUMN pay_invoice.invoice_email IS '收票人邮箱';
+COMMENT ON COLUMN pay_invoice.invoice_remark IS '发票备注';
+COMMENT ON COLUMN pay_invoice.create_by IS '创建者';
+COMMENT ON COLUMN pay_invoice.create_time IS '创建时间';
+COMMENT ON COLUMN pay_invoice.update_by IS '更新者';
+COMMENT ON COLUMN pay_invoice.update_time IS '更新时间';
+COMMENT ON COLUMN pay_invoice.remark IS '备注';
+
+SELECT setval('sys_menu_menu_id_seq', max(menu_id)) FROM sys_menu WHERE menu_id < 100;
+-- 插入支付管理菜单
+ INSERT INTO sys_menu (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 ('支付管理', 0, 4, '/pay', NULL, NULL, '', 1, 0, 'M', '0', '0', NULL, 'money', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+DO $$
+DECLARE
+ parentId INTEGER;
+BEGIN
+ SELECT LASTVAL() INTO parentId;
+
+ -- 插入订单菜单
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('订单', parentId, '1', 'order', 'pay/order/index', '', 1, 0, 'C', '0', '0', 'pay:order:list', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '订单菜单')
+ RETURNING menu_id INTO parentId;
+
+ -- 插入订单按钮
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('订单查询', parentId, '1', '#', '', '', 1, 0, 'F', '0', '0', 'pay:order:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('订单新增', parentId, '2', '#', '', '', 1, 0, 'F', '0', '0', 'pay:order:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('订单修改', parentId, '3', '#', '', '', 1, 0, 'F', '0', '0', 'pay:order:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('订单删除', parentId, '4', '#', '', '', 1, 0, 'F', '0', '0', 'pay:order:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('订单导出', parentId, '5', '#', '', '', 1, 0, 'F', '0', '0', 'pay:order:export', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ -- 插入发票菜单
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('发票', parentId, '1', 'invoice', 'pay/invoice/index', '', 1, 0, 'C', '0', '0', 'pay:invoice:list', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '发票菜单')
+ RETURNING menu_id INTO parentId;
+
+ -- 插入发票按钮
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('发票查询', parentId, '1', '#', '', '', 1, 0, 'F', '0', '0', 'pay:invoice:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('发票新增', parentId, '2', '#', '', '', 1, 0, 'F', '0', '0', 'pay:invoice:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('发票修改', parentId, '3', '#', '', '', 1, 0, 'F', '0', '0', 'pay:invoice:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('发票删除', parentId, '4', '#', '', '', 1, 0, 'F', '0', '0', 'pay:invoice:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+
+ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+ VALUES ('发票导出', parentId, '5', '#', '', '', 1, 0, 'F', '0', '0', 'pay:invoice:export', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '');
+END $$;
\ No newline at end of file
diff --git a/sql/postgresql/quartz.sql b/sql/postgresql/quartz.sql
new file mode 100644
index 0000000..d499e02
--- /dev/null
+++ b/sql/postgresql/quartz.sql
@@ -0,0 +1,263 @@
+DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
+DROP TABLE IF EXISTS QRTZ_LOCKS;
+DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
+DROP TABLE IF EXISTS QRTZ_CALENDARS;
+
+-- ----------------------------
+-- 1、存储每一个已配置的 jobDetail 的详细信息
+-- ----------------------------
+
+CREATE TABLE QRTZ_JOB_DETAILS (
+ sched_name varchar(120) NOT NULL,
+ job_name varchar(200) NOT NULL,
+ job_group varchar(200) NOT NULL,
+ description varchar(250) NULL,
+ job_class_name varchar(250) NOT NULL,
+ is_durable varchar(1) NOT NULL,
+ is_nonconcurrent varchar(1) NOT NULL,
+ is_update_data varchar(1) NOT NULL,
+ requests_recovery varchar(1) NOT NULL,
+ job_data bytea NULL,
+ PRIMARY KEY (sched_name, job_name, job_group)
+);
+
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.job_name IS '任务名称';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.job_group IS '任务组名';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.description IS '相关介绍';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.job_class_name IS '执行任务类名称';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.is_durable IS '是否持久化';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.is_nonconcurrent IS '是否并发';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.is_update_data IS '是否更新数据';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.requests_recovery IS '是否接受恢复执行';
+COMMENT ON COLUMN QRTZ_JOB_DETAILS.job_data IS '存放持久化job对象';
+
+-- ----------------------------
+-- 2、 存储已配置的 Trigger 的信息
+-- ----------------------------
+CREATE TABLE QRTZ_TRIGGERS (
+ sched_name varchar(120) NOT NULL,
+ trigger_name varchar(200) NOT NULL,
+ trigger_group varchar(200) NOT NULL,
+ job_name varchar(200) NOT NULL,
+ job_group varchar(200) NOT NULL,
+ description varchar(250) NULL,
+ next_fire_time bigint NULL,
+ prev_fire_time bigint NULL,
+ priority integer NULL,
+ trigger_state varchar(16) NOT NULL,
+ trigger_type varchar(8) NOT NULL,
+ start_time bigint NOT NULL,
+ end_time bigint NULL,
+ calendar_name varchar(200) NULL,
+ misfire_instr smallint NULL,
+ job_data bytea NULL,
+ PRIMARY KEY (sched_name, trigger_name, trigger_group),
+ FOREIGN KEY (sched_name, job_name, job_group) REFERENCES QRTZ_JOB_DETAILS(sched_name, job_name, job_group)
+);
+
+COMMENT ON COLUMN QRTZ_TRIGGERS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_TRIGGERS.trigger_name IS '触发器的名字';
+COMMENT ON COLUMN QRTZ_TRIGGERS.trigger_group IS '触发器所属组的名字';
+COMMENT ON COLUMN QRTZ_TRIGGERS.job_name IS 'qrtz_job_details表job_name的外键';
+COMMENT ON COLUMN QRTZ_TRIGGERS.job_group IS 'qrtz_job_details表job_group的外键';
+COMMENT ON COLUMN QRTZ_TRIGGERS.description IS '相关介绍';
+COMMENT ON COLUMN QRTZ_TRIGGERS.next_fire_time IS '上一次触发时间(毫秒)';
+COMMENT ON COLUMN QRTZ_TRIGGERS.prev_fire_time IS '下一次触发时间(默认为-1表示不触发)';
+COMMENT ON COLUMN QRTZ_TRIGGERS.priority IS '优先级';
+COMMENT ON COLUMN QRTZ_TRIGGERS.trigger_state IS '触发器状态';
+COMMENT ON COLUMN QRTZ_TRIGGERS.trigger_type IS '触发器的类型';
+COMMENT ON COLUMN QRTZ_TRIGGERS.start_time IS '开始时间';
+COMMENT ON COLUMN QRTZ_TRIGGERS.end_time IS '结束时间';
+COMMENT ON COLUMN QRTZ_TRIGGERS.calendar_name IS '日程表名称';
+COMMENT ON COLUMN QRTZ_TRIGGERS.misfire_instr IS '补偿执行的策略';
+COMMENT ON COLUMN QRTZ_TRIGGERS.job_data IS '存放持久化job对象';
+
+-- ----------------------------
+-- 3、 存储简单的 Trigger,包括重复次数,间隔,以及已触发的次数
+-- ----------------------------
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+ sched_name varchar(120) NOT NULL,
+ trigger_name varchar(200) NOT NULL,
+ trigger_group varchar(200) NOT NULL,
+ repeat_count bigint NOT NULL,
+ repeat_interval bigint NOT NULL,
+ times_triggered bigint NOT NULL,
+ PRIMARY KEY (sched_name, trigger_name, trigger_group),
+ FOREIGN KEY (sched_name, trigger_name, trigger_group) REFERENCES QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group)
+);
+
+COMMENT ON COLUMN QRTZ_SIMPLE_TRIGGERS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_SIMPLE_TRIGGERS.trigger_name IS 'qrtz_triggers表trigger_name的外键';
+COMMENT ON COLUMN QRTZ_SIMPLE_TRIGGERS.trigger_group IS 'qrtz_triggers表trigger_group的外键';
+COMMENT ON COLUMN QRTZ_SIMPLE_TRIGGERS.repeat_count IS '重复的次数统计';
+COMMENT ON COLUMN QRTZ_SIMPLE_TRIGGERS.repeat_interval IS '重复的间隔时间';
+COMMENT ON COLUMN QRTZ_SIMPLE_TRIGGERS.times_triggered IS '已经触发的次数';
+
+-- ----------------------------
+-- 4、 存储 Cron Trigger,包括 Cron 表达式和时区信息
+-- ----------------------------
+CREATE TABLE QRTZ_CRON_TRIGGERS (
+ sched_name varchar(120) NOT NULL,
+ trigger_name varchar(200) NOT NULL,
+ trigger_group varchar(200) NOT NULL,
+ cron_expression varchar(200) NOT NULL,
+ time_zone_id varchar(80) NULL,
+ PRIMARY KEY (sched_name, trigger_name, trigger_group),
+ FOREIGN KEY (sched_name, trigger_name, trigger_group) REFERENCES QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group)
+);
+
+COMMENT ON COLUMN QRTZ_CRON_TRIGGERS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_CRON_TRIGGERS.trigger_name IS 'qrtz_triggers表trigger_name的外键';
+COMMENT ON COLUMN QRTZ_CRON_TRIGGERS.trigger_group IS 'qrtz_triggers表trigger_group的外键';
+COMMENT ON COLUMN QRTZ_CRON_TRIGGERS.cron_expression IS 'cron表达式';
+COMMENT ON COLUMN QRTZ_CRON_TRIGGERS.time_zone_id IS '时区';
+
+-- ----------------------------
+-- 5、 Trigger 作为 Blob 类型存储(用于 Quartz 用户用 JDBC 创建他们自己定制的 Trigger 类型,JobStore 并不知道如何存储实例的时候)
+-- ----------------------------
+CREATE TABLE QRTZ_BLOB_TRIGGERS (
+ sched_name varchar(120) NOT NULL,
+ trigger_name varchar(200) NOT NULL,
+ trigger_group varchar(200) NOT NULL,
+ blob_data bytea NULL,
+ PRIMARY KEY (sched_name, trigger_name, trigger_group),
+ FOREIGN KEY (sched_name, trigger_name, trigger_group) REFERENCES QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group)
+);
+
+COMMENT ON COLUMN QRTZ_BLOB_TRIGGERS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_BLOB_TRIGGERS.trigger_name IS 'qrtz_triggers表trigger_name的外键';
+COMMENT ON COLUMN QRTZ_BLOB_TRIGGERS.trigger_group IS 'qrtz_triggers表trigger_group的外键';
+COMMENT ON COLUMN QRTZ_BLOB_TRIGGERS.blob_data IS '存放持久化Trigger对象';
+
+-- ----------------------------
+-- 6、 以 Blob 类型存储存放日历信息, quartz可配置一个日历来指定一个时间范围
+-- ----------------------------
+CREATE TABLE QRTZ_CALENDARS (
+ sched_name varchar(120) NOT NULL,
+ calendar_name varchar(200) NOT NULL,
+ calendar bytea NOT NULL,
+ PRIMARY KEY (sched_name, calendar_name)
+);
+
+COMMENT ON COLUMN QRTZ_CALENDARS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_CALENDARS.calendar_name IS '日历名称';
+COMMENT ON COLUMN QRTZ_CALENDARS.calendar IS '存放持久化calendar对象';
+
+-- ----------------------------
+-- 7、 存储已暂停的 Trigger 组的信息
+-- ----------------------------
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+ sched_name varchar(120) NOT NULL,
+ trigger_group varchar(200) NOT NULL,
+ PRIMARY KEY (sched_name, trigger_group)
+);
+
+COMMENT ON COLUMN QRTZ_PAUSED_TRIGGER_GRPS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_PAUSED_TRIGGER_GRPS.trigger_group IS 'qrtz_triggers表trigger_group的外键';
+
+-- ----------------------------
+-- 8、 存储与已触发的 Trigger 相关的状态信息,以及相联 Job 的执行信息
+-- ----------------------------
+CREATE TABLE QRTZ_FIRED_TRIGGERS (
+ sched_name varchar(120) NOT NULL,
+ entry_id varchar(95) NOT NULL,
+ trigger_name varchar(200) NOT NULL,
+ trigger_group varchar(200) NOT NULL,
+ instance_name varchar(200) NOT NULL,
+ fired_time bigint NOT NULL,
+ sched_time bigint NOT NULL,
+ priority integer NOT NULL,
+ state varchar(16) NOT NULL,
+ job_name varchar(200) NULL,
+ job_group varchar(200) NULL,
+ is_nonconcurrent varchar(1) NULL,
+ requests_recovery varchar(1) NULL,
+ PRIMARY KEY (sched_name, entry_id)
+);
+
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.entry_id IS '调度器实例id';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.trigger_name IS 'qrtz_triggers表trigger_name的外键';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.trigger_group IS 'qrtz_triggers表trigger_group的外键';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.instance_name IS '调度器实例名';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.fired_time IS '触发的时间';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.sched_time IS '定时器制定的时间';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.priority IS '优先级';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.state IS '状态';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.job_name IS '任务名称';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.job_group IS '任务组名';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.is_nonconcurrent IS '是否并发';
+COMMENT ON COLUMN QRTZ_FIRED_TRIGGERS.requests_recovery IS '是否接受恢复执行';
+
+-- ----------------------------
+-- 9、 存储少量的有关 Scheduler 的状态信息,假如是用于集群中,可以看到其他的 Scheduler 实例
+-- ----------------------------
+CREATE TABLE QRTZ_SCHEDULER_STATE (
+ sched_name varchar(120) NOT NULL,
+ instance_name varchar(200) NOT NULL,
+ last_checkin_time bigint NOT NULL,
+ checkin_interval bigint NOT NULL,
+ PRIMARY KEY (sched_name, instance_name)
+);
+
+COMMENT ON COLUMN QRTZ_SCHEDULER_STATE.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_SCHEDULER_STATE.instance_name IS '实例名称';
+COMMENT ON COLUMN QRTZ_SCHEDULER_STATE.last_checkin_time IS '上次检查时间';
+COMMENT ON COLUMN QRTZ_SCHEDULER_STATE.checkin_interval IS '检查间隔时间';
+
+-- ----------------------------
+-- 10、 存储程序的悲观锁的信息(假如使用了悲观锁)
+-- ----------------------------
+CREATE TABLE QRTZ_LOCKS (
+ sched_name varchar(120) NOT NULL,
+ lock_name varchar(40) NOT NULL,
+ PRIMARY KEY (sched_name, lock_name)
+);
+
+COMMENT ON COLUMN QRTZ_LOCKS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_LOCKS.lock_name IS '悲观锁名称';
+
+-- ----------------------------
+-- 11、 Quartz集群实现同步机制的行锁表
+-- ----------------------------
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS (
+ sched_name varchar(120) NOT NULL,
+ trigger_name varchar(200) NOT NULL,
+ trigger_group varchar(200) NOT NULL,
+ str_prop_1 varchar(512) NULL,
+ str_prop_2 varchar(512) NULL,
+ str_prop_3 varchar(512) NULL,
+ int_prop_1 int NULL,
+ int_prop_2 int NULL,
+ long_prop_1 bigint NULL,
+ long_prop_2 bigint NULL,
+ dec_prop_1 numeric(13,4) NULL,
+ dec_prop_2 numeric(13,4) NULL,
+ bool_prop_1 varchar(1) NULL,
+ bool_prop_2 varchar(1) NULL,
+ PRIMARY KEY (sched_name, trigger_name, trigger_group),
+ FOREIGN KEY (sched_name, trigger_name, trigger_group) REFERENCES QRTZ_TRIGGERS(sched_name, trigger_name, trigger_group)
+);
+
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.sched_name IS '调度名称';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.trigger_name IS 'qrtz_triggers表trigger_name的外键';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.trigger_group IS 'qrtz_triggers表trigger_group的外键';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.str_prop_1 IS 'String类型的trigger的第一个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.str_prop_2 IS 'String类型的trigger的第二个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.str_prop_3 IS 'String类型的trigger的第三个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.int_prop_1 IS 'int类型的trigger的第一个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.int_prop_2 IS 'int类型的trigger的第二个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.long_prop_1 IS 'long类型的trigger的第一个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.long_prop_2 IS 'long类型的trigger的第二个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.dec_prop_1 IS 'decimal类型的trigger的第一个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.dec_prop_2 IS 'decimal类型的trigger的第二个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.bool_prop_1 IS 'Boolean类型的trigger的第一个参数';
+COMMENT ON COLUMN QRTZ_SIMPROP_TRIGGERS.bool_prop_2 IS 'Boolean类型的trigger的第二个参数';
\ No newline at end of file
diff --git a/sql/postgresql/ry_20230223.sql b/sql/postgresql/ry_20230223.sql
new file mode 100644
index 0000000..fad3e38
--- /dev/null
+++ b/sql/postgresql/ry_20230223.sql
@@ -0,0 +1,1009 @@
+-- ----------------------------
+-- 1、部门表
+-- ----------------------------
+drop table if exists sys_dept cascade;
+
+create table sys_dept (
+ dept_id bigserial not null primary key,
+ parent_id bigint default 0 ,
+ ancestors varchar(50) default '' ,
+ dept_name varchar(30) default '' ,
+ order_num integer default 0 ,
+ leader varchar(20) default null,
+ phone varchar(11) default null,
+ email varchar(50) default null,
+ status char(1) default '0' ,
+ del_flag char(1) default '0' ,
+ create_by varchar(64) default '',
+ create_time timestamp default current_timestamp,
+ update_by varchar(64) default '',
+ update_time timestamp default current_timestamp
+);
+
+comment on column sys_dept.dept_id is '部门id';
+comment on column sys_dept.parent_id is '父部门id';
+comment on column sys_dept.ancestors is '祖级列表';
+comment on column sys_dept.dept_name is '部门名称';
+comment on column sys_dept.order_num is '显示顺序';
+comment on column sys_dept.leader is '负责人';
+comment on column sys_dept.phone is '联系电话';
+comment on column sys_dept.email is '邮箱';
+comment on column sys_dept.status is '部门状态(0正常 1停用)';
+comment on column sys_dept.del_flag is '删除标志(0代表存在 2代表删除)';
+comment on column sys_dept.create_by is '创建者';
+comment on column sys_dept.create_time is '创建时间';
+comment on column sys_dept.update_by is '更新者';
+comment on column sys_dept.update_time is '更新时间';
+
+comment on table sys_dept is '部门表';
+
+-- ----------------------------
+-- 初始化-部门表数据
+-- ----------------------------
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+insert into sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time, update_by, update_time)
+values(109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', current_timestamp, '', null);
+
+-- ----------------------------
+-- 2、用户信息表
+-- ----------------------------
+drop table if exists sys_user cascade;
+
+create table sys_user (
+ user_id bigserial not null primary key,
+ dept_id bigint default null,
+ user_name varchar(30) not null,
+ nick_name varchar(30) not null,
+ user_type varchar(2) default '00',
+ email varchar(50) default '',
+ phonenumber varchar(11) default '',
+ sex char(1) default '0',
+ avatar varchar(100) default '',
+ password varchar(100) default '',
+ status char(1) default '0',
+ del_flag char(1) default '0',
+ login_ip varchar(128) default '',
+ login_date timestamp,
+ create_by varchar(64) default '',
+ create_time timestamp default current_timestamp,
+ update_by varchar(64) default '',
+ update_time timestamp default current_timestamp,
+ remark varchar(500) default null
+);
+
+comment on column sys_user.user_id is '用户ID';
+comment on column sys_user.dept_id is '部门ID';
+comment on column sys_user.user_name is '用户账号';
+comment on column sys_user.nick_name is '用户昵称';
+comment on column sys_user.user_type is '用户类型(00系统用户)';
+comment on column sys_user.email is '用户邮箱';
+comment on column sys_user.phonenumber is '手机号码';
+comment on column sys_user.sex is '用户性别(0男 1女 2未知)';
+comment on column sys_user.avatar is '头像地址';
+comment on column sys_user.password is '密码';
+comment on column sys_user.status is '帐号状态(0正常 1停用)';
+comment on column sys_user.del_flag is '删除标志(0代表存在 2代表删除)';
+comment on column sys_user.login_ip is '最后登录IP';
+comment on column sys_user.login_date is '最后登录时间';
+comment on column sys_user.create_by is '创建者';
+comment on column sys_user.create_time is '创建时间';
+comment on column sys_user.update_by is '更新者';
+comment on column sys_user.update_time is '更新时间';
+comment on column sys_user.remark is '备注';
+
+comment on table sys_user is '用户信息表';
+
+-- ----------------------------
+-- 初始化-用户信息表数据
+-- ----------------------------
+insert into sys_user (user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark)
+values(1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', current_timestamp, 'admin', current_timestamp, '', null, '管理员');
+insert into sys_user (user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark)
+values(2, 105, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', current_timestamp, 'admin', current_timestamp, '', null, '测试员');
+
+-- ----------------------------
+-- 3、岗位信息表
+-- ----------------------------
+drop table if exists sys_post cascade;
+
+create table sys_post (
+ post_id bigserial not null primary key,
+ post_code varchar(64) not null,
+ post_name varchar(50) not null,
+ post_sort integer not null,
+ status char(1) not null,
+ create_by varchar(64) default '',
+ create_time timestamp default current_timestamp,
+ update_by varchar(64) default '',
+ update_time timestamp default current_timestamp,
+ remark varchar(500) default null
+);
+
+comment on column sys_post.post_id is '岗位ID';
+comment on column sys_post.post_code is '岗位编码';
+comment on column sys_post.post_name is '岗位名称';
+comment on column sys_post.post_sort is '显示顺序';
+comment on column sys_post.status is '状态(0正常 1停用)';
+comment on column sys_post.create_by is '创建者';
+comment on column sys_post.create_time is '创建时间';
+comment on column sys_post.update_by is '更新者';
+comment on column sys_post.update_time is '更新时间';
+comment on column sys_post.remark is '备注';
+
+comment on table sys_post is '岗位信息表';
+
+-- ----------------------------
+-- 初始化-岗位信息表数据
+-- ----------------------------
+insert into sys_post (post_id, post_code, post_name, post_sort, status, create_by, create_time, update_by, update_time, remark)
+values(1, 'ceo', '董事长', 1, '0', 'admin', current_timestamp, '', null, '');
+insert into sys_post (post_id, post_code, post_name, post_sort, status, create_by, create_time, update_by, update_time, remark)
+values(2, 'se', '项目经理', 2, '0', 'admin', current_timestamp, '', null, '');
+insert into sys_post (post_id, post_code, post_name, post_sort, status, create_by, create_time, update_by, update_time, remark)
+values(3, 'hr', '人力资源', 3, '0', 'admin', current_timestamp, '', null, '');
+insert into sys_post (post_id, post_code, post_name, post_sort, status, create_by, create_time, update_by, update_time, remark)
+values(4, 'user', '普通员工', 4, '0', 'admin', current_timestamp, '', null, '');
+
+
+-- ----------------------------
+-- 4、角色信息表
+-- ----------------------------
+drop table if exists sys_role cascade;
+
+create table sys_role (
+ role_id bigserial not null primary key,
+ role_name varchar(30) not null,
+ role_key varchar(100) not null,
+ role_sort integer not null,
+ data_scope char(1) default '1',
+ menu_check_strictly boolean default true,
+ dept_check_strictly boolean default true,
+ status char(1) not null,
+ del_flag char(1) default '0',
+ create_by varchar(64) default '',
+ create_time timestamp default current_timestamp,
+ update_by varchar(64) default '',
+ update_time timestamp default current_timestamp,
+ remark varchar(500) default null
+);
+
+comment on column sys_role.role_id is '角色ID';
+comment on column sys_role.role_name is '角色名称';
+comment on column sys_role.role_key is '角色权限字符串';
+comment on column sys_role.role_sort is '显示顺序';
+comment on column sys_role.data_scope is '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)';
+comment on column sys_role.menu_check_strictly is '菜单树选择项是否关联显示';
+comment on column sys_role.dept_check_strictly is '部门树选择项是否关联显示';
+comment on column sys_role.status is '角色状态(0正常 1停用)';
+comment on column sys_role.del_flag is '删除标志(0代表存在 2代表删除)';
+comment on column sys_role.create_by is '创建者';
+comment on column sys_role.create_time is '创建时间';
+comment on column sys_role.update_by is '更新者';
+comment on column sys_role.update_time is '更新时间';
+comment on column sys_role.remark is '备注';
+
+comment on table sys_role is '角色信息表';
+
+-- ----------------------------
+-- 初始化-角色信息表数据
+-- ----------------------------
+insert into sys_role (role_id, role_name, role_key, role_sort, data_scope, menu_check_strictly, dept_check_strictly, status, del_flag, create_by, create_time, update_by, update_time, remark)
+values(1, '超级管理员', 'admin', 1, '1', true, true, '0', '0', 'admin', current_timestamp, '', null, '超级管理员');
+insert into sys_role (role_id, role_name, role_key, role_sort, data_scope, menu_check_strictly, dept_check_strictly, status, del_flag, create_by, create_time, update_by, update_time, remark)
+values(2, '普通角色', 'common', 2, '2', true, true, '0', '0', 'admin', current_timestamp, '', null, '普通角色');
+
+
+-- ----------------------------
+-- 5、菜单权限表
+-- ----------------------------
+drop table if exists sys_menu cascade;
+
+create table sys_menu (
+ menu_id bigserial not null primary key,
+ menu_name varchar(50) not null,
+ parent_id bigint default 0,
+ order_num integer default 0,
+ path varchar(200) default '',
+ component varchar(255) default null,
+ query varchar(255) default null,
+ route_name varchar(50) default '',
+ is_frame smallint default 1,
+ is_cache smallint default 0,
+ menu_type char(1) default '',
+ visible char(1) default '0',
+ status char(1) default '0',
+ perms varchar(100) default null,
+ icon varchar(100) default '#',
+ create_by varchar(64) default '',
+ create_time timestamp default current_timestamp,
+ update_by varchar(64) default '',
+ update_time timestamp default current_timestamp,
+ remark varchar(500) default ''
+);
+
+comment on column sys_menu.menu_id is '菜单ID';
+comment on column sys_menu.menu_name is '菜单名称';
+comment on column sys_menu.parent_id is '父菜单ID';
+comment on column sys_menu.order_num is '显示顺序';
+comment on column sys_menu.path is '路由地址';
+comment on column sys_menu.component is '组件路径';
+comment on column sys_menu.query is '路由参数';
+comment on column sys_menu.route_name is '路由名称';
+comment on column sys_menu.is_frame is '是否为外链(0是 1否)';
+comment on column sys_menu.is_cache is '是否缓存(0缓存 1不缓存)';
+comment on column sys_menu.menu_type is '菜单类型(M目录 C菜单 F按钮)';
+comment on column sys_menu.visible is '菜单状态(0显示 1隐藏)';
+comment on column sys_menu.status is '菜单状态(0正常 1停用)';
+comment on column sys_menu.perms is '权限标识';
+comment on column sys_menu.icon is '菜单图标';
+comment on column sys_menu.create_by is '创建者';
+comment on column sys_menu.create_time is '创建时间';
+comment on column sys_menu.update_by is '更新者';
+comment on column sys_menu.update_time is '更新时间';
+comment on column sys_menu.remark is '备注';
+
+comment on table sys_menu is '菜单权限表';
+
+-- ----------------------------
+-- 初始化-菜单信息表数据
+-- ----------------------------
+-- 一级菜单
+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(1, '系统管理', 0, 1, 'system', null, '', '', 1, 0, 'M', '0', '0', '', 'system', 'admin', current_timestamp, '', null, '系统管理目录');
+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(2, '系统监控', 0, 2, 'monitor', null, '', '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', current_timestamp, '', null, '系统监控目录');
+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(3, '系统工具', 0, 3, 'tool', null, '', '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', current_timestamp, '', null, '系统工具目录');
+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(4, '若依官网', 0, 4, 'http://ruoyi.vip', null, '', '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', current_timestamp, '', null, '若依官网地址');
+
+-- 二级菜单
+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(100, '用户管理', 1, 1, 'user', 'system/user/index', '', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', current_timestamp, '', null, '用户管理菜单');
+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(101, '角色管理', 1, 2, 'role', 'system/role/index', '', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', current_timestamp, '', null, '角色管理菜单');
+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(102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', current_timestamp, '', null, '菜单管理菜单');
+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(103, '部门管理', 1, 4, 'dept', 'system/dept/index', '', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', current_timestamp, '', null, '部门管理菜单');
+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(104, '岗位管理', 1, 5, 'post', 'system/post/index', '', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', current_timestamp, '', null, '岗位管理菜单');
+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(105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', current_timestamp, '', null, '字典管理菜单');
+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(106, '参数设置', 1, 7, 'config', 'system/config/index', '', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', current_timestamp, '', null, '参数设置菜单');
+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(107, '通知公告', 1, 8, 'notice', 'system/notice/index', '', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', current_timestamp, '', null, '通知公告菜单');
+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(108, '日志管理', 1, 9, 'log', '', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', current_timestamp, '', null, '日志管理菜单');
+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(109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', current_timestamp, '', null, '在线用户菜单');
+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(110, '定时任务', 2, 2, 'job', 'monitor/job/index', '', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', current_timestamp, '', null, '定时任务菜单');
+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(111, '数据监控', 2, 3, 'druid', 'monitor/druid/index', '', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', current_timestamp, '', null, '数据监控菜单');
+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(112, '服务监控', 2, 4, 'server', 'monitor/server/index', '', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', current_timestamp, '', null, '服务监控菜单');
+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(113, '缓存监控', 2, 5, 'cache', 'monitor/cache/index', '', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', current_timestamp, '', null, '缓存监控菜单');
+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(114, '缓存列表', 2, 6, 'cacheList', 'monitor/cache/list', '', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', current_timestamp, '', null, '缓存列表菜单');
+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(115, '表单构建', 3, 1, 'build', 'tool/build/index', '', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', current_timestamp, '', null, '表单构建菜单');
+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(117, '系统接口', 3, 3, 'swagger', 'tool/swagger/index', '', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', current_timestamp, '', null, '系统接口菜单');
+-- 三级菜单
+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(500, '操作日志', 108, 1, 'operlog', 'monitor/operlog/index', '', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', current_timestamp, '', null, '操作日志菜单');
+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(501, '登录日志', 108, 2, 'logininfor', 'monitor/logininfor/index', '', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', current_timestamp, '', null, '登录日志菜单');
+
+-- 用户管理按钮
+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(1000, '用户查询', 100, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', current_timestamp, '', null, '');
+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(1001, '用户新增', 100, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', current_timestamp, '', null, '');
+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(1002, '用户修改', 100, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1003, '用户删除', 100, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', current_timestamp, '', null, '');
+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(1004, '用户导出', 100, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', current_timestamp, '', null, '');
+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(1005, '用户导入', 100, 6, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', current_timestamp, '', null, '');
+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(1006, '重置密码', 100, 7, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', current_timestamp, '', null, '');
+
+-- 角色管理按钮
+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(1007, '角色查询', 101, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', current_timestamp, '', null, '');
+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(1008, '角色新增', 101, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', current_timestamp, '', null, '');
+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(1009, '角色修改', 101, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1010, '角色删除', 101, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', current_timestamp, '', null, '');
+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(1011, '角色导出', 101, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', current_timestamp, '', null, '');
+
+-- 菜单管理按钮
+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(1012, '菜单查询', 102, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', current_timestamp, '', null, '');
+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(1013, '菜单新增', 102, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', current_timestamp, '', null, '');
+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(1014, '菜单修改', 102, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1015, '菜单删除', 102, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', current_timestamp, '', null, '');
+
+-- 部门管理按钮
+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(1016, '部门查询', 103, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', current_timestamp, '', null, '');
+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(1017, '部门新增', 103, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', current_timestamp, '', null, '');
+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(1018, '部门修改', 103, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1019, '部门删除', 103, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', current_timestamp, '', null, '');
+-- 岗位管理按钮
+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(1020, '岗位查询', 104, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', current_timestamp, '', null, '');
+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(1021, '岗位新增', 104, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', current_timestamp, '', null, '');
+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(1022, '岗位修改', 104, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1023, '岗位删除', 104, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', current_timestamp, '', null, '');
+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(1024, '岗位导出', 104, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', current_timestamp, '', null, '');
+
+-- 字典管理按钮
+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(1025, '字典查询', 105, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', current_timestamp, '', null, '');
+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(1026, '字典新增', 105, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', current_timestamp, '', null, '');
+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(1027, '字典修改', 105, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1028, '字典删除', 105, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', current_timestamp, '', null, '');
+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(1029, '字典导出', 105, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', current_timestamp, '', null, '');
+
+-- 参数设置按钮
+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(1030, '参数查询', 106, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', current_timestamp, '', null, '');
+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(1031, '参数新增', 106, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', current_timestamp, '', null, '');
+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(1032, '参数修改', 106, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1033, '参数删除', 106, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', current_timestamp, '', null, '');
+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(1034, '参数导出', 106, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', current_timestamp, '', null, '');
+
+-- 通知公告按钮
+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(1035, '公告查询', 107, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', current_timestamp, '', null, '');
+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(1036, '公告新增', 107, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', current_timestamp, '', null, '');
+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(1037, '公告修改', 107, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1038, '公告删除', 107, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', current_timestamp, '', null, '');
+
+-- 操作日志按钮
+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(1039, '操作查询', 500, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', current_timestamp, '', null, '');
+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(1040, '操作删除', 500, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', current_timestamp, '', null, '');
+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(1041, '日志导出', 500, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', current_timestamp, '', null, '');
+
+-- 登录日志按钮
+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(1042, '登录查询', 501, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', current_timestamp, '', null, '');
+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(1043, '登录删除', 501, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', current_timestamp, '', null, '');
+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(1044, '日志导出', 501, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', current_timestamp, '', null, '');
+
+-- 在线用户按钮
+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(1046, '在线查询', 109, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', current_timestamp, '', null, '');
+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(1047, '批量强退', 109, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', current_timestamp, '', null, '');
+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(1048, '单条强退', 109, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', current_timestamp, '', null, '');
+
+-- 定时任务按钮
+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(1049, '任务查询', 110, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', current_timestamp, '', null, '');
+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(1050, '任务新增', 110, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', current_timestamp, '', null, '');
+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(1051, '任务修改', 110, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', current_timestamp, '', null, '');
+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(1052, '任务删除', 110, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', current_timestamp, '', null, '');
+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(1053, '状态修改', 110, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', current_timestamp, '', null, '');
+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(1054, '任务导出', 110, 6, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', current_timestamp, '', null, '');
+
+
+
+-- ----------------------------
+-- 6、用户和角色关联表 用户N-1角色
+-- ----------------------------
+drop table if exists sys_user_role cascade;
+
+create table sys_user_role (
+ user_id bigint not null,
+ role_id bigint not null,
+ primary key(user_id, role_id)
+);
+
+comment on table sys_user_role is '用户和角色关联表';
+comment on column sys_user_role.user_id is '用户ID';
+comment on column sys_user_role.role_id is '角色ID';
+
+-- ----------------------------
+-- 初始化-用户和角色关联表数据
+-- ----------------------------
+insert into sys_user_role (user_id, role_id) values (1, 1);
+insert into sys_user_role (user_id, role_id) values (2, 2);
+
+-- ----------------------------
+-- 7、角色和菜单关联表 角色1-N菜单
+-- ----------------------------
+drop table if exists sys_role_menu cascade;
+
+create table sys_role_menu (
+ role_id bigint not null,
+ menu_id bigint not null,
+ primary key(role_id, menu_id)
+);
+
+comment on table sys_role_menu is '角色和菜单关联表';
+comment on column sys_role_menu.role_id is '角色ID';
+comment on column sys_role_menu.menu_id is '菜单ID';
+
+-- ----------------------------
+-- 初始化-角色和菜单关联表数据
+-- ----------------------------
+insert into sys_role_menu (role_id, menu_id) values (2, 1);
+insert into sys_role_menu (role_id, menu_id) values (2, 2);
+insert into sys_role_menu (role_id, menu_id) values (2, 3);
+insert into sys_role_menu (role_id, menu_id) values (2, 4);
+insert into sys_role_menu (role_id, menu_id) values (2, 100);
+insert into sys_role_menu (role_id, menu_id) values (2, 101);
+insert into sys_role_menu (role_id, menu_id) values (2, 102);
+insert into sys_role_menu (role_id, menu_id) values (2, 103);
+insert into sys_role_menu (role_id, menu_id) values (2, 104);
+insert into sys_role_menu (role_id, menu_id) values (2, 105);
+insert into sys_role_menu (role_id, menu_id) values (2, 106);
+insert into sys_role_menu (role_id, menu_id) values (2, 107);
+insert into sys_role_menu (role_id, menu_id) values (2, 108);
+insert into sys_role_menu (role_id, menu_id) values (2, 109);
+insert into sys_role_menu (role_id, menu_id) values (2, 110);
+insert into sys_role_menu (role_id, menu_id) values (2, 111);
+insert into sys_role_menu (role_id, menu_id) values (2, 112);
+insert into sys_role_menu (role_id, menu_id) values (2, 113);
+insert into sys_role_menu (role_id, menu_id) values (2, 114);
+insert into sys_role_menu (role_id, menu_id) values (2, 115);
+insert into sys_role_menu (role_id, menu_id) values (2, 116);
+insert into sys_role_menu (role_id, menu_id) values (2, 117);
+insert into sys_role_menu (role_id, menu_id) values (2, 500);
+insert into sys_role_menu (role_id, menu_id) values (2, 501);
+insert into sys_role_menu (role_id, menu_id) values (2, 1000);
+insert into sys_role_menu (role_id, menu_id) values (2, 1001);
+insert into sys_role_menu (role_id, menu_id) values (2, 1002);
+insert into sys_role_menu (role_id, menu_id) values (2, 1003);
+insert into sys_role_menu (role_id, menu_id) values (2, 1004);
+insert into sys_role_menu (role_id, menu_id) values (2, 1005);
+insert into sys_role_menu (role_id, menu_id) values (2, 1006);
+insert into sys_role_menu (role_id, menu_id) values (2, 1007);
+insert into sys_role_menu (role_id, menu_id) values (2, 1008);
+insert into sys_role_menu (role_id, menu_id) values (2, 1009);
+insert into sys_role_menu (role_id, menu_id) values (2, 1010);
+insert into sys_role_menu (role_id, menu_id) values (2, 1011);
+insert into sys_role_menu (role_id, menu_id) values (2, 1012);
+insert into sys_role_menu (role_id, menu_id) values (2, 1013);
+insert into sys_role_menu (role_id, menu_id) values (2, 1014);
+insert into sys_role_menu (role_id, menu_id) values (2, 1015);
+insert into sys_role_menu (role_id, menu_id) values (2, 1016);
+insert into sys_role_menu (role_id, menu_id) values (2, 1017);
+insert into sys_role_menu (role_id, menu_id) values (2, 1018);
+insert into sys_role_menu (role_id, menu_id) values (2, 1019);
+insert into sys_role_menu (role_id, menu_id) values (2, 1020);
+insert into sys_role_menu (role_id, menu_id) values (2, 1021);
+insert into sys_role_menu (role_id, menu_id) values (2, 1022);
+insert into sys_role_menu (role_id, menu_id) values (2, 1023);
+insert into sys_role_menu (role_id, menu_id) values (2, 1024);
+insert into sys_role_menu (role_id, menu_id) values (2, 1025);
+insert into sys_role_menu (role_id, menu_id) values (2, 1026);
+insert into sys_role_menu (role_id, menu_id) values (2, 1027);
+insert into sys_role_menu (role_id, menu_id) values (2, 1028);
+insert into sys_role_menu (role_id, menu_id) values (2, 1029);
+insert into sys_role_menu (role_id, menu_id) values (2, 1030);
+insert into sys_role_menu (role_id, menu_id) values (2, 1031);
+insert into sys_role_menu (role_id, menu_id) values (2, 1032);
+insert into sys_role_menu (role_id, menu_id) values (2, 1033);
+insert into sys_role_menu (role_id, menu_id) values (2, 1034);
+insert into sys_role_menu (role_id, menu_id) values (2, 1035);
+insert into sys_role_menu (role_id, menu_id) values (2, 1036);
+insert into sys_role_menu (role_id, menu_id) values (2, 1037);
+insert into sys_role_menu (role_id, menu_id) values (2, 1038);
+insert into sys_role_menu (role_id, menu_id) values (2, 1039);
+insert into sys_role_menu (role_id, menu_id) values (2, 1040);
+insert into sys_role_menu (role_id, menu_id) values (2, 1041);
+insert into sys_role_menu (role_id, menu_id) values (2, 1042);
+insert into sys_role_menu (role_id, menu_id) values (2, 1043);
+insert into sys_role_menu (role_id, menu_id) values (2, 1044);
+insert into sys_role_menu (role_id, menu_id) values (2, 1045);
+insert into sys_role_menu (role_id, menu_id) values (2, 1046);
+insert into sys_role_menu (role_id, menu_id) values (2, 1047);
+insert into sys_role_menu (role_id, menu_id) values (2, 1048);
+insert into sys_role_menu (role_id, menu_id) values (2, 1049);
+insert into sys_role_menu (role_id, menu_id) values (2, 1050);
+insert into sys_role_menu (role_id, menu_id) values (2, 1051);
+insert into sys_role_menu (role_id, menu_id) values (2, 1052);
+insert into sys_role_menu (role_id, menu_id) values (2, 1053);
+insert into sys_role_menu (role_id, menu_id) values (2, 1054);
+insert into sys_role_menu (role_id, menu_id) values (2, 1055);
+insert into sys_role_menu (role_id, menu_id) values (2, 1056);
+insert into sys_role_menu (role_id, menu_id) values (2, 1057);
+insert into sys_role_menu (role_id, menu_id) values (2, 1058);
+insert into sys_role_menu (role_id, menu_id) values (2, 1059);
+insert into sys_role_menu (role_id, menu_id) values (2, 1060);
+-- ----------------------------
+-- 8、角色和部门关联表 角色1-N部门
+-- ----------------------------
+drop table if exists sys_role_dept cascade;
+
+create table sys_role_dept (
+ role_id bigint not null,
+ dept_id bigint not null,
+ primary key(role_id, dept_id)
+);
+
+comment on table sys_role_dept is '角色和部门关联表';
+comment on column sys_role_dept.role_id is '角色ID';
+comment on column sys_role_dept.dept_id is '部门ID';
+
+-- ----------------------------
+-- 初始化-角色和部门关联表数据
+-- ----------------------------
+insert into sys_role_dept (role_id, dept_id) values (2, 100);
+insert into sys_role_dept (role_id, dept_id) values (2, 101);
+insert into sys_role_dept (role_id, dept_id) values (2, 105);
+
+-- ----------------------------
+-- 9、用户与岗位关联表 用户1-N岗位
+-- ----------------------------
+drop table if exists sys_user_post cascade;
+
+create table sys_user_post (
+ user_id bigint not null,
+ post_id bigint not null,
+ primary key (user_id, post_id)
+);
+
+comment on table sys_user_post is '用户与岗位关联表';
+comment on column sys_user_post.user_id is '用户ID';
+comment on column sys_user_post.post_id is '岗位ID';
+
+-- ----------------------------
+-- 初始化-用户与岗位关联表数据
+-- ----------------------------
+insert into sys_user_post (user_id, post_id) values (1, 1);
+insert into sys_user_post (user_id, post_id) values (2, 2);
+
+-- ----------------------------
+-- 10、操作日志记录
+-- ----------------------------
+drop table if exists sys_oper_log cascade;
+
+create table sys_oper_log (
+ oper_id bigserial not null primary key,
+ title varchar(50) default '' not null,
+ business_type smallint default 0 not null,
+ method varchar(100) default '' not null,
+ request_method varchar(10) default '' not null,
+ operator_type smallint default 0 not null,
+ oper_name varchar(50) default '' not null,
+ dept_name varchar(50) default '' not null,
+ oper_url varchar(255) default '' not null,
+ oper_ip varchar(128) default '' not null,
+ oper_location varchar(255) default '' not null,
+ oper_param varchar(2000) default '' not null,
+ json_result varchar(2000) default '' not null,
+ status smallint default 0 not null,
+ error_msg varchar(2000) default '' not null,
+ oper_time timestamp default current_timestamp not null,
+ cost_time bigint default 0 not null
+);
+
+create index idx_sys_oper_log_bt on sys_oper_log (business_type);
+create index idx_sys_oper_log_s on sys_oper_log (status);
+create index idx_sys_oper_log_ot on sys_oper_log (oper_time);
+
+comment on table sys_oper_log is '操作日志记录';
+comment on column sys_oper_log.oper_id is '日志主键';
+comment on column sys_oper_log.title is '模块标题';
+comment on column sys_oper_log.business_type is '业务类型(0其它 1新增 2修改 3删除)';
+comment on column sys_oper_log.method is '方法名称';
+comment on column sys_oper_log.request_method is '请求方式';
+comment on column sys_oper_log.operator_type is '操作类别(0其它 1后台用户 2手机端用户)';
+comment on column sys_oper_log.oper_name is '操作人员';
+comment on column sys_oper_log.dept_name is '部门名称';
+comment on column sys_oper_log.oper_url is '请求URL';
+comment on column sys_oper_log.oper_ip is '主机地址';
+comment on column sys_oper_log.oper_location is '操作地点';
+comment on column sys_oper_log.oper_param is '请求参数';
+comment on column sys_oper_log.json_result is '返回参数';
+comment on column sys_oper_log.status is '操作状态(0正常 1异常)';
+comment on column sys_oper_log.error_msg is '错误消息';
+comment on column sys_oper_log.oper_time is '操作时间';
+comment on column sys_oper_log.cost_time is '消耗时间';
+
+-- ----------------------------
+-- 11、字典类型表
+-- ----------------------------
+drop table if exists sys_dict_type cascade;
+
+create table sys_dict_type (
+ dict_id bigserial not null primary key,
+ dict_name varchar(100) default '' not null,
+ dict_type varchar(100) default '' not null,
+ status char(1) default '0' not null,
+ create_by varchar(64) default '' ,
+ create_time timestamp default current_timestamp ,
+ update_by varchar(64) default '' ,
+ update_time timestamp default current_timestamp ,
+ remark varchar(500) default null
+);
+
+create unique index idx_sys_dict_type_dict_type on sys_dict_type (dict_type);
+
+comment on table sys_dict_type is '字典类型表';
+comment on column sys_dict_type.dict_id is '字典主键';
+comment on column sys_dict_type.dict_name is '字典名称';
+comment on column sys_dict_type.dict_type is '字典类型';
+comment on column sys_dict_type.status is '状态(0正常 1停用)';
+comment on column sys_dict_type.create_by is '创建者';
+comment on column sys_dict_type.create_time is '创建时间';
+comment on column sys_dict_type.update_by is '更新者';
+comment on column sys_dict_type.update_time is '更新时间';
+comment on column sys_dict_type.remark is '备注';
+
+-- 初始化-字典类型表数据
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('用户性别', 'sys_user_sex', '0', 'admin', current_timestamp, '', null, '用户性别列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('菜单状态', 'sys_show_hide', '0', 'admin', current_timestamp, '', null, '菜单状态列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('系统开关', 'sys_normal_disable', '0', 'admin', current_timestamp, '', null, '系统开关列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('任务状态', 'sys_job_status', '0', 'admin', current_timestamp, '', null, '任务状态列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('任务分组', 'sys_job_group', '0', 'admin', current_timestamp, '', null, '任务分组列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('系统是否', 'sys_yes_no', '0', 'admin', current_timestamp, '', null, '系统是否列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('通知类型', 'sys_notice_type', '0', 'admin', current_timestamp, '', null, '通知类型列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('通知状态', 'sys_notice_status', '0', 'admin', current_timestamp, '', null, '通知状态列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('操作类型', 'sys_oper_type', '0', 'admin', current_timestamp, '', null, '操作类型列表');
+insert into sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
+values('系统状态', 'sys_common_status', '0', 'admin', current_timestamp, '', null, '登录状态列表');
+
+-- ----------------------------
+-- 12、字典数据表
+-- ----------------------------
+drop table if exists sys_dict_data cascade;
+
+create table sys_dict_data (
+ dict_code bigserial not null primary key,
+ dict_sort integer default 0 not null,
+ dict_label varchar(100) default '' not null,
+ dict_value varchar(100) default '' not null,
+ dict_type varchar(100) default '' not null,
+ css_class varchar(100) default null,
+ list_class varchar(100) default null,
+ is_default char(1) default 'N' not null,
+ status char(1) default '0' not null,
+ create_by varchar(64) default '' ,
+ create_time timestamp default current_timestamp ,
+ update_by varchar(64) default '' ,
+ update_time timestamp default current_timestamp ,
+ remark varchar(500) default null
+);
+
+comment on table sys_dict_data is '字典数据表';
+comment on column sys_dict_data.dict_code is '字典编码';
+comment on column sys_dict_data.dict_sort is '字典排序';
+comment on column sys_dict_data.dict_label is '字典标签';
+comment on column sys_dict_data.dict_value is '字典键值';
+comment on column sys_dict_data.dict_type is '字典类型';
+comment on column sys_dict_data.css_class is '样式属性(其他样式扩展)';
+comment on column sys_dict_data.list_class is '表格回显样式';
+comment on column sys_dict_data.is_default is '是否默认(Y是 N否)';
+comment on column sys_dict_data.status is '状态(0正常 1停用)';
+comment on column sys_dict_data.create_by is '创建者';
+comment on column sys_dict_data.create_time is '创建时间';
+comment on column sys_dict_data.update_by is '更新者';
+comment on column sys_dict_data.update_time is '更新时间';
+comment on column sys_dict_data.remark is '备注';
+
+-- 初始化-字典数据表数据
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', current_timestamp, '', null, '性别男');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', current_timestamp, '', null, '性别女');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', current_timestamp, '', null, '性别未知');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', current_timestamp, '', null, '显示菜单');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '隐藏菜单');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', current_timestamp, '', null, '正常状态');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '停用状态');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', current_timestamp, '', null, '正常状态');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '停用状态');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', current_timestamp, '', null, '默认分组');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', current_timestamp, '', null, '系统分组');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', current_timestamp, '', null, '系统默认是');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '系统默认否');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', current_timestamp, '', null, '通知');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', current_timestamp, '', null, '公告');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', current_timestamp, '', null, '正常状态');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '关闭状态');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', current_timestamp, '', null, '其他操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', current_timestamp, '', null, '新增操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', current_timestamp, '', null, '修改操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '删除操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', current_timestamp, '', null, '授权操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', current_timestamp, '', null, '导出操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', current_timestamp, '', null, '导入操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '强退操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', current_timestamp, '', null, '生成操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '清空操作');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', current_timestamp, '', null, '正常状态');
+insert into sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
+values(2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', current_timestamp, '', null, '停用状态');
+
+-- ----------------------------
+-- 13、参数配置表
+-- ----------------------------
+drop table if exists sys_config cascade;
+
+create table sys_config (
+ config_id serial not null primary key,
+ config_name varchar(100) default '' not null,
+ config_key varchar(100) default '' not null,
+ config_value varchar(500) default '' not null,
+ config_type char(1) default 'N' not null,
+ create_by varchar(64) default '',
+ create_time timestamp default current_timestamp,
+ update_by varchar(64) default '',
+ update_time timestamp default current_timestamp,
+ remark varchar(500) default null
+);
+
+comment on table sys_config is '参数配置表';
+comment on column sys_config.config_id is '参数主键';
+comment on column sys_config.config_name is '参数名称';
+comment on column sys_config.config_key is '参数键名';
+comment on column sys_config.config_value is '参数键值';
+comment on column sys_config.config_type is '系统内置(Y是 N否)';
+comment on column sys_config.create_by is '创建者';
+comment on column sys_config.create_time is '创建时间';
+comment on column sys_config.update_by is '更新者';
+comment on column sys_config.update_time is '更新时间';
+comment on column sys_config.remark is '备注';
+
+-- 初始化-参数配置表数据
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-green', 'Y', 'admin', '2023-04-13 20:46:20', 'admin', '2023-04-22 00:45:19', '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2023-04-13 20:46:20', '', null, '初始化密码 123456');
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-light', 'Y', 'admin', '2023-04-13 20:46:20', 'admin', '2023-04-22 00:45:25', '深色主题theme-dark,浅色主题theme-light');
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('账号自助-验证码开关', 'sys.account.captchaEnabled', 'true', 'Y', 'admin', '2023-04-13 20:46:20', '', null, '是否开启验证码功能(true开启,false关闭)');
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'true', 'Y', 'admin', '2023-04-13 20:46:20', 'admin', '2023-04-22 00:41:41', '是否开启注册用户功能(true开启,false关闭)');
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('主题颜色', 'sys.index.theme', '#11A983', 'Y', 'admin', '2023-04-22 00:57:18', 'admin', '2023-04-22 00:58:23', null);
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('开启TopNav', 'sys.index.topNav', 'true', 'Y', 'admin', '2023-04-22 00:58:59', '', null, null);
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('开启Tags-Views', 'sys.index.tagsView', 'true', 'Y', 'admin', '2023-04-22 00:59:40', '', null, null);
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('显示Logo', 'sys.index.sidebarLogo', 'true', 'Y', 'admin', '2023-04-22 01:00:20', '', null, null);
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('固定Header', 'sys.index.fixedHeader', 'true', 'Y', 'admin', '2023-04-22 01:00:53', '', null, null);
+insert into sys_config (config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
+values('动态标题', 'sys.index.dynamicTitle', 'true', 'Y', 'admin', '2023-04-22 01:01:26', 'admin', '2023-04-22 01:01:41', null);
+
+
+-- ----------------------------
+-- 14、系统访问记录
+-- ----------------------------
+drop table if exists sys_logininfor cascade;
+
+create table sys_logininfor (
+ info_id bigserial not null primary key,
+ user_name varchar(50) default '' not null,
+ ipaddr varchar(128) default '' not null,
+ login_location varchar(255) default '' not null,
+ browser varchar(50) default '' not null,
+ os varchar(50) default '' not null,
+ status char(1) default '0' not null,
+ msg varchar(255) default '' not null,
+ login_time timestamp default current_timestamp not null
+);
+
+create index idx_sys_logininfor_s on sys_logininfor (status);
+create index idx_sys_logininfor_lt on sys_logininfor (login_time);
+
+comment on table sys_logininfor is '系统访问记录';
+comment on column sys_logininfor.info_id is '访问ID';
+comment on column sys_logininfor.user_name is '用户账号';
+comment on column sys_logininfor.ipaddr is '登录IP地址';
+comment on column sys_logininfor.login_location is '登录地点';
+comment on column sys_logininfor.browser is '浏览器类型';
+comment on column sys_logininfor.os is '操作系统';
+comment on column sys_logininfor.status is '登录状态(0成功 1失败)';
+comment on column sys_logininfor.msg is '提示消息';
+comment on column sys_logininfor.login_time is '访问时间';
+
+-- ----------------------------
+-- 15、定时任务调度表
+-- ----------------------------
+drop table if exists sys_job cascade;
+
+create table sys_job (
+ job_id bigserial not null,
+ job_name varchar(64) default '' not null,
+ job_group varchar(64) default 'DEFAULT' not null,
+ invoke_target varchar(500) default '' not null,
+ cron_expression varchar(255) default '' not null,
+ misfire_policy varchar(20) default '3' not null,
+ concurrent char(1) default '1' not null,
+ status char(1) default '0' not null,
+ create_by varchar(64) default '' ,
+ create_time timestamp default current_timestamp ,
+ update_by varchar(64) default '' ,
+ update_time timestamp default current_timestamp ,
+ remark varchar(500) default '' ,
+ primary key (job_id, job_name, job_group)
+);
+
+comment on table sys_job is '定时任务调度表';
+comment on column sys_job.job_id is '任务ID';
+comment on column sys_job.job_name is '任务名称';
+comment on column sys_job.job_group is '任务组名';
+comment on column sys_job.invoke_target is '调用目标字符串';
+comment on column sys_job.cron_expression is 'cron执行表达式';
+comment on column sys_job.misfire_policy is '计划执行错误策略(1立即执行 2执行一次 3放弃执行)';
+comment on column sys_job.concurrent is '是否并发执行(0允许 1禁止)';
+comment on column sys_job.status is '状态(0正常 1暂停)';
+comment on column sys_job.create_by is '创建者';
+comment on column sys_job.create_time is '创建时间';
+comment on column sys_job.update_by is '更新者';
+comment on column sys_job.update_time is '更新时间';
+comment on column sys_job.remark is '备注信息';
+
+-- 初始化-定时任务调度表数据
+insert into sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark)
+values('系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', current_timestamp, '', null, '');
+insert into sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark)
+values('系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(''ry'')', '0/15 * * * * ?', '3', '1', '1', 'admin', current_timestamp, '', null, '');
+insert into sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark)
+values('系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(''ry'', true, 2000, 316.50, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', current_timestamp, '', null, '');
+
+-- ----------------------------
+-- 16、定时任务调度日志表
+-- ----------------------------
+drop table if exists sys_job_log cascade;
+
+create table sys_job_log (
+ job_log_id bigserial not null primary key,
+ job_name varchar(64) not null,
+ job_group varchar(64) not null,
+ invoke_target varchar(500) not null,
+ job_message varchar(500) default null,
+ status char(1) default '0' not null,
+ exception_info varchar(2000) default '' not null,
+ create_time timestamp default current_timestamp not null
+);
+
+comment on table sys_job_log is '定时任务调度日志表';
+comment on column sys_job_log.job_log_id is '任务日志ID';
+comment on column sys_job_log.job_name is '任务名称';
+comment on column sys_job_log.job_group is '任务组名';
+comment on column sys_job_log.invoke_target is '调用目标字符串';
+comment on column sys_job_log.job_message is '日志信息';
+comment on column sys_job_log.status is '执行状态(0正常 1失败)';
+comment on column sys_job_log.exception_info is '异常信息';
+comment on column sys_job_log.create_time is '创建时间';
+
+-- ----------------------------
+-- 17、通知公告表
+-- ----------------------------
+drop table if exists sys_notice cascade;
+
+create table sys_notice (
+ notice_id serial not null primary key,
+ notice_title varchar(50) not null,
+ notice_type char(1) not null,
+ notice_content bytea default null,
+ status char(1) default '0' not null,
+ create_by varchar(64) default '',
+ create_time timestamp default current_timestamp,
+ update_by varchar(64) default '',
+ update_time timestamp default current_timestamp,
+ remark varchar(255) default null
+);
+
+comment on table sys_notice is '通知公告表';
+comment on column sys_notice.notice_id is '公告ID';
+comment on column sys_notice.notice_title is '公告标题';
+comment on column sys_notice.notice_type is '公告类型(1通知 2公告)';
+comment on column sys_notice.notice_content is '公告内容';
+comment on column sys_notice.status is '公告状态(0正常 1关闭)';
+comment on column sys_notice.create_by is '创建者';
+comment on column sys_notice.create_time is '创建时间';
+comment on column sys_notice.update_by is '更新者';
+comment on column sys_notice.update_time is '更新时间';
+comment on column sys_notice.remark is '备注';
+
+-- ----------------------------
+-- 初始化-公告信息表数据
+-- ----------------------------
+insert into sys_notice (notice_title, notice_type, notice_content, status, create_by, create_time, update_by, update_time, remark)
+values('温馨提醒:2018-07-01 若依新版本发布啦', '2', decode('新版本内容', 'escape'), '0', 'admin', current_timestamp, '', null, '管理员');
+insert into sys_notice (notice_title, notice_type, notice_content, status, create_by, create_time, update_by, update_time, remark)
+values('维护通知:2018-07-01 若依系统凌晨维护', '1', decode('维护内容', 'escape'), '0', 'admin', current_timestamp, '', null, '管理员');
\ No newline at end of file