From f8ebeaa01a2e2ddae39e92c5f5c4d1fc33769352 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Thu, 2 Apr 2026 11:26:36 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81=E7=B1=BB=E5=88=AB=E7=BF=BB=E8=AF=91=E5=99=A8?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=89=B9=E9=87=8F=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/service/IFlwCategoryService.java | 10 ++++++ .../impl/CategoryNameTranslationImpl.java | 34 +++++++++++++++---- .../service/impl/FlwCategoryServiceImpl.java | 19 +++++++++-- 3 files changed, 54 insertions(+), 9 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java index f66882b8d..b3e5024bd 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java @@ -5,6 +5,8 @@ import org.dromara.workflow.domain.bo.FlowCategoryBo; import org.dromara.workflow.domain.vo.FlowCategoryVo; import java.util.List; +import java.util.Map; +import java.util.Set; /** * 流程分类Service接口 @@ -29,6 +31,14 @@ public interface IFlwCategoryService { */ String selectCategoryNameById(Long categoryId); + /** + * 根据流程分类ID查询流程分类名称 + * + * @param categoryIds 流程分类ID + * @return 流程分类名称 + */ + Map selectCategoryNameByIds(Set categoryIds); + /** * 查询符合条件的流程分类列表 * diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java index 27f265fce..212f2baeb 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java @@ -3,6 +3,7 @@ package org.dromara.workflow.service.impl; import cn.hutool.core.convert.Convert; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; import org.dromara.common.translation.annotation.TranslationType; import org.dromara.common.translation.core.TranslationInterface; import org.dromara.workflow.common.ConditionalOnEnable; @@ -10,6 +11,10 @@ import org.dromara.workflow.common.constant.FlowConstant; import org.dromara.workflow.service.IFlwCategoryService; import org.springframework.stereotype.Service; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + /** * 流程分类名称翻译实现 * @@ -24,15 +29,30 @@ public class CategoryNameTranslationImpl implements TranslationInterface private final IFlwCategoryService flwCategoryService; - /** - * 将流程分类 ID 翻译为分类名称。 - * - * @param key 分类 ID - * @param other 额外参数 - * @return 分类名称 - */ @Override public String translation(Object key, String other) { return flwCategoryService.selectCategoryNameById(Convert.toLong(key)); } + + @Override + public Map translationBatch(Set keys, String other) { + Set categoryIds = collectLongIds(keys); + if (categoryIds.isEmpty()) { + return Map.of(); + } + Map categoryNames = flwCategoryService.selectCategoryNameByIds(categoryIds); + Map result = new LinkedHashMap<>(keys.size()); + for (Object key : keys) { + result.put(key, buildValue(key, categoryNames)); + } + return result; + } + + private String buildValue(Object source, Map categoryNames) { + if (source instanceof String ids) { + return joinMappedValues(ids, categoryNames::get); + } + return source == null ? null : categoryNames.get(Convert.toLong(source)); + } + } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java index 8d066ccaa..719ec0057 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java @@ -26,8 +26,7 @@ import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** * 流程分类Service业务层处理 @@ -70,6 +69,22 @@ public class FlwCategoryServiceImpl implements IFlwCategoryService, CategoryServ return ObjectUtils.notNullGetter(category, FlowCategory::getCategoryName); } + /** + * 根据流程分类ID查询流程分类名称 + * + * @param categoryIds 流程分类ID + * @return 流程分类名称 + */ + @Override + public Map selectCategoryNameByIds(Set categoryIds) { + if (CollUtil.isEmpty(categoryIds)) { + return Collections.emptyMap(); + } + List list = baseMapper.selectList(new LambdaQueryWrapper() + .select(FlowCategory::getCategoryName).in(FlowCategory::getCategoryId, categoryIds)); + return StreamUtils.toMap(list, FlowCategory::getCategoryId, FlowCategory::getCategoryName); + } + /** * 查询符合条件的流程分类列表 *