perf: 88136 scc流程分发节点性能优化

This commit is contained in:
2024-08-13 17:42:34 +08:00
parent bf9fb8a071
commit 2ccb4fd908
@@ -85,6 +85,7 @@ import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.stream.Collectors;
import static com.jero.modules.activiti.common.ActivitiCommon.*;
@@ -378,7 +379,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
.distinct()
.collect(Collectors.toList());
// 分发给多个人的需要复制数据并保存
List<ProcessStandardComplianceCheckDetail> needAddDetailInfoList = new ArrayList<>();
Queue<ProcessStandardComplianceCheckDetail> needAddDetailInfoQueue = new ConcurrentLinkedQueue<>();
distributeDetailList.parallelStream().forEach(detail -> {
String[] engineers = detail.getDesignEngineer().split(",");
for (String engineer : engineers) {
@@ -387,12 +388,12 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
newDetail.setId(null);
newDetail.setDesignEngineer(engineer);
newDetail.setBatchId(batchId);
needAddDetailInfoList.add(newDetail);
needAddDetailInfoQueue.add(newDetail);
}
});
// 先删后增
sccDetailService.removeByIds(ids);
sccDetailService.saveBatch(needAddDetailInfoList);
sccDetailService.saveBatch(needAddDetailInfoQueue, needAddDetailInfoQueue.size());
runtimeService.setVariable(processInstanceId, DESIGNER_LIST, designEngineerList);
runtimeService.setVariable(processInstanceId, BATCH_ID, batchId);
userMap.put(DESIGNER_LIST, String.join(",", designEngineerList));