REQ-3502: 过滤流程按钮
This commit is contained in:
parent
ab6845816c
commit
ea0177677c
@ -1,38 +0,0 @@
|
||||
package cn.axzo.msg.center.message.service.todo.card.biz;
|
||||
|
||||
import cn.axzo.msg.center.domain.entity.Todo;
|
||||
import cn.axzo.msg.center.message.service.card.interceptor.CardButtonInterceptor;
|
||||
import cn.axzo.msg.center.message.service.card.interceptor.CardButtonInterceptorFactory;
|
||||
import cn.axzo.msg.center.message.service.todo.card.TodoSyncCardService;
|
||||
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
|
||||
import cn.axzo.msg.center.service.pending.request.CardContent;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
class BizCardButtonInterceptorFactory implements CardButtonInterceptorFactory {
|
||||
|
||||
private final TodoSyncCardService todoSyncCardService;
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public CardButtonInterceptor create(CardContent card) {
|
||||
BizCategoryEnum category = TodoSyncCardService.findTodoBizCategory(card.getBizParam()).orElse(null);
|
||||
if (category != BizCategoryEnum.OTHER)
|
||||
return null;
|
||||
Todo todo = todoSyncCardService.findTodo(card).orElse(null);
|
||||
if (todo == null) {
|
||||
log.warn("todo not found. identityCode={}", card.getBizParam());
|
||||
return null;
|
||||
}
|
||||
return new TodoCardButtonInterceptor(todo);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,26 +0,0 @@
|
||||
package cn.axzo.msg.center.message.service.todo.card.biz;
|
||||
|
||||
import cn.axzo.msg.center.domain.entity.Todo;
|
||||
import cn.axzo.msg.center.message.service.card.interceptor.CardButtonInterceptor;
|
||||
import cn.axzo.msg.center.service.ButtonV3;
|
||||
import cn.axzo.msg.center.service.enums.TodoType;
|
||||
import cn.axzo.msg.center.utils.desision.DecisionValue;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
public class TodoCardButtonInterceptor implements CardButtonInterceptor {
|
||||
|
||||
protected final Todo todo;
|
||||
|
||||
@Override
|
||||
public DecisionValue<Boolean> isVisibleOnCard(ButtonV3 button) {
|
||||
// 抄送不显示任何按钮
|
||||
if (todo.getType() == TodoType.COPIED_TO_ME)
|
||||
return DecisionValue.decide(false);
|
||||
return DecisionValue.notSure();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.msg.center.message.service.todo.card.workflow;
|
||||
|
||||
import cn.axzo.msg.center.domain.entity.Todo;
|
||||
import cn.axzo.msg.center.message.service.todo.card.biz.TodoCardButtonInterceptor;
|
||||
import cn.axzo.msg.center.message.service.card.interceptor.CardButtonInterceptor;
|
||||
import cn.axzo.msg.center.service.ButtonV3;
|
||||
import cn.axzo.msg.center.service.enums.BizFinalStateEnum;
|
||||
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
|
||||
@ -11,6 +11,7 @@ import cn.axzo.workflow.common.enums.ButtonVisibleScopeEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonMetaInfo;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskButtonVo;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskButtonVo.BpmnButtonMetaInfoWithVisibleScope;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Collections;
|
||||
@ -25,16 +26,13 @@ import static java.util.stream.Collectors.toSet;
|
||||
* @author yanglin
|
||||
*/
|
||||
@Slf4j
|
||||
class WorkflowTodoCardButtonInterceptor extends TodoCardButtonInterceptor {
|
||||
@RequiredArgsConstructor
|
||||
class WorkflowTodoCardButtonInterceptor implements CardButtonInterceptor {
|
||||
|
||||
private final Todo todo;
|
||||
private final Supplier<BpmnTaskButtonVo> workflowButtonsProvider;
|
||||
private BpmnTaskButtonVo workflowButtons;
|
||||
|
||||
WorkflowTodoCardButtonInterceptor(Todo todo, Supplier<BpmnTaskButtonVo> workflowButtonsProvider) {
|
||||
super(todo);
|
||||
this.workflowButtonsProvider = workflowButtonsProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DecisionValue<Boolean> isPerformActionAvailable(ButtonV3 button) {
|
||||
BizFinalStateEnum state = findButtonClickState(button).orElse(null);
|
||||
@ -59,9 +57,6 @@ class WorkflowTodoCardButtonInterceptor extends TodoCardButtonInterceptor {
|
||||
|
||||
@Override
|
||||
public DecisionValue<Boolean> isVisibleOnCard(ButtonV3 button) {
|
||||
DecisionValue<Boolean> decision = super.isVisibleOnCard(button);
|
||||
if (decision.isDecided())
|
||||
return decision;
|
||||
// 进行中隐藏所有按钮
|
||||
if (todo.getState() == PendingMessageStateEnum.PROCESSING)
|
||||
return DecisionValue.decide(false);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user