springBoot里整合activity,启动后生成表

本文详细介绍了在Spring框架下如何配置Activiti流程引擎,包括数据源、事务管理器的设置,以及如何自定义字体和数据库类型。同时,提供了创建用户、组和成员关系视图的SQL语句,以便于在Activiti中进行用户和组织信息的同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:根据业务需求,删除工作量的三张表,对应你用户表,创建视图,

--方案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_GROUP is '用户组信息表';
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';
 

首先,需要在你的项目中引入spring-boot-starter-activiti依赖,该依赖会自动添加所需的Activiti依赖项。然后,我们可以开始编写前后台代码。 1. 后台代码: - 创建一个名为ApprovalProcess的类,在该类中编写启动工作流的方法。可以使用Java代码来编写工作流程定义执行实例,并将它们部署到Activiti引擎中。在启动方法中,你可以指定工作流定义的各个阶段,并为每个阶段设置适当的流程参数。 - 创建一个名为ApprovalTask的类,它用于处理工作流中的任务。该类应该包含处理任务的逻辑,例如获取待处理任务、对任务进行审批并将任务状态更新到数据库等操作。 2. 前台代码: - 创建一个名为ApprovalController的类,该类用于处理与前端页面的交互。在该类中,你可以使用Spring MVC来定义前端页面的访问路径,并将请求转发到ApprovalTask类中的适当方法。 - 创建前端页面,以便用户可以查看待处理的任务并进行审批。你可以使用Thymeleaf或其他模板引擎来生成动态页面,并通过AJAX请求将处理结果发送到后台。 3. 数据库: - 在你的项目中使用适当的数据库,例如MySQL、Oracle等。你需要创建一个名为approval_process的,用于存储工作流程的状态参数。可以用到的列有:工作流实例ID、当前任务ID、任务名称、任务状态等。你还可以根据需要添加其他列。 在整合完成后,你可以使用Spring Boot的内置Tomcat服务器启动应用程序,并通过浏览器访问ApprovalController中定义的页面。用户可以查看待审批的任务,并在页面上进行审批操作。对任务的审批结果将更新到数据库中,并且可以在后台代码中进行进一步处理。 总之,以上是一个简单的概述,实际项目中的细节会更加复杂。你需要根据自己的需求进一步完善扩展代码。希望以上信息对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值