首页 > 数据库 > 数据库开发技术 > 基于南瓜数低代码进行工作流的二次开发
前言
南瓜数低代码数据中台的工作流是比较完善的,简单流程和表单能实现在线开发和配置,不需要进行任何开发和上线操作。没有代码开发经验的人员也能开发工作流程和数据列表的增删改查功能。下边我们一起来看看南瓜数的工作流功能吧!
新增流程:
http://ip:8084/create?name=activiti&key=yabushan_key
发布流程:
http://ip:8084/models/流程ID/deployment
路径:工作流管理》工作流模型
点击新增打开流程图设计页面





com.yabushan.activiti.tasklistener.SingleTaskListener


任务节点

com.yabushan.activiti.tasklistener.GroupTaskListener


流程流转分为默认流转和添加流转:
如果没有其他分支,则可勾选为默认流转

如果是需要根据不同的条件流转到不同的节点,则需要配置相关规则;
流程默认的规则参数是: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:启动流程,不自动完成第一步节点 |
参数名称 |
是否必须 |
注释 |
示例 |
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字符串 |
参数名称 |
是否必须 |
注释 |
示例 |
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字符串 |
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'}


参考流程图的绘制


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