NC65审批流查询、NC65费用管理报销单提交按钮新增业务插件开发步骤

本文详细介绍了审批流查询的方法,包括流程定义检查和业务插件开发,如事件类型注册、插件实现以及如何在借款报销单中处理提交前后操作。还涉及审批历史节点的判断和回退功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、审批流查询

审批流定义,可用来判断单据是否启用审批流,操作人是否有流程操作权限等

nc.itf.uap.pf.IWorkflowDefine
 
/**
  * 是否有流程定义
  * @param pk_group         集团
  * @param billType         单据类型
  * @param mainWorkflowtype 流程类型
  * @return boolean          
  * @throws BusinessException
*/
public boolean hasValidProcessDef(String pk_group, String billType,
        String pkOrg, String operator,int emendEnum, int mainWorkflowtype)
        throws BusinessException;
select * from pub_wf_def t where workflow_type =2 and billtype ='30-Cxx-03' and t.validity =1

二、业务插件开发

1、业务插件注册,找到并选中财务-费用管理-借款报销单

点击新增事件类型按钮,新增事件类型 ,事件类型编码:ERM1016 ,事件类型名称:提交后
在这里插入图片描述

2、新增业务插件

插件名称:提交后,插件全类名:实现了nc.bs.businessevent.IBusinessListener接口的插件类名称
在这里插入图片描述

3、修改系统产品代码

找到借款报销类单据表头业务类nc.bs.arap.bx.BXZbBO,添加常量: public static String MESSAGE_COMMIT = “bx-commit”;

找到方法 public JKBXVO commitVO(JKBXVO vo) throws BusinessException

添加提交前和提交后时间处理方法
在这里插入图片描述
3、修改系统事件触发方法
在这里插入图片描述
在这里插入图片描述
4、重启服务,点击提交按钮即可触发提交后事件。

原文链接:https://blog.youkuaiyun.com/weixin_42516207/article/details/103183419

判断审批流的历史活动节点:

FlowHistoryQryResult  result = NCLocator.getInstance().lookup(IPFWorkflowQry.class).queryFlowHistoryQryResult(billType, billId, WorkflowTypeEnum.Approveflow.getIntValue());
					
ProcessRouteRes processRoute = result.getProcessRoute();

// 走过的主流程
if (processRoute != null && processRoute.getActivityInstance() != null
		&& processRoute.getActivityInstance().length > 0) {

	for (ActivityInstance acinst : processRoute.getActivityInstance()) {

		if (acinst.getStatus() == WfTaskOrInstanceStatus.Finished.getIntValue()&& reject_activity.equals(acinst.getActivityID())) {
			isCanRejectActity = true;
		}

	}
}

if (processRoute != null && processRoute.getSubProcessRoute() != null
		&& processRoute.getSubProcessRoute().length > 0) {

	for (ProcessRouteRes prte : processRoute.getSubProcessRoute()) {
		if (prte != null && prte.getActivityInstance() != null && prte.getActivityInstance().length > 0) {
			for (ActivityInstance acinst : prte.getActivityInstance()) {
				if (acinst.getStatus() == WfTaskOrInstanceStatus.Finished.getIntValue()
						&& reject_activity.equals(acinst.getActivityID())) {
					isCanRejectActity = true;
				}
			}
		}
	}
}

if (!isCanRejectActity) {
	if (StringUtils.isNotEmpty(reject_activity)) {
		
		throw new BusinessException("无法回退,从活动实例流程中未匹配到对应的流程号:"+reject_activity);

	}
}

worknoteVO.getTaskInfo().getTask().setBackToFirstActivity(false);
worknoteVO.getTaskInfo().getTask().setJumpToActivity(reject_activity);
worknoteVO.getTaskInfo().getTask().setTaskType(WfTaskType.Backward.getIntValue());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值