Flowable 历史审批查询

1、查询历史任务审批人

SELECT
	AHT.ID_,
	AHT.PROC_DEF_ID_,
	AHT.TASK_DEF_KEY_,
	AHT.EXECUTION_ID_,
	AHI.GROUP_ID_,
	AHI.TYPE_,
	SD.DEPT_NAME AS GNAME 
FROM
	ACT_HI_TASKINST AHT
	LEFT JOIN ACT_HI_IDENTITYLINK AHI ON AHI.TASK_ID_ = AHT.ID_
	LEFT JOIN SYS_DEPT SD ON CONCAT( SD.DEPT_ID, '' ) = SUBSTRING( AHI.GROUP_ID_, 5 ) 
WHERE
	SUBSTRING( AHI.GROUP_ID_, 1, 4 ) = 'DEPT' 
	AND AHT.PROC_INST_ID_ = '7f0f7bea-a227-11ef-a557-44af28c819ff' 
	AND AHI.TYPE_ = 'candidate' UNION ALL
SELECT
	AHT.ID_,
	AHT.PROC_DEF_ID_,
	AHT.TASK_DEF_KEY_,
	AHT.EXECUTION_ID_,
	AHI.GROUP_ID_,
	AHI.TYPE_,
	SR.ROLE_NAME AS GNAME 
FROM
	ACT_HI_TASKINST AHT
	LEFT JOIN ACT_HI_IDENTITYLINK AHI ON AHI.TASK_ID_ = AHT.ID_
	LEFT JOIN SYS_ROLE SR ON CONCAT( SR.ROLE_ID, '' ) = SUBSTRING( AHI.GROUP_ID_, 5 ) 
WHERE
	SUBSTRING( AHI.GROUP_ID_, 1, 4 ) = 'ROLE' 
	AND AHT.PROC_INST_ID_ = '7f0f7bea-a227-11ef-a557-44af28c819ff' 
	AND AHI.TYPE_ = 'candidate'

2、查询历史任务及审批人

SELECT
	RES.PROC_DEF_ID_,
	RES.ACT_ID_,
	RES.ACT_NAME_,
	RES.ACT_TYPE_,
	RES.START_TIME_,
	RES.END_TIME_,
	SU.NICK_NAME ,
	AHC.MESSAGE_
FROM
	ACT_HI_ACTINST RES
	LEFT JOIN ACT_HI_COMMENT AHC ON AHC.PROC_INST_ID_ = RES.PROC_INST_ID_
	LEFT JOIN SYS_USER SU ON SU.USER_ID = AHC.USER_ID_ 
WHERE
	AHC.TASK_ID_ = RES.TASK_ID_ 
	AND RES.PROC_INST_ID_ = '7f0f7bea-a227-11ef-a557-44af28c819ff' 
	AND RES.ACT_TYPE_ IN ( 'endEvent', 'startEvent', 'userTask' ) 
ORDER BY
	START_TIME_ DESC,
	END_TIME_ DESC

3、查询当前任务审批人

SELECT DISTINCT
	AST.ID_ AS ST_TASK_ID,
	AST.NAME_ AS ST_TASK_NAME,
	AST.CREATE_TIME_ AS DT_CREATE,
	'' AS ST_USER_NAME,
	SD.DEPT_NAME AS ST_DEPT 
FROM
	ACT_RU_TASK AST
	LEFT JOIN ACT_RU_IDENTITYLINK ARI ON ARI.TASK_ID_ = AST.ID_
	LEFT JOIN SYS_DEPT SD ON CONCAT( SD.DEPT_ID, '' ) = SUBSTRING( ARI.GROUP_ID_, 5 ) 
WHERE
	SUBSTRING( ARI.GROUP_ID_, 1, 4 ) = 'DEPT' 
	AND SD.DEPT_NAME IS NOT NULL 
	AND AST.PROC_INST_ID_ = '8b309e78-a24f-11ef-9bbc-4e796ed2cc88' 
	AND ARI.TYPE_ = 'candidate' UNION
SELECT DISTINCT
	AST.ID_ AS ST_TASK_ID,
	AST.NAME_ AS ST_TASK_NAME,
	AST.CREATE_TIME_ AS DT_CREATE,
	'' AS ST_USER_NAME,
	SR.ROLE_NAME AS ST_DEPT 
FROM
	ACT_RU_TASK AST
	LEFT JOIN ACT_RU_IDENTITYLINK ARI ON ARI.TASK_ID_ = AST.ID_
	LEFT JOIN SYS_ROLE SR ON CONCAT( SR.ROLE_ID, '' ) = SUBSTRING( ARI.GROUP_ID_, 5 ) 
WHERE
	SUBSTRING( ARI.GROUP_ID_, 1, 4 ) = 'ROLE' 
	AND SR.ROLE_NAME IS NOT NULL 
	AND AST.PROC_INST_ID_ = '8b309e78-a24f-11ef-9bbc-4e796ed2cc88' 
	AND ARI.TYPE_ = 'candidate' UNION
SELECT 
	AST.ID_ AS ST_TASK_ID,
	AST.NAME_ AS ST_TASK_NAME,
	AST.CREATE_TIME_ AS DT_CREATE,
	SU.NICK_NAME AS ST_USER_NAME,
	SD.DEPT_NAME AS ST_DEPT 
FROM
	ACT_RU_TASK AST 
		LEFT JOIN SYS_USER SU ON SU.USER_ID = AST.ASSIGNEE_
		LEFT JOIN SYS_DEPT SD ON SD.DEPT_ID= SU.DEPT_ID
WHERE
	AST.PROC_INST_ID_ = '8b309e78-a24f-11ef-9bbc-4e796ed2cc88' 
	AND AST.ASSIGNEE_ IS NOT NULL

### 如何在Flowable中实现或查看审批流程的预测路径 #### 方法概述 为了实现在Flowable中查看审批流程的预测路径,可以利用历史数据以及当前运行时的数据来推断可能的未来路径。具体来说,通过分析已有的流程实例及其执行情况,结合业务规则引擎(如Drools),可以在特定条件下模拟并展示未来的潜在路径。 #### 利用Drools服务进行条件判断 当启动评分流程时会调用Drools服务以获取评分结果[^1]。基于此评分结果的不同,系统能够动态决定后续应该采取哪条分支继续处理请求。这意味着如果能够在事前知道某些输入参数,则可以通过相同的逻辑提前计算出会触发哪些决策点从而预估整个过程的发展方向。 #### 运行时表的作用 `ACT_RU_`系列表格存储着有关正在执行中的流程实例的信息,包括但不限于用户任务、变量等[^3]。因此,在考虑预测功能时也可以参考这些实时更新的数据源来进行更精确地推测。 #### 启动与监听流程事件 对于想要捕捉到每一个重要时刻以便更好地理解整体走向而言,注册合适的监听器是非常必要的。例如,应当采用`FlowableEngineEventType.PROCESS_STARTED`而非错误描述里的`PROCESS_CREATED`去监控新流程实例被激活的时间点;同样地,针对已完成的情况则需关注于`FlowableEngineEventType.PROCESS_COMPLETED`事件的发生[^2]。 #### 示例代码:构建简单的预测机制 下面给出了一段Python风格的伪代码片段用来解释怎样基于现有信息做出初步估计: ```python def predict_approval_path(current_state, variables): """ 尝试根据给定的状态和变量集预测接下来可能发生的变化 参数: current_state (str): 当前所处状态名称 variables (dict): 关键字映射至相应值 返回: list[str]: 可能经过的一连串状态名 """ # 获取所有可用的历史案例作为样本库 historical_cases = get_historical_data() predicted_states = [] while True: next_possible_transitions = find_next_steps( state=current_state, vars=variables, history=historical_cases) if not next_possible_transitions: break most_probable_transition = choose_most_likely(next_possible_transitions) predicted_states.append(most_probable_transition.target_state) # 更新上下文准备下一轮迭代 current_state = most_probable_transition.target_state update_variables_based_on_transition(variables, most_probable_transition.actions) return predicted_states # 辅助函数定义... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值