Part3 activiti工作流引擎在项目中的使用

Part3 activiti工作流引擎在项目中的使用

1.流程部署

        DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().addBytes(fileName, file.getBytes()).tenantId(orgId);
        Deployment deploy = deploymentBuilder.deploy();

2.根据TenantId查询定义流程

  List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().processDefinitionTenantId(orgId)
                .latestVersion().list();

3.对流程进行挂起和激活

  //1.根据processKey查询流程定义
        ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().processDefinitionKey(processKey)
                .processDefinitionTenantId(orgId).latestVersion().singleResult();
        //2.判断是否为挂起状态
        if (definition.isSuspended()) {
            //2.1 如果是挂起状态:设置为激活
            repositoryService.activateProcessDefinitionById(definition.getId());
        } else {
            //2.2 如果不是激活状态: 设置为挂起
            repositoryService.suspendProcessDefinitionById(definition.getId());
        }
        

4.业务数据表

1.proc_instance表
process_key,process_name,与流程关联,
process_state,当前流程进行状态
user_id,username,进行此流程和用户
proc_curr_node_user_id,proc_curr_node_user_name,审批用户组
proc_data,此流程的详细数据,数据库中存储json格式字符串,比如请假原因等等,返回前端使用JSON进行解析
org_id,org_name,标识当前用户所在组织

2.proc_task_instance表,业务流程的任务节点表
process_id,与流程关联
task_name,task_key.bpmn绘制节点时候定义的name和id.
handle_user_id,handle_user_name,审批用户信息
handle_opinion,审批评论
handle_type,审批状态, 2审批通过;3审批不通过;4撤销

3.proc_user_group.审批组信息
id,审批组标识,bpmn绘制节点时的勾选组.
param,入参,如果当前是申请人,入参就是user_id,如果是审批组,入参就是org_id,
isql:根据入参确定当前勾选组身份,使用sql语句得到用户信息

5.启动流程

1.构造业务数据
2.查询流程定义
3.开启流程
4.自动执行第一个任务节点流程,完成当前任务节点
5.获取下一个节点数据,填充业务数据中当前待审批人.
proc_instance表中插入数据
proc_task_instance表中插入数据

6.处理流程

1.查询业务流程对象(act中act_hi_procinst businesskey关联业务proc_instance表的id)
2.设置业务流程状态
3.根据不同的操作类型,完成不同的业务处理
4.更新业务流程对象,保存业务任务对象

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页