REQ-3502: 添加按钮类型

This commit is contained in:
yanglin 2025-01-10 23:18:50 +08:00
parent 79010b65f7
commit 3ec0837f2e
6 changed files with 38 additions and 1 deletions

View File

@ -21,6 +21,10 @@
</properties>
<dependencies>
<dependency>
<groupId>cn.axzo.workflow</groupId>
<artifactId>workflow-engine-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>cn.axzo.org</groupId>
<artifactId>org-api</artifactId>

View File

@ -7,6 +7,7 @@ import cn.axzo.msg.center.service.domain.UrlConfig;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.enums.ButtonStyleEnum;
import cn.axzo.msg.center.service.enums.PresetButtonType;
import cn.axzo.msg.center.service.enums.RouterButtonSourceEnum;
import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
import cn.axzo.msg.center.service.enums.TerminalTypeEnum;
import cn.axzo.msg.center.service.pending.card.domain.CardElementConfig;
@ -238,6 +239,11 @@ public class GeneralMessagePushVO implements Serializable {
*/
private UrlConfig urlConfig;
/**
* 按钮来源
*/
private RouterButtonSourceEnum source;
/**
* 调用api的地址. action=ACTION时, 消费这个字段
*/

View File

@ -154,6 +154,7 @@ class CardParser {
String actionPerformed = buttonInterceptor
.getActionPerformedName(button)
.orElse(button.getActionPerformedName());
imButton.setSource(button.getSource());
imButton.setTitle(isActionPerformed ? actionPerformed : button.getName());
imButton.setAction(button.getCategory().name());
imButton.setIsHighlight(button.getStyles().contains(ButtonStyleEnum.HIGH_LIGHT));

View File

@ -7,6 +7,7 @@ import cn.axzo.msg.center.service.enums.BizFinalStateEnum;
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
import cn.axzo.msg.center.service.enums.RouterButtonSourceEnum;
import cn.axzo.msg.center.utils.desision.DecisionValue;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskButtonVo;
import lombok.RequiredArgsConstructor;
import java.util.Optional;
@ -17,6 +18,7 @@ import java.util.Optional;
@RequiredArgsConstructor
class WorkflowTodoCardButtonInterceptor implements CardButtonInterceptor {
private final BpmnTaskButtonVo workflowButtons;
private final Todo todo;
@Override

View File

@ -1,12 +1,17 @@
package cn.axzo.msg.center.message.service.todo.card.workflow;
import cn.axzo.msg.center.dal.TodoBusinessDao;
import cn.axzo.msg.center.dal.TodoDao;
import cn.axzo.msg.center.domain.entity.Todo;
import cn.axzo.msg.center.domain.entity.TodoBusiness;
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 cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskButtonSearchDTO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskButtonVo;
import cn.axzo.workflow.starter.api.WorkflowCoreService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@ -21,7 +26,9 @@ import javax.annotation.Nullable;
@RequiredArgsConstructor
class WorkflowTodoCardButtonInterceptorFactory implements CardButtonInterceptorFactory {
private final TodoBusinessDao todoBusinessDao;
private final TodoDao todoDao;
private final WorkflowCoreService workflowCoreService;
@Override @Nullable
public CardButtonInterceptor create(CardContent card) {
@ -36,7 +43,18 @@ class WorkflowTodoCardButtonInterceptorFactory implements CardButtonInterceptorF
log.warn("todo not found. identityCode={}", identityCode);
return null;
}
return new WorkflowTodoCardButtonInterceptor(todo);
TodoBusiness business = todoBusinessDao.getBusinesses(todo).findBusiness(todo).orElse(null);
if (business == null) {
log.warn("todo business not found. identityCode={}", identityCode);
return null;
}
BpmnTaskButtonSearchDTO workflowRequest = new BpmnTaskButtonSearchDTO();
workflowRequest.setProcessInstanceId(todo.getBizCode());
workflowRequest.setTaskId(todo.getSubBizCode());
workflowRequest.setInitiatorPersonId(business.getPromoterPersonId());
workflowRequest.setExecutorPersonId(todo.getExecutorPersonId());
BpmnTaskButtonVo workflowButtons = workflowCoreService.findProcessSingleTaskButtons(workflowRequest);
return new WorkflowTodoCardButtonInterceptor(workflowButtons, todo);
}
}

View File

@ -42,6 +42,7 @@
<feign-httpclient.version>11.8</feign-httpclient.version>
<jetbrains.version>26.0.0</jetbrains.version>
<epic.version>1.0.0-SNAPSHOT</epic.version>
<workflow.version>1.5.1-SNAPSHOT</workflow.version>
</properties>
<dependencyManagement>
@ -106,6 +107,11 @@
<artifactId>msg-center-api-v2</artifactId>
<version>${msg-center-api-v2-version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.workflow</groupId>
<artifactId>workflow-engine-spring-boot-starter</artifactId>
<version>${workflow.version}</version>
</dependency>
</dependencies>
</dependencyManagement>