涉及到activiti工作流使用者和使用者組的共4張表
activiti工作流資料表
1、引出問題這4張表是activiti自動幫我們生成的。如果我們現在已經有一個成熟的系統,擁有自身的使用者、許可權等表結構。此時想要整合Activiti,難道要把使用者資訊都複製到Activiti的使用者表中嗎?
當然不是,此時就用到了資料庫檢視技術。
2、原使用者體系假設我們現在的使用者體系包含如下幾張表:system_user(使用者表):
create table system_user( id varchar(50) not null comment '主鍵id', type varchar(8) comment '型別', login_name varchar(50) not null comment '登入名稱', login_password varchar(50) not null comment '登入密碼', name varchar(50) not null comment '姓名', sex varchar(50) comment '性別', phone varchar(50) comment '手機號', email varchar(50) comment '電子郵箱', birth_date varchar(50) comment '出生日期', motto varchar(50) comment '座右銘', status varchar(8) comment '狀態', order_by varchar(8) comment '排序', open_id varchar(50) comment '微信id', theme_id varchar(50) comment '當前主題', remark varchar(500) comment '備註', create_time varchar(50) not null comment '建立時間', create_user varchar(50) not null comment '建立人', create_organize varchar(50) not null comment '建立組織', update_user varchar(50) comment '修改人', update_time varchar(50) comment '修改時間', last_login_time varchar(50) comment '最後登入時間', primary key (id));
system_organize(組織表):
create table system_organize( id varchar(50) not null comment '主鍵id', type varchar(8) comment '型別', org_cascade text comment '級聯欄位', name varchar(50) not null comment '組織名稱', short_name varchar(50) comment '組織簡稱', parent_id varchar(50) comment '父級id', level_num varchar(8) comment '等級', status varchar(8) comment '狀態', order_by varchar(8) comment '排序', remark varchar(500) comment '備註', create_time varchar(50) not null comment '建立時間', create_user varchar(50) not null comment '建立人', create_organize varchar(50) not null comment '建立組織', update_user varchar(50) comment '修改人', update_time varchar(50) comment '修改時間', primary key (id));
system_user_organize(使用者組織關聯表)
create table system_user_organize( id varchar(50) not null comment '主鍵id', user_id varchar(50) not null comment '使用者id', organize_id varchar(50) not null comment '組織id', type varchar(8) not null comment '型別', position varchar(50) comment '職務', use_status varchar(50) comment '使用狀態', order_by varchar(8) comment '排序', create_user varchar(50) not null comment '建立人', create_time varchar(50) not null comment '建立時間', update_time varchar(50) comment '修改時間', primary key (id));
3、建立檢視3.1 表對應關係system_user(使用者表) 對應 act_id_user(activiti)
system_organize(組織表) 對應 act_id_group(activiti)
system_user_organize(組織表) 對應 act_id_membership(activiti)
使用者組其實可以看做是我們平常說的組織。
3.2 建立檢視# 根據 system_user、system_organize 和 system_user_organize 建立檢視# 需要根據具體的 使用者表 和 角色表 進行相應欄位的調整-- 刪除自帶的使用者資訊表DROP TABLE IF EXISTS ACT_ID_MEMBERSHIP;DROP TABLE IF EXISTS ACT_ID_GROUP;DROP TABLE IF EXISTS ACT_ID_USER;-- 如果之前存在檢視則刪除DROP VIEW IF EXISTS ACT_ID_MEMBERSHIP;DROP VIEW IF EXISTS ACT_ID_USER;DROP VIEW IF EXISTS ACT_ID_GROUP;-- 使用者檢視CREATE OR REPLACE VIEW ACT_ID_USER AS SELECT u.id AS ID_, 0 AS REV_, u.name AS FIRST_, '' AS LAST_, u.email AS EMAIL_, u.login_password AS PWD_, '' AS PICTURE_ID_ FROM system_user u;-- 組織檢視CREATE VIEW ACT_ID_GROUPAS SELECT r.id AS ID_, NULL AS REV_, r.name AS NAME_, 'assignment' AS TYPE_ FROM system_organize r;-- 使用者-組織對應檢視CREATE VIEW ACT_ID_MEMBERSHIPAS SELECT (SELECT u.id FROM system_user u WHERE u.id=ur.user_id) AS USER_ID_, (SELECT r.id FROM system_organize r WHERE r.id=ur.organize_id) AS GROUP_ID_ FROM system_user_organize ur;
4、禁止自動生成使用者表為了禁止activiti自動生成使用者表,我們需要在application.yml中新增如下配置:db-identity-used: false
# Spring配置spring: # activiti 模組 # 解決啟動報錯:class path resource [processes/] cannot be resolved to URL because it does not exist activiti: check-process-definitions: false # 檢測身份資訊表是否存在 db-identity-used: false
activiti使用者和使用者組介紹完畢。
程式碼下載後千萬記得加群索要資料指令碼(青鋒感謝所有支援我們的朋友)。
最新評論