update - 优化自定义扩展监听的执行效率
This commit is contained in:
parent
81fad65127
commit
59e5063058
@ -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);
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user