首頁>技術>

涉及到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使用者和使用者組介紹完畢。

程式碼下載後千萬記得加群索要資料指令碼(青鋒感謝所有支援我們的朋友)。

17
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 擁抱雲原生,如何將開源專案用k8s部署?