perf: 88136 scc流程分发节点性能优化
This commit is contained in:
+4
-3
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user