From 95791254a9ca91811d85c579b33effbba7ccac74 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期一, 03 六月 2024 22:27:25 +0800
Subject: [PATCH] fix 修复抄送后有多条记录信息展示错误
---
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java | 40 ++++++++++++++++++++++++++++++----------
1 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java
index 5a46978..e790438 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java
@@ -313,21 +313,41 @@
Map<String, List<ActHistoryInfoVo>> groupByKey = StreamUtils.groupByKey(actHistoryInfoVoList, ActHistoryInfoVo::getTaskDefinitionKey);
for (Map.Entry<String, List<ActHistoryInfoVo>> entry : groupByKey.entrySet()) {
ActHistoryInfoVo historyInfoVo = new ActHistoryInfoVo();
- BeanUtils.copyProperties(entry.getValue().get(0), historyInfoVo);
- actHistoryInfoVoList.stream().filter(e -> e.getTaskDefinitionKey().equals(entry.getKey()) && e.getEndTime() == null).findFirst()
- .ifPresent(e -> {
- historyInfoVo.setStatus("寰呭鐞�");
- historyInfoVo.setStartTime(e.getStartTime());
- historyInfoVo.setEndTime(null);
- historyInfoVo.setRunDuration(null);
- if (ObjectUtil.isEmpty(e.getAssignee())) {
- ParticipantVo participantVo = WorkflowUtils.getCurrentTaskParticipant(e.getId());
+ if (entry.getValue().size() > 1) {
+ List<ActHistoryInfoVo> historyInfoVos = StreamUtils.filter(entry.getValue(), e -> StringUtils.isNotBlank(e.getAssignee()));
+ if (CollUtil.isNotEmpty(historyInfoVos)) {
+ ActHistoryInfoVo infoVo = historyInfoVos.get(0);
+ BeanUtils.copyProperties(infoVo, historyInfoVo);
+ historyInfoVo.setStatus(infoVo.getEndTime() == null ? "寰呭鐞�" : "宸插鐞�");
+ historyInfoVo.setStartTime(infoVo.getStartTime());
+ historyInfoVo.setEndTime(infoVo.getEndTime() == null ? null : infoVo.getEndTime());
+ historyInfoVo.setRunDuration(infoVo.getEndTime() == null ? null : infoVo.getRunDuration());
+ if (ObjectUtil.isEmpty(infoVo.getAssignee())) {
+ ParticipantVo participantVo = WorkflowUtils.getCurrentTaskParticipant(infoVo.getId());
if (ObjectUtil.isNotEmpty(participantVo) && CollUtil.isNotEmpty(participantVo.getCandidate())) {
historyInfoVo.setAssignee(StreamUtils.join(participantVo.getCandidate(), Convert::toStr));
}
}
- });
+ }
+ } else {
+ actHistoryInfoVoList.stream().filter(e -> e.getTaskDefinitionKey().equals(entry.getKey())).findFirst()
+ .ifPresent(e -> {
+ BeanUtils.copyProperties(e, historyInfoVo);
+ historyInfoVo.setStatus(e.getEndTime() == null ? "寰呭鐞�" : "宸插鐞�");
+ historyInfoVo.setStartTime(e.getStartTime());
+ historyInfoVo.setEndTime(e.getEndTime() == null ? null : e.getEndTime());
+ historyInfoVo.setRunDuration(e.getEndTime() == null ? null : e.getRunDuration());
+ if (ObjectUtil.isEmpty(e.getAssignee())) {
+ ParticipantVo participantVo = WorkflowUtils.getCurrentTaskParticipant(e.getId());
+ if (ObjectUtil.isNotEmpty(participantVo) && CollUtil.isNotEmpty(participantVo.getCandidate())) {
+ historyInfoVo.setAssignee(StreamUtils.join(participantVo.getCandidate(), Convert::toStr));
+ }
+ }
+ });
+
+ }
historyInfoVoList.add(historyInfoVo);
+
}
return historyInfoVoList;
}
--
Gitblit v1.9.3