飞龙工作流FlowLong:超时审批自动处理

飞龙工作流FlowLong:超时审批自动处理

【免费下载链接】flowlong 🔥🔥🔥飞龙工作流 FlowLong 🐉 真正的国产、无代码工作流引擎、低代码集成、功能比飞书钉钉审批流程更加强大🚩为中国特色审批匠心打造❗ 【免费下载链接】flowlong 项目地址: https://gitcode.com/aizuda/flowlong

在企业审批流程中,经常遇到审批人忘记处理或拖延审批的情况,导致业务流程阻塞。飞龙工作流FlowLong提供了强大的超时审批自动处理功能,能够有效解决这一痛点,确保业务流程顺畅运行。

超时审批的核心价值

超时审批功能为企业带来以下核心价值:

功能优势具体描述
避免流程阻塞自动处理超时任务,防止审批流程停滞
提高审批效率减少人工干预,自动化处理超时审批
灵活配置策略支持多种超时处理模式(自动通过/拒绝)
智能提醒机制超时前进行多次提醒,降低超时发生率
完整审计追踪记录超时处理全过程,便于追溯分析

超时审批配置详解

基础配置参数

在FlowLong流程设计中,超时审批通过以下关键参数进行配置:

{
  "termAuto": true,           // 启用超时自动处理
  "term": 1,                  // 超时时间(单位:天)
  "termMode": 0,              // 超时处理模式:0-自动通过,1-自动拒绝
  "remind": true,             // 是否启用提醒
  "remindTime": "2:h"         // 提醒时间配置(2小时前提醒)
}

超时时间单位说明

FlowLong支持多种时间单位配置:

单位代码含义示例
s"30:s" - 30秒
m分钟"10:m" - 10分钟
h小时"2:h" - 2小时
d"1:d" - 1天
w"1:w" - 1周

实现原理与架构

超时处理核心流程

mermaid

核心代码实现

FlowLong通过FlowLongScheduler类实现超时审批的定时扫描和处理:

public void remind() {
    // 获取所有超时或需要提醒的任务
    List<FlwTask> flwTaskList = taskService.getTimeoutOrRemindTasks();
    
    for (FlwTask flwTask : flwTaskList) {
        // 任务提醒处理
        if (null != flwTask.getRemindTime()) {
            handleTaskReminder(flwTask);
        }
        
        // 任务超时处理
        if (null != flwTask.getExpireTime()) {
            handleTaskTimeout(flwTask);
        }
    }
}

private void handleTaskTimeout(FlwTask flwTask) {
    ProcessModel processModel = flowLongEngine.runtimeService()
        .getProcessModelByInstanceId(flwTask.getInstanceId());
    NodeModel nodeModel = processModel.getNode(flwTask.getTaskKey());
    
    // 检查是否启用超时自动处理
    if (nodeModel.getTermAuto() != null && nodeModel.getTermAuto()) {
        Integer termMode = nodeModel.getTermMode();
        if (null == termMode) {
            // 默认超时处理
            context.getRuntimeService().timeout(flwTask.getInstanceId(), 
                flwTask, this.getAutoFlowCreator());
        } else if (Objects.equals(termMode, 0)) {
            // 自动通过
            flowLongEngine.autoCompleteTask(flwTask.getId(), this.getAutoFlowCreator());
        } else if (Objects.equals(termMode, 1)) {
            // 自动拒绝
            flowLongEngine.autoRejectTask(flwTask, this.getAutoFlowCreator());
        }
    }
}

实战配置示例

示例1:24小时超时自动通过

{
  "nodeName": "部门审批",
  "type": 1,
  "termAuto": true,
  "term": 1,
  "termMode": 0,
  "remind": true,
  "remindTime": "4:h",
  "nodeAssigneeList": [
    {
      "id": "dept_manager",
      "name": "部门经理"
    }
  ]
}

示例2:48小时超时自动拒绝

{
  "nodeName": "财务审核",
  "type": 1,
  "termAuto": true,
  "term": 2,
  "termMode": 1,
  "remind": true,
  "remindTime": "24:h,12:h,1:h",
  "nodeAssigneeList": [
    {
      "id": "finance_auditor",
      "name": "财务审核员"
    }
  ]
}

提醒机制配置

多级提醒策略

FlowLong支持配置多级提醒,可以在超时前进行多次提醒:

@Component
public class CustomTaskReminder implements TaskReminder {
    @Override
    public Date remind(FlowLongContext context, Long instanceId, FlwTask currentTask) {
        // 发送提醒通知(邮件、短信、钉钉等)
        sendReminderNotification(currentTask);
        
        // 设置下次提醒时间(6小时后再次提醒)
        return DateUtils.toDate(DateUtils.now().plusHours(6));
    }
}

提醒参数配置

flowlong:
  remind:
    cron: "0 */5 * * * ?"    # 每5分钟执行一次提醒扫描
    maximum: 10               # 最大提醒次数
    weeks: "1,2,3,4,5"       # 工作日(周一到周五)
    workTime: "9:00-18:00"   # 工作时间段

高级特性

分布式锁保障

FlowLong使用分布式锁确保超时处理在高并发环境下的数据一致性:

public void remind() {
    try {
        if (!jobLock.tryLock()) {
            log.info("Scheduling is already running, just return.");
            return;
        }
        // 执行超时处理逻辑
    } finally {
        jobLock.unlock();
    }
}

自定义超时处理策略

支持自定义超时处理逻辑,满足特殊业务需求:

public class CustomTimeoutHandler {
    public void handleTimeout(FlwTask task) {
        // 自定义超时处理逻辑
        if ("紧急流程".equals(task.getProcessName())) {
            // 紧急流程特殊处理
            escalateToManager(task);
        } else {
            // 普通流程按配置处理
            defaultTimeoutHandler.handle(task);
        }
    }
}

最佳实践建议

1. 合理设置超时时间

根据业务流程紧急程度设置不同的超时时间:

流程类型建议超时时间处理模式
紧急审批2-4小时自动通过
普通审批24-48小时自动通过
重要审核72小时自动拒绝
财务审批5个工作日多级提醒

2. 多级提醒策略

建议采用三级提醒机制:

  • 一级提醒:超时前50%时间(温和提醒)
  • 二级提醒:超时前80%时间(重要提醒)
  • 三级提醒:超时前95%时间(紧急提醒)

3. 异常处理与监控

// 监控超时处理异常
try {
    flowLongEngine.autoCompleteTask(taskId);
} catch (Exception e) {
    log.error("超时自动处理失败: taskId={}", taskId, e);
    // 发送告警通知
    sendAlertNotification(taskId, e);
}

总结

飞龙工作流FlowLong的超时审批自动处理功能为企业提供了完整的流程自动化解决方案。通过灵活的配置选项、强大的提醒机制和可靠的处理逻辑,能够有效解决审批流程中的阻塞问题,提升业务流程效率。

关键优势总结:

  • 零编码配置:通过JSON配置即可实现复杂超时策略
  • 多模式支持:支持自动通过、自动拒绝等多种处理方式
  • 智能提醒:多级提醒机制降低超时发生率
  • 高可靠性:分布式锁保障数据一致性
  • 易于扩展:支持自定义超时处理逻辑

通过合理配置和使用FlowLong的超时审批功能,企业可以显著提升审批流程的自动化水平和运行效率,确保业务流程的顺畅执行。

【免费下载链接】flowlong 🔥🔥🔥飞龙工作流 FlowLong 🐉 真正的国产、无代码工作流引擎、低代码集成、功能比飞书钉钉审批流程更加强大🚩为中国特色审批匠心打造❗ 【免费下载链接】flowlong 项目地址: https://gitcode.com/aizuda/flowlong

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值