REQ-3117: 流程按钮同步

This commit is contained in:
yanglin 2024-11-21 19:10:57 +08:00
parent 9988a74221
commit b5c9aae004
2 changed files with 9 additions and 1 deletions

View File

@ -45,6 +45,10 @@ public class WorkflowButtonSyncClientController implements WorkflowButtonSyncCli
request.getButtons().stream()
.collect(toMap(WorkflowButton::getCode, identity(),
(oldValue, newValue) -> oldValue));
Map<String, WorkflowButton> name2FlowButton =
request.getButtons().stream()
.collect(toMap(WorkflowButton::getName, identity(),
(oldValue, newValue) -> oldValue));
List<MessageTemplateButtonV3> buttons =
messageTemplateButtonV3Dao.lambdaQuery().list();
@ -56,7 +60,7 @@ public class WorkflowButtonSyncClientController implements WorkflowButtonSyncCli
semaphore.acquire();
tasks.runAsync(() -> {
try {
sync(code2Template, code2FlowButton, button);
sync(code2Template, code2FlowButton, name2FlowButton, button);
} catch (Exception e) {
log.warn("sync button error, button={}", button, e);
throw new RuntimeException(e);
@ -72,6 +76,7 @@ public class WorkflowButtonSyncClientController implements WorkflowButtonSyncCli
private void sync(Map<String, MessageTemplateV3> code2Template,
Map<String, WorkflowButton> code2FlowButton,
Map<String, WorkflowButton> name2FlowButton,
MessageTemplateButtonV3 button) {
if (button.getSource() != RouterButtonSourceEnum.SYSTEM)
return;
@ -80,6 +85,8 @@ public class WorkflowButtonSyncClientController implements WorkflowButtonSyncCli
return;
WorkflowButton workflowButton = code2FlowButton.get(button.getCode());
if (workflowButton == null)
workflowButton = name2FlowButton.get(button.getName());;
if (workflowButton == null) return;
MessageTemplateButtonV3 update = new MessageTemplateButtonV3();
update.setId(button.getId());

View File

@ -20,6 +20,7 @@ public class WorkflowSyncButtonsRequest {
@Setter
@Getter
public static class WorkflowButton {
private String name;
private String code;
private RouterCategoryEnum category;
private String url;