update - 优化自定义扩展监听的执行效率

This commit is contained in:
wangli 2024-04-16 16:42:58 +08:00
parent 81fad65127
commit 59e5063058
2 changed files with 25 additions and 19 deletions

View File

@ -1,10 +1,9 @@
package cn.axzo.workflow.core.common.context;
import cn.axzo.workflow.core.repository.entity.ExtAxHiTaskInst;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
/**
@ -15,23 +14,32 @@ import java.util.function.Supplier;
*/
public class TaskOperationContext extends CommonContext<TaskOperationContext> {
private Map<String, List<ExtAxHiTaskInst>> extTaskMap = new HashMap<>();
private List<ExtAxHiTaskInst> extAxHiTaskInsts;
private Map<String, List<ExtAxHiTaskInst>> getExtTaskMap() {
return extTaskMap;
}
private void setExtTaskMap(String key, List<ExtAxHiTaskInst> taskInstList) {
extTaskMap.put(key, taskInstList);
}
public List<ExtAxHiTaskInst> getExtTaskInstList(String key, Supplier<List<ExtAxHiTaskInst>> supplier) {
if (getExtTaskMap().containsKey(key)) {
return getExtTaskMap().get(key);
public List<ExtAxHiTaskInst> getExtAxHiTaskInsts(Supplier<List<ExtAxHiTaskInst>> supplier) {
if (CollectionUtils.isEmpty(extAxHiTaskInsts)) {
extAxHiTaskInsts.addAll(supplier.get());
}
setExtTaskMap(key, supplier.get());
return getExtTaskInstList(key, supplier);
return extAxHiTaskInsts;
}
// private Map<String, List<ExtAxHiTaskInst>> extTaskMap = new HashMap<>();
//
// private Map<String, List<ExtAxHiTaskInst>> getExtTaskMap() {
// return extTaskMap;
// }
//
// private void setExtTaskMap(String key, List<ExtAxHiTaskInst> taskInstList) {
// extTaskMap.put(key, taskInstList);
// }
//
// public List<ExtAxHiTaskInst> getExtTaskInstList(String key, Supplier<List<ExtAxHiTaskInst>> supplier) {
// if (getExtTaskMap().containsKey(key)) {
// return getExtTaskMap().get(key);
// }
// setExtTaskMap(key, supplier.get());
// return getExtTaskInstList(key, supplier);
// }
}

View File

@ -150,9 +150,7 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
ExtHiTaskSearchDTO searchDTO = new ExtHiTaskSearchDTO();
searchDTO.setProcessInstanceId(delegateTask.getProcessInstanceId());
searchDTO.setTaskDefinitionKey(i.getActivityId());
getContext().getExtTaskInstList(buildCacheKey("extAxHiTaskInstService.queryList", searchDTO),
() -> extAxHiTaskInstService.queryList(searchDTO))
// extAxHiTaskInstService.queryList(searchDTO)
getContext().getExtAxHiTaskInsts(() -> extAxHiTaskInstService.queryList(searchDTO))
.stream().filter(e -> Objects.equals(e.getStatus(), APPROVED.getStatus()))
.map(ExtAxHiTaskInst::getAssignee)
.filter(Objects::nonNull)