From 07c4ad96c75dc93b39e002feb19845219fede415 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 29 十一月 2024 16:49:09 +0800
Subject: [PATCH] 全部事项和待办事项查询功能完善

---
 flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
index 4bcfac6..d2d5a45 100644
--- a/flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
+++ b/flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
@@ -82,7 +82,7 @@
     private final ISysFormService sysFormService;
 
     /**
-     * 瀹屾垚浠诲姟
+     * 瀹屾垚瀹℃牳浠诲姟
      *
      * @param taskVo 璇锋眰瀹炰綋鍙傛暟
      */
@@ -103,6 +103,27 @@
             taskService.complete(taskVo.getTaskId(), taskVo.getVariables());
         }
         return AjaxResult.success();
+    }
+
+    /**
+     * 瀹屾垚琛ㄥ崟鎻愪氦浠诲姟/鏅�氫换鍔�
+     *
+     * @param taskId  浠诲姟id
+     * @param variables  琛ㄥ崟鏁版嵁
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult completeSubmitForm(String taskId, Map<String, Object> variables) {
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        if (Objects.isNull(task)) {
+            return AjaxResult.error("浠诲姟涓嶅瓨鍦�");
+        }
+        // 鍏堣褰撳墠鐢ㄦ埛璁ら杩欎釜浠诲姟
+        taskService.claim(taskId, SecurityUtils.getUserId() + "");
+        taskService.addComment(taskId, task.getProcessInstanceId(), FlowComment.SUBMIT.getType(), "瀹屾垚鎻愪氦");
+        taskService.complete(taskId, variables);
+        return AjaxResult.success("鎻愪氦鎴愬姛");
     }
 
     /**
@@ -1114,7 +1135,13 @@
         } else {
             parameters = taskService.getVariables(taskId);
         }
+
         JSONObject oldVariables = JSONObject.parseObject(JSON.toJSONString(parameters.get("formJson")));
+        if (Objects.isNull(oldVariables)) {
+            // 濡傛灉鏄┖鐨勶紝鐩存帴浣跨敤涓昏〃鍗曪紝鍥犱负杩欎唬琛ㄦ槸娴佺▼涓殑绗竴涓彁浜よ〃鍗曠殑浠诲姟
+            String deploymentId = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult().getDeploymentId();
+            return this.flowFormData(deploymentId);
+        }
         List<JSONObject> oldFields = JSON.parseObject(JSON.toJSONString(oldVariables.get("widgetList")), new TypeReference<List<JSONObject>>() {
         });
         // 璁剧疆宸插~鍐欑殑琛ㄥ崟涓虹鐢ㄧ姸鎬�
@@ -1215,6 +1242,7 @@
         return AjaxResult.success(flowTask);
     }
 
+
     /**
      * 灏哋bject绫诲瀷鐨勬暟鎹浆鍖栨垚Map<String,Object>
      *

--
Gitblit v1.8.0