From 310f2ec1d4bc58a911701ba0b902f27a3e17efb6 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 03 一月 2025 16:43:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 business/src/main/java/com/ycl/listener/flowable/FlowableOverTimeListener.java |   66 +++++++++++++++------------------
 1 files changed, 30 insertions(+), 36 deletions(-)

diff --git a/business/src/main/java/com/ycl/listener/flowable/FlowableOverTimeListener.java b/business/src/main/java/com/ycl/listener/flowable/FlowableOverTimeListener.java
index 6fde445..d2e507c 100644
--- a/business/src/main/java/com/ycl/listener/flowable/FlowableOverTimeListener.java
+++ b/business/src/main/java/com/ycl/listener/flowable/FlowableOverTimeListener.java
@@ -7,6 +7,7 @@
 import com.ycl.mapper.ProcessCodingMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.flowable.common.engine.impl.el.FixedValue;
+import org.flowable.engine.HistoryService;
 import org.flowable.engine.delegate.TaskListener;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.flowable.task.service.delegate.DelegateTask;
@@ -19,7 +20,7 @@
 
 /**
  * 浠诲姟鐩戝惉鍣�
- *
+ * <p>
  * create锛堝垱寤猴級:鍦ㄤ换鍔¤鍒涘缓涓旀墍鏈夌殑浠诲姟灞炴�ц缃畬鎴愬悗鎵嶈Е鍙�
  * assignment锛堟寚娲撅級锛氬湪浠诲姟琚垎閰嶇粰鏌愪釜鍔炵悊浜轰箣鍚庤Е鍙�
  * complete锛堝畬鎴愶級锛氬湪閰嶇疆浜嗙洃鍚櫒鐨勪笂涓�涓换鍔″畬鎴愭椂瑙﹀彂
@@ -30,7 +31,7 @@
  */
 @Slf4j
 @Component
-public class FlowableOverTimeListener extends FlowServiceFactory implements TaskListener {
+public class FlowableOverTimeListener implements TaskListener {
     /**
      * 榛勭爜鏃堕棿
      */
@@ -49,6 +50,7 @@
         log.info("瑙﹀彂瓒呮椂鐩戝惉鍣�:{}", delegateTask);
         //Flowable鐨刡ean鑷繁绠$悊鐨勯渶瑕佹墜鍔ㄨ幏鍙�
         ProcessCodingMapper processCodingMapper = SpringUtils.getBean(ProcessCodingMapper.class);
+        HistoryService historyService = SpringUtils.getBean(HistoryService.class);
         //浠诲姟id
         String taskId = delegateTask.getId();
         //娴佺▼瀹炰緥id
@@ -57,40 +59,32 @@
         processCoding.setTaskId(taskId);
         processCoding.setProcessInsId(processInstanceId);
         processCoding.setTaskDefKey(delegateTask.getTaskDefinitionKey());
-        //娑夊強鍒伴┏鍥烇紝闇�瑕佹煡涓�涓嬭繖涓妭鐐规槸鍚﹀凡缁忔坊鍔犺繃浜嗭紝濡傛灉娣诲姞杩囧氨涓嶈繘琛屽悗缁搷浣�
-        List<ProcessCoding> processCodings = processCodingMapper.selectList(new QueryWrapper<ProcessCoding>()
-                .eq("process_ins_id", processInstanceId)
-                .eq("task_def_key", delegateTask.getTaskDefinitionKey()));
-        if (CollectionUtils.isEmpty(processCodings)) {
-            processCoding.setStatus(GREEN);
-            if (yellowTime != null && yellowTime.getValue(delegateTask) != null) {
-                processCoding.setYellowTime(Integer.parseInt(yellowTime.getValue(delegateTask).toString()));
-            }
-            if (redTime != null && redTime.getValue(delegateTask) != null) {
-                processCoding.setRedTime(Integer.parseInt(redTime.getValue(delegateTask).toString()));
-            }
-            if (startTaskId != null && startTaskId.getValue(delegateTask) != null) {
-                String taskDefKey = startTaskId.getValue(delegateTask).toString();
-                //閫氳繃娴佺▼瀹炰緥id鍜岃妭鐐瑰畾涔塱d鎵惧埌瀵瑰簲taskId
-                if (delegateTask.getTaskDefinitionKey().equals(taskDefKey)) {
-                    //褰撳墠鑺傜偣涓哄紑濮嬭鏃惰妭鐐�
-                    processCoding.setStartTaskId(delegateTask.getId());
-                } else {
-                    //寮�濮嬭妭鐐逛粠鍘嗗彶鑺傜偣鏌ヨ 鍙栧鏉′腑鏈�鏃╃殑涓�鏉�
-                    List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
-                            .processInstanceId(processInstanceId)
-                            .taskDefinitionKey(delegateTask.getTaskDefinitionKey())
-                            .orderByHistoricTaskInstanceStartTime()
-                            .asc()
-                            .list();
-                    if (!CollectionUtils.isEmpty(list)) {
-                        HistoricTaskInstance hisTask = list.get(0);
-                        processCoding.setStartTaskId(hisTask.getId());
-                    }
-                }
-            }
-            processCodingMapper.insert(processCoding);
-            log.info("娣诲姞鑺傜偣鍒板畾鏃跺櫒");
+        processCoding.setStatus(GREEN);
+        if (yellowTime != null && yellowTime.getValue(delegateTask) != null) {
+            processCoding.setYellowTime(Integer.parseInt(yellowTime.getValue(delegateTask).toString()));
         }
+        if (redTime != null && redTime.getValue(delegateTask) != null) {
+            processCoding.setRedTime(Integer.parseInt(redTime.getValue(delegateTask).toString()));
+        }
+        //璁剧疆寮�濮嬭妭鐐�
+        if (startTaskId != null && startTaskId.getValue(delegateTask) != null) {
+            String taskDefKey = startTaskId.getValue(delegateTask).toString();
+            //寮�濮嬭妭鐐逛粠鍘嗗彶鑺傜偣鏌ヨ 鍙栧鏉′腑鏈�鏃╃殑涓�鏉�
+            List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
+                    .processInstanceId(processInstanceId)
+                    .taskDefinitionKey(taskDefKey)
+                    .orderByHistoricTaskInstanceStartTime()
+                    .asc()
+                    .list();
+            if (!CollectionUtils.isEmpty(list)) {
+                HistoricTaskInstance hisTask = list.get(0);
+                processCoding.setStartTaskId(hisTask.getId());
+            } else {
+                //濡傛灉涓虹┖锛岃鏄庢祦绋嬮娆¤蛋鍒皌askDefKey鑺傜偣
+                processCoding.setStartTaskId(delegateTask.getId());
+            }
+        }
+        processCodingMapper.insert(processCoding);
+        log.info("娣诲姞鑺傜偣鍒板畾鏃跺櫒");
     }
 }

--
Gitblit v1.8.0