diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateDTO.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateDTO.java index c0ea811b..1cd0f1ed 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateDTO.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateDTO.java @@ -1,10 +1,12 @@ package cn.axzo.msg.center.message.domain.dto; import cn.axzo.msg.center.domain.entity.MessageBaseTemplate; +import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO.MessageRouteButtonDTO; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.enums.BizDetailJumpStrategyEnum; import cn.axzo.msg.center.service.enums.MessageCategoryEnum; import cn.axzo.msg.center.service.enums.PushTerminalEnum; +import cn.axzo.msg.center.service.enums.RouterCategoryEnum; import cn.axzo.msg.center.utils.JSONObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -13,6 +15,7 @@ import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import org.apache.commons.collections.CollectionUtils; import java.io.Serializable; import java.util.List; @@ -97,6 +100,15 @@ public class MessageTemplateDTO implements Serializable { private JSONObject pushData; + public boolean hasPresetButtons() { + List buttons = msgTemplateRouter.getRouteButtons(); + if (CollectionUtils.isEmpty(buttons)) { + return false; + } + return buttons.stream() + .anyMatch(btn -> btn.getCategory() == RouterCategoryEnum.PRESET_BUTTON); + } + public boolean isCardJumpToBiz() { if (msgTemplateRouter == null) { return false; diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java index 6b75c480..8144ae7e 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java @@ -132,7 +132,7 @@ public class TodoRangeQueryService { .eq(Todo::getType, request.determineToDoType()) .eq(Todo::getExecutorPersonId, request.getPersonId()) //判断是否支持批量过滤 - .and(request.getSupportBatchProcess() != null, nested -> nested.eq(Todo::getSupportBatchProcess, request.getSupportBatchProcess().getCode())) + .eq(request.getSupportBatchProcess() != null, Todo::getSupportBatchProcess, request.getSupportBatchProcess()) // like search .and(StringUtils.isNotBlank(request.getTitle()), nested -> nested .like(Todo::getTitle, request.getTitle()) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoLogger.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoLogger.java index a4448cd1..ee3efe19 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoLogger.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoLogger.java @@ -40,6 +40,11 @@ class TodoLogger { logTodosUpdated(ctx, todos); } + void logSetTodoProcessing(TodoRequestContext ctx, List todos) { + ctx.addLogContent("state", PendingMessageStateEnum.PROCESSING); + logTodosUpdated(ctx, todos); + } + void logTodoRollback(TodoRequestContext ctx, List todos) { ctx.addLogContent("state", PendingMessageStateEnum.HAS_BEEN_SENT); logTodosUpdated(ctx, todos); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java index c4d7eb1e..560d3b34 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java @@ -11,7 +11,6 @@ import cn.axzo.msg.center.domain.entity.Todo; import cn.axzo.msg.center.domain.entity.TodoBusiness; import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; import cn.axzo.msg.center.message.domain.dto.MessageTemplateDTO; -import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO; import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam; import cn.axzo.msg.center.message.service.MessageTemplateNewService; import cn.axzo.msg.center.message.service.todo.manage.event.NewTodoEvent; @@ -133,12 +132,9 @@ public class TodoManager { //批量默认为false YesOrNo supportBatchProcess = request.getSupportBatchProcess() == null ? YesOrNo.NO : request.getSupportBatchProcess(); //业务待办设置是否批量处理 - if (template.getMsgCategory().equals(MessageCategoryEnum.BIZ_PENDING_MESSAGE)) { - List routeButtons = template.getMsgTemplateRouter().getRouteButtons(); - if (CollectionUtils.isNotEmpty(routeButtons)) { - supportBatchProcess = YesOrNo.YES; - } - } + if (template.getMsgCategory() == MessageCategoryEnum.BIZ_PENDING_MESSAGE + && template.hasPresetButtons()) + supportBatchProcess = YesOrNo.YES; request.setSupportBatchProcess(supportBatchProcess); List todos = todoRecordBuilder.buildTodos( request, ctx.getRequestNo(), ext, business); @@ -397,7 +393,7 @@ public class TodoManager { if (updated) { List updatedTodos = todoDao.getByIdentityCodes(identityCodes); TodoRequestContext ctx = TodoRequestContext.create("batchSetProcessing", identityCodes); - todoLogger.logTodosUpdated(ctx, updatedTodos); + todoLogger.logSetTodoProcessing(ctx, updatedTodos); } return updated; }