From da0cb62479d4d64d26d19622cce3e7b518290065 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期六, 08 二月 2025 11:10:34 +0800
Subject: [PATCH] 任务跳过接口实现:查出任务绑定表单放到变量中,最后直接完成即跳过

---
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index 7591ebb..b420892 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ycl.service.impl;
 
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
@@ -15,7 +16,9 @@
 import com.ycl.constant.TaskTypeConstant;
 import com.ycl.domain.entity.ProjectInfo;
 import com.ycl.domain.entity.ProjectProcess;
+import com.ycl.domain.entity.SysForm;
 import com.ycl.domain.form.TaskDelegationForm;
+import com.ycl.domain.form.TaskJumpForm;
 import com.ycl.domain.json.DelegateData;
 import com.ycl.domain.vo.CustomerTaskVO;
 import com.ycl.domain.vo.IndexCustomerTaskVO;
@@ -23,6 +26,8 @@
 import com.ycl.event.event.TaskLogEvent;
 import com.ycl.mapper.ProjectInfoMapper;
 import com.ycl.mapper.ProjectProcessMapper;
+import com.ycl.service.IFlowTaskService;
+import com.ycl.service.ISysFormService;
 import com.ycl.service.ProjectProcessService;
 import com.ycl.common.base.Result;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -79,6 +84,8 @@
     private final ISysRoleService sysRoleService;
     private final ISysDeptService sysDeptService;
     private final TaskCommonService taskCommonService;
+    private final IFlowTaskService flowTaskService;
+    private final ISysFormService formService;
     private final ApplicationEventPublisher publisher;
 
     /**
@@ -568,6 +575,28 @@
         return Result.ok("杞姙鎴愬姛");
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result taskJump(TaskJumpForm form) {
+        Task task = taskService.createTaskQuery().taskId(form.getTaskId()).processInstanceId(form.getProcessInsId()).singleResult();
+        if (Objects.nonNull(task)) {
+            // 娣诲姞璺宠繃鏃ュ織
+            publisher.publishEvent(new TaskLogEvent(this, form.getProjectId(), form.getProcessInsId(), form.getTaskId(), ProcessLogEventTypeEnum.JUMP, null));
+            // 鏌ュ嚭璇ヤ换鍔$粦瀹氱殑琛ㄥ崟
+
+            Map<String, Object> data = new HashMap<>(1);
+            if (StringUtils.isNotBlank(task.getFormKey())) {
+                SysForm sysForm = formService.selectSysFormById(Long.parseLong(task.getFormKey()));
+                if (Objects.nonNull(sysForm)) {
+                    data.put(ProcessConstants.TASK_FORM_KEY, JSONObject.parseObject(sysForm.getFormContent()));
+                }
+            }
+            // 瀹屾垚浠诲姟
+            flowTaskService.completeSubmitForm(form.getTaskId(), data);
+        }
+        return Result.ok("鎿嶄綔鎴愬姛");
+    }
+
     /**
      * 鏌ヨ寰呭姙浠诲姟
      *

--
Gitblit v1.8.0