Activiti 用户绑定申请审批全流程演示

@Autowired

private RuntimeService runtimeService;

@Autowired

private TaskService taskService;

@Autowired

private IdentityService identityService;

@Autowired

private RepositoryService repositoryService;

@Autowired

private ProcessEngine processEngine;

@Autowired

private HistoryService historyService;

三、项目中的用户、角色与Activiti中的用户、用户组整合


每个项目都有自己的用户、角色表,Activiti也有自己的用户、用户组表。因此项目中的用户、角色与Activiti中的用户、用户组要做整合。

//项目中每创建一个新用户,对应的要创建一个Activiti用户

//两者的userId和userName一致

User admin=identityService.newUser(“1”);

admin.setLastName(“admin”);

identityService.saveUser(admin);

//项目中每创建一个角色,对应的要创建一个Activiti用户组

Group adminGroup=identityService.newGroup(“1”);

adminGroup.setName(“admin”);

identityService.saveGroup(adminGroup);

//用户与用户组关系绑定

identityService.createMembership(“1”,“1”);

四、请假审批流程


1、请假申请和请假审批数据库表设计

表设计原则:流程数据和业务数据相分离。Activiti相关表只负责流程的跳转、走向等。流程中产生的业务表单数据、审批意见、附件等存储在开发人员定义的业务表中。流程数据和业务数据之间通过processInstanceId(流程实例ID)和业务数据主键相互关联。

为什么不使用Activiti相关表来存储表单数据和附件?

Activiti为了应用的灵活性和通用性采用了纵表的方式存储表单数据。假设一条请假申请表单数据有10个字段,那就需要10条记录存储原本横表只需要一条记录存储的数据。采用纵表的方式会有如下问题:

  • 会有大量的冗余数据并且数据量会急剧的增长

  • 查询语句复杂,查询效率低

  • 尤其不适合做后期的统计报表分析

Activiti存储附件使用Blob数据格式,文件存储在数据库里,数据库的数据文件会变得超大,不利于数据库备份和迁移。

请假申请表结构

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值