SpringBootでactivityを統合し、起動後にテーブルを生成する

3660 ワード

package com.dh.zhdj_v2.config;

import org.activiti.spring.SpringProcessEngineConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.PlatformTransactionManager;

import javax.sql.DataSource;

/**
 * Created by Administrator on 2018/5/4.
 */
@Configuration
public class ActivitiConfig {

    @Autowired
    PlatformTransactionManager transactionManager;

    @Autowired
    ApplicationContext applicationContext;

    @Bean
    public SpringProcessEngineConfiguration getProcessEngineConfiguration() {
        DataSource dataSource = applicationContext.getBean(DataSource.class);
        SpringProcessEngineConfiguration config =
                new SpringProcessEngineConfiguration();
        config.setDataSource(dataSource);
          //config.setDbHistoryUsed(false);
        config.setDbIdentityUsed(false);
        config.setTransactionManager(transactionManager);
        // 
        config.setActivityFontName(" ");
        config.setLabelFontName(" ");
        config.setAnnotationFontName(" ");
        config.setDatabaseType("oracle");
        // config.getJobExecutor();
        // , create drop-create
        // 
         //  config.setDatabaseSchemaUpdate("create");
        // Schema ACT, 
        // config.setDatabaseSchema("ACT");
        return config;
    }

}

//次は必ずスキャンしないように書きます
@SpringBootApplication(exclude = {org.activiti.spring.boot.SecurityAutoConfiguration.class})
@Transactional(rollbackFor = Exception.class)
@MapperScan("com.dh.zhdj.modules.*.mapper")
@EnableRabbit
public class ZhdjApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZhdjApplication.class, args);
    }

    @Primary
    @Bean
    public TaskExecutor primaryTaskExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        return executor;
    }
}

--シナリオ1:ビジネスニーズに応じて、ワークロードの3つのテーブルを削除し、ユーザーテーブルに対応してビューを作成します.
--シナリオ2:ユーザーとロールが更新された場合、ワークフロー内のユーザーと組織情報を更新CREATE OR REPLACE VIEW ACT_ID_GROUP AS SELECT r.role_name AS ID_,NULL AS REV_,r.full_name AS NAME_,NULL AS TYPE_ FROM sys_role r; comment on table ACT_ID_GROUPIs'ユーザーグループ情報テーブル;comment on column ACT_ID_GROUP.REV_ is「楽観ロック」;comment on column ACT_ID_GROUP.NAME_ is'ノード名';comment on column ACT_ID_GROUP.TYPE_ is'ノードタイプ';
CREATE OR REPLACE VIEW ACT_ID_MEMBERSHIP AS SELECT u.user_name AS USER_ID_,r.role_name AS GROUP_ID_ FROM sys_user u  join sys_user_role ur ON ur.user_id = u.id  JOIN sys_role r ON r.id = ur.role_id; comment on table ACT_ID_MEMBERSHIP is'ユーザとパケット対応情報テーブル';comment on column ACT_ID_MEMBERSHIP.USER_ID_ is'ユーザーID';comment on column ACT_ID_MEMBERSHIP.GROUP_ID_ is'ユーザーグループID';
CREATE OR REPLACE VIEW ACT_ID_USER AS SELECT   au.user_name AS ID_,   NULL          AS REV_,   concat('first_',au.full_name)   AS FIRST_,   concat('last_',au.full_name) AS LAST_,   au.email      AS EMAIL_,   au.user_pwd   AS PWD_,   NULL         AS PICTURE_ID_ FROM sys_user au; comment on table ACT_ID_USER is'ユーザー情報表;comment on column ACT_ID_USER.REV_ is「楽観ロック」;comment on column ACT_ID_USER.FIRST_ is姓comment on column ACT_ID_USER.LAST_ is'名;comment on column ACT_ID_USER.EMAIL_ is 'EMAIL_'; comment on column ACT_ID_USER.PWD_ is'パスワード';comment on column ACT_ID_USER.PICTURE_ID_ is'ピクチャID';