fix: 主排查人分批下发不返回数据

This commit is contained in:
2024-07-15 16:05:19 +08:00
parent e9c79dc8de
commit 5a717601e6
@@ -54,7 +54,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.jero.modules.activiti.common.ActivitiCommon.DISTRIBUTE;
@@ -226,6 +225,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
}
// 保存快照
processHandleService.saveToSnapshot(processInfoVO, userId);
// 审批节点
actFlowCommonService.completeTask(taskId, curUserId);
}
@@ -358,29 +359,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
case MAIN_CHECK_USER_DISTRIBUTE:
processSccVO.setStandardInfo(scc);
// 过滤出未分发的数据
detailList = detailList.stream().filter(detail -> StrUtil.isBlank(detail.getProcessInstanceId())).collect(Collectors.toList());
// TODO 根据条款号/条款标题/条款内容/车型去重并删除重复的数据
// 定义一个比较器,用于根据指定的属性判断两个对象是否相等(即认为它们是重复的)
Comparator<ProcessStandardComplianceCheckDetail> comparator = Comparator.comparing(ProcessStandardComplianceCheckDetail::getTermNumber)
.thenComparing(ProcessStandardComplianceCheckDetail::getTermTitle)
.thenComparing(ProcessStandardComplianceCheckDetail::getTermContent)
.thenComparing(ProcessStandardComplianceCheckDetail::getModel);
Map<ProcessStandardComplianceCheckDetail, Long> counts = detailList.stream()
.filter(Objects::nonNull) // 确保非空处理
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
// 筛选出出现超过一次(即重复的)的条目
List<ProcessStandardComplianceCheckDetail> duplicates = counts.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
// 从重复的条目中提取ID
List<String> duplicateIds = duplicates.stream()
.map(ProcessStandardComplianceCheckDetail::getId)
.distinct()
.collect(Collectors.toList());
detailList = detailList.stream().filter(detail ->
StrUtil.isBlank(detail.getDesignEngineer())).collect(Collectors.toList());
processSccVO.setDetailInfoList(detailList);
break;
case MAIN_CHECK_USER_COLLECT: