需求
将审批同意时填写的审批意见以及图片回填到审批表单中。(填写节点同理)

实现思路
通过审批后置函数操作流程参数的数据,并将流程参数数据回写到流程中。
流程设计
-
流程参数中自定义需要传递的字段。

-
审批节点设计审批后置函数,后置函数由后端定义。

-
添加更新数据节点,选择需要更新的业务表单字段,并在表达式中选择流程参数中自定义的字段。我这里更新审批意见和图片两个字段。


后置函数定义:
/**
* 审批后数据处理
*
* @param approvalNode 审批节点
* @param context 上下文
* @param dataJson 审批提交数据
* @param result 审批结果
*/
@Function(name = "approvalDataProcessFun", openLevel = API)
@Function.Advanced(type = FunctionTypeEnum.QUERY, displayName = "审批后数据处理", category = FunctionCategoryEnum.CUSTOM_DESIGNER)
public void approvalDataProcessFun(ApprovalNode approvalNode, WorkflowContext context, String dataJson, Boolean result) {
List<WorkflowUserTask> workflowUserTasks = Models.origin().queryListByWrapper(Pops.<WorkflowUserTask>lambdaQuery()
.from(WorkflowUserTask.MODEL_MODEL)
.eq(WorkflowUserTask::getTaskId, context.getLastTaskInstanceId())
);
// 获取审批意见等放入流程参数
for (WorkflowUserTask userTask : workflowUserTasks) {
String remark = userTask.getRemark();
List<String> pics = userTask.getPics();
List<PamirsFile> attachments = userTask.getAttachments();
Map<String, Object> paramMap = (Map<String, Object>) context.getContext().getOrDefault(ParamNode.PARAM_PREFIX, new HashMap<String, Object>());
paramMap.put("remark", remark);
paramMap.put("pics", pics);
}
}
更多后置函数参考:自定义函数示例代码汇总
Oinone社区 作者:yexiu原创文章,如若转载,请注明出处:https://doc.oinone.top/other/25502.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验