Commit 7abcd537f5b3ddf98a490da3e86232db152682dc

Authored by 颜惠青
1 parent 39f1e008

创建工单API封装

urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/FirstApprovalAutoCompleteListener.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.service.garden.listener;
  2 +
  3 +/**
  4 + * 类描述:第一次跳过审批,第二次手动审批
  5 + * 创建人:yanhuiqing
  6 + * 创建时间:2025/12/18 20:28
  7 + * 修改人:yanhuiqing
  8 + * 修改时间:2025/12/18 20:28
  9 + * 修改备注:
  10 + *
  11 + * @author yanhuiqing
  12 + * @version 1.0
  13 + */
  14 +import org.flowable.engine.TaskService;
  15 +import org.flowable.engine.delegate.TaskListener;
  16 +import org.flowable.task.service.delegate.DelegateTask;
  17 +import org.springframework.beans.factory.annotation.Autowired;
  18 +import org.springframework.stereotype.Component;
  19 +
  20 +/**
  21 + * 初审节点自动通过监听器
  22 + */
  23 +@Component("firstApprovalAutoCompleteListener") // 组件名,供流程设计器调用
  24 +public class FirstApprovalAutoCompleteListener implements TaskListener {
  25 +
  26 + // 注入Flowable的TaskService,用于完成任务
  27 + @Autowired
  28 + private TaskService taskService;
  29 +
  30 + @Override
  31 + public void notify(DelegateTask delegateTask) {
  32 + // 1. 获取流程变量
  33 + String starterId = (String) delegateTask.getVariable("starterId"); // 发起人ID
  34 + Boolean isFirstEnter = (Boolean) delegateTask.getVariable("isFirstEnterFirstApproval"); // 是否首次进入
  35 + Boolean isReturned = (Boolean) delegateTask.getVariable("isReturnedToFirstApproval"); // 是否退回
  36 +
  37 + // 2. 获取当前审批节点的审批人ID
  38 + String assigneeId = delegateTask.getAssignee();
  39 +
  40 + // 3. 核心逻辑:首次进入 + 发起人=审批人 → 自动完成任务
  41 + if (isFirstEnter != null && isFirstEnter
  42 + && !Boolean.TRUE.equals(isReturned)
  43 + && starterId != null && starterId.equals(assigneeId)) {
  44 +
  45 + // 标记:首次进入已处理,后续不再触发自动通过
  46 + delegateTask.setVariable("isFirstEnterFirstApproval", false);
  47 +
  48 + // 自动完成任务(流程继续向下)
  49 + taskService.complete(delegateTask.getId());
  50 + }
  51 + // 若为退回进入(isReturned=true),则不执行自动完成,等待手动处理
  52 + }
  53 +}
0 \ No newline at end of file 54 \ No newline at end of file