ITPub博客

首页 > 数据库 > 数据库开发技术 > 基于南瓜数低代码进行工作流的二次开发

基于南瓜数低代码进行工作流的二次开发

原创 数据库开发技术 作者:小南瓜开发平台 时间:2023-02-07 00:01:00 0 删除 编辑


前言

    南瓜数低代码数据中台的工作流是比较完善的,简单流程和表单能实现在线开发和配置,不需要进行任何开发和上线操作。没有代码开发经验的人员也能开发工作流程和数据列表的增删改查功能。下边我们一起来看看南瓜数的工作流功能吧!

流程图绘制

新增流程:

http://ip:8084/create?name=activiti&key=yabushan_key

发布流程:

http://ip:8084/models/流程ID/deployment

新建流程

路径:工作流管理》工作流模型

点击新增打开流程图设计页面

 

绘制流程图

开始节点

拖动启动事件中的”事件“到编辑器页面

 

给节点设置ID和名称

 

发起申请节点

添加用户活动节点到编辑器,给节点设置ID和名称

 

设置任务监听器

com.yabushan.activiti.tasklistener.SingleTaskListener

 


任务节点

添加任务节点到编辑器,设置ID和名称

 

设置任务监听器

com.yabushan.activiti.tasklistener.GroupTaskListener

 


结束节点

添加结束节点到编辑器,设置ID和名称

 


流程流转线条参数配置

流程流转分为默认流转和添加流转:

默认流转

如果没有其他分支,则可勾选为默认流转

 

条件流转

如果是需要根据不同的条件流转到不同的节点,则需要配置相关规则;

流程默认的规则参数是:message

需要在流转条件中设置${message=='满足条件'}

 

流转线条名称与按钮规则

流程审批时,可根据任务节点的输出线条渲染对应的按钮

默认规则是:按线条ID的字母从小到大进行排序

例如下图中的部门领导审核环节,审批时可渲染出按钮:“通过”、“退回”

 

流程修改

路径:工作流管理》工作流模型

点击对应流程名称的修改按钮,进入流程的修改页面

 

流程发布

路径:工作流管理》工作流模型

点击“发布”按钮,进行发布

 

生成审批节点

路径:工作流管理》工作流模型

勾选对应的流程信息,点击“生成审批配置节点”,即生成对应的流程审批节点

 

配置任务节点对应的角色

路径:工作流管理》节点配置

勾选需要配置的流程步骤名称,点击修改,弹出修改页面

 

选择处理类型和对应的角色信息

 

流程接口

前提条件

流程发起时,需要在业务服务类中注入工作流的 服务类:

@Autowired

private ActivitiService activitiService;

流程发起接口

流程方法

流程发起时,需要使用方法:

activitiService.starkFormTask(String processDefinitionKey, String requestUserId, String businessKey, String variables, String isAutoFinishFirstStep);

参数解释

参数名称

是否必须

注释

示例

processDefinitionKey

是

流程名称

bill_process

requestUserId

是

发起人账号

fafafa

businessKey

是

业务主键ID

业务主键ID(全局唯一)建议用UUID

variables

是

流程变量

json字符串

isAutoFinishFirstStep

是

是否自动完成第一个节点

完成第一步节点,0:启动流程,不自动完成第一步节点

variables这个json符串中必须传入的参数

参数名称

是否必须

注释

示例

nextDealUser

是

下一步处理人,多个处理人用逗号隔开

zhansan,l,wangwu

content

是

申请内容描述

物资申请

title

是

流程标题

物资申请

applyId

是

业务模块ID

60

todoUrl

是

小程序待办URL

http://www.baidu.com

pcTodoUrl

是

PC页面待办URL

http://www.google.com

urlParam

是

待办参数

bid=xxx&form=123

message

是

下一步审批流向


流程推动接口

流程方法

activitiService.fininshFormTask(taskId, userId, formVariables, TaskVariables, excutionVariables);

参数解释

参数名称

是否必须

注释

示例

taskId

是

任务ID


userId

是

用户ID


formVariables

否

表单变量

json字符串

TaskVariables

是

任务变量

json字符串

excutionVariables

否

流程实例变量

json字符串

TaskVariables  必传参数

参数名称

是否必须

注释

示例

nextDealUser

是

下一步处理人,多个处理人用逗号隔开

zhansan,l,wangwu

message

是

下一步审批流向


option

是

审批意见


查询流程定义接口

流程方法

List<ProcessDefinitionBean> queryDefinition(String definitionKey, String isNew)

参数解释

参数名称

是否必须

注释

示例

definitionKey

是

流程名称

bill_process

isNew

是

是否查询最新版本

true:取最新一次版本流程,false:取历史所有版本流程

获取流程定义节点办理人接口

流程方法

NextStepAndUser getFirstDealUserByKey(String processKey, String userId, String stepName)

参数解释

参数名称

是否必须

注释

示例

processKey

是

流程名称

bill_process

userId

是

用户账号ID

当前办理人ID

stepName

是

环节中文名称

部门负责人审核

获取我的全部待办任务接口

流程方法

List<TaskInfoBean> queryAllTask(String userId)

参数解释

参数名称

是否必须

注释

示例

userId

是

用户账号ID

当前办理人ID

获取一个任务的明细接口

流程方法

TaskInfo getOneTaskInfo(String taskId)

参数解释

参数名称

是否必须

注释

示例

taskId

是

任务ID

任务ID

任务指派接口

当一个任务的处理人有多个时,可以指派给其中一个人或其他人处理

流程方法

String claimMyTask(String taskId, String dealUser)

参数解释

参数名称

是否必须

注释

示例

taskId

是

任务ID

任务ID

dealUser

是

被指派人员

zhansann

任务转办接口

将任务转办给他人,与任务指派的区别是:指派后依然可以转办,转办后则不能指派

流程方法

String trunTask(String taskId, String dealUser)

参数解释

参数名称

是否必须

注释

示例

taskId

是

任务ID

任务ID

dealUser

是

被指派人员

zhansann

保存任务表单接口

审批处理过程中,将填写的任务的表单信息进行保存

流程方法

String saveTask(String taskId, String formVariables, String TaskVariables)

参数解释

参数名称

是否必须

注释

示例

taskId

是

任务ID

任务ID

formVariables

否

表单变量

json字符串

TaskVariables

否

任务变量

json字符串

根据流程实例ID获取流程信息

流程方法

List<HistoryTaskInfo> getAllFlowStepById(String Id, String flag)

参数解释

参数名称

是否必须

注释

示例

Id

是

业务主键ID  或  流程实例ID


flag

否

1:业务主键ID,2:流程实例ID

1

多实例情况

参考:http://qxsdcloud.com/wiki/doc/ivdtJrudV

在BPMN2.0规范中规定了多实例的几个属性变量,可以通过executin.getVariable()获取变量:

nrOfInstances:实例的总数;

nrOfActiveInstances:当前活动的(未完成的)实例数量。对于按照顺序执行的多实例,该值总是为1.

nrOfCompletedInstances:已经完成的实例数量;

loopCounter:多实例运行过程中,for-each循环中当前的索引值.${nrOfInstances==nrOfCompletedInstances} 全部人员审批之后才会继续往下走

实例:

需要在start节点配置监听器com.yabushan.activiti.tasklistener.MultiInstanceExcutionListener

将上级领导审批人员、人事部审批人员按照顺序格式进行配置

nextDealParam:下一步的审批多实例占位符;多个时用“-”分割,顺序要于nextDealUserList中的一致

{'message':'申请','nextDealUserList':'sxf1,yabushan1','nextDealParam':'dealUserList'}

 

 

子流程情况

参考流程图的绘制

 

 



原文作者:小南瓜开发平台;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-08-21

  • 博文量
    209
  • 访问量
    89524