mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	fix 修复抄送后有多条记录信息展示错误
This commit is contained in:
		@@ -313,21 +313,41 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
 | 
			
		||||
        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;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user