From b08727bb8224a82c10996fcab8d3ee8b2a756b77 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 30 Jul 2024 11:36:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E9=85=8D=E7=BD=AE=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/ext/mes/api/base/IMesConfigService.java | 3 ++ .../serviceimpl/base/MesConfigService.java | 33 +++++++++++++--------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesConfigService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesConfigService.java index f8918f5..c1cb297 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesConfigService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesConfigService.java @@ -18,6 +18,9 @@ public interface IMesConfigService { @ApiOperation(value = "获取配置表模板代码") MesConfig getCfgValueByCode(String key); + @ApiOperation(value = "获取系统配置集合") + List getConfigList(String organizeCode, String cfgCode, String cfgKey, String cfgType); + @ApiOperation(value = "根据分隔符验证是否存在元素的配置") Boolean checkCfgValueIsContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, String item); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesConfigService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesConfigService.java index 06ac806..83c20d9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesConfigService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesConfigService.java @@ -51,31 +51,38 @@ public class MesConfigService implements IMesConfigService { } @Override - public Boolean checkCfgValueIsContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, String item) { + public List getConfigList(String organizeCode, String cfgCode, String cfgKey, String cfgType) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(cfgCode, MesExtConstWords.CFG_CODE, packBean); DdlPreparedPack.getStringEqualPack(cfgKey, MesExtConstWords.CFG_KEY, packBean); DdlPreparedPack.getStringEqualPack(cfgType, MesExtConstWords.CFG_TYPE, packBean); - MesConfig config = configRepository.getByProperty(packBean); - if (null == config || StringUtils.isEmpty(config.getCfgValue())) return false; - List cfgValueList = Arrays.asList(config.getCfgValue().split(splitStr)); + return configRepository.findByHqlWhere(packBean); + } + + @Override + public Boolean checkCfgValueIsContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, String item) { + String cfgValue = getAndMergeCfgValue(organizeCode, cfgCode, cfgKey, cfgType, splitStr); + if (StringUtils.isEmpty(cfgValue)) return false; + List cfgValueList = Arrays.asList(cfgValue.split(splitStr)); return (!CollectionUtils.isEmpty(cfgValueList) && cfgValueList.contains(item)) ? true : false; } + private String getAndMergeCfgValue(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr) { + List configList = getConfigList(organizeCode, cfgCode, cfgKey, cfgType); + if (CollectionUtils.isEmpty(configList)) return null; + return configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgValue()))).map(MesConfig::getCfgValue).collect(Collectors.joining(splitStr)); + } + @Override public Boolean checkShardingTablesObjectCfg(String organizeCode, String cfgKey, String item) { - return checkCfgValueIsContainItem(organizeCode, MesExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES.name(), MesExtConstWords.SEMICOLON, item); + return checkCfgValueIsContainItem(organizeCode, MesExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES.name(), MesExtConstWords.COMMA, item); } @Override public List findCfgValueContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, List itemList) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(cfgCode, MesExtConstWords.CFG_CODE, packBean); - DdlPreparedPack.getStringEqualPack(cfgKey, MesExtConstWords.CFG_KEY, packBean); - DdlPreparedPack.getStringEqualPack(cfgType, MesExtConstWords.CFG_TYPE, packBean); - MesConfig config = configRepository.getByProperty(packBean); - if (null == config || StringUtils.isEmpty(config.getCfgValue())) return null; - List cfgValueList = Arrays.asList(config.getCfgValue().split(splitStr)); + String cfgValue = getAndMergeCfgValue(organizeCode, cfgCode, cfgKey, cfgType, splitStr); + if (StringUtils.isEmpty(cfgValue)) return null; + List cfgValueList = Arrays.asList(cfgValue.split(splitStr)); if (CollectionUtils.isEmpty(cfgValueList)) return null; return itemList.stream().filter(cfgValueList::contains).collect(Collectors.toList()); } @@ -83,7 +90,7 @@ public class MesConfigService implements IMesConfigService { @Override public List findShardingTablesObjectCfg(String organizeCode, String cfgKey, List itemList) { if(CollectionUtils.isEmpty(itemList)) return null; - return findCfgValueContainItem(organizeCode, MesExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES.name(), MesExtConstWords.SEMICOLON, itemList); + return findCfgValueContainItem(organizeCode, MesExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES.name(), MesExtConstWords.COMMA, itemList); } }