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