系统配置查询方法

tags/yfai-pcn-ext-v1.1
王杰 10 months ago
parent 98bdb40d14
commit 0439e49640

@ -3,6 +3,8 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.pojo.mes.bean.MesConfig; import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.util.List;
/** /**
* @Description: * @Description:
* @CreateDate: 2021/9/9 3:24 * @CreateDate: 2021/9/9 3:24
@ -19,10 +21,19 @@ public interface IMesConfigService {
@ApiOperation(value = "获取配置表模板代码") @ApiOperation(value = "获取配置表模板代码")
MesConfig getMesConfig(String org, String key); MesConfig getMesConfig(String org, String key);
@ApiOperation(value = "获取系统配置集合")
List<MesConfig> getConfigList(String organizeCode, String cfgCode, String cfgKey, String cfgType);
@ApiOperation(value = "根据分隔符验证是否存在元素的配置") @ApiOperation(value = "根据分隔符验证是否存在元素的配置")
Boolean checkCfgValueIsContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, String item); Boolean checkCfgValueIsContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, String item);
@ApiOperation(value = "验证分表配置") @ApiOperation(value = "验证分表配置")
Boolean checkShardingTablesObjectCfg(String organizeCode, String cfgKey, String item); Boolean checkShardingTablesObjectCfg(String organizeCode, String cfgKey, String item);
@ApiOperation(value = "根据分隔符查询存在元素的配置")
List<String> findCfgValueContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, List<String> itemList);
@ApiOperation(value = "查询分表配置")
List<String> findShardingTablesObjectCfg(String organizeCode, String cfgKey, List<String> itemList);
} }

@ -16,6 +16,7 @@ import org.springframework.util.StringUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Description: * @Description:
@ -65,20 +66,46 @@ public class MesConfigService implements IMesConfigService {
} }
@Override @Override
public Boolean checkCfgValueIsContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, String item) { public List<MesConfig> getConfigList(String organizeCode, String cfgCode, String cfgKey, String cfgType) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(cfgCode, MesPcnExtConstWords.CFG_CODE, packBean); DdlPreparedPack.getStringEqualPack(cfgCode, MesPcnExtConstWords.CFG_CODE, packBean);
DdlPreparedPack.getStringEqualPack(cfgKey, MesPcnExtConstWords.CFG_KEY, packBean); DdlPreparedPack.getStringEqualPack(cfgKey, MesPcnExtConstWords.CFG_KEY, packBean);
DdlPreparedPack.getStringEqualPack(cfgType, MesPcnExtConstWords.CFG_TYPE, packBean); DdlPreparedPack.getStringEqualPack(cfgType, MesPcnExtConstWords.CFG_TYPE, packBean);
MesConfig config = configRepository.getByProperty(packBean); return configRepository.findByHqlWhere(packBean);
if (null == config || StringUtils.isEmpty(config.getCfgValue())) return false; }
List<String> cfgValueList = Arrays.asList(config.getCfgValue().split(splitStr));
@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<String> cfgValueList = Arrays.asList(cfgValue.split(splitStr));
return (!CollectionUtils.isEmpty(cfgValueList) && cfgValueList.contains(item)) ? true : false; return (!CollectionUtils.isEmpty(cfgValueList) && cfgValueList.contains(item)) ? true : false;
} }
private String getAndMergeCfgValue(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr) {
List<MesConfig> 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 @Override
public Boolean checkShardingTablesObjectCfg(String organizeCode, String cfgKey, String item) { public Boolean checkShardingTablesObjectCfg(String organizeCode, String cfgKey, String item) {
return checkCfgValueIsContainItem(organizeCode, MesPcnExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES_PCN.name(), MesPcnExtConstWords.SEMICOLON, item); return checkCfgValueIsContainItem(organizeCode, MesPcnExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES_PCN.name(), MesPcnExtConstWords.COMMA, item);
}
@Override
public List<String> findCfgValueContainItem(String organizeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, List<String> itemList) {
String cfgValue = getAndMergeCfgValue(organizeCode, cfgCode, cfgKey, cfgType, splitStr);
if (StringUtils.isEmpty(cfgValue)) return null;
List<String> cfgValueList = Arrays.asList(cfgValue.split(splitStr));
if (CollectionUtils.isEmpty(cfgValueList)) return null;
return itemList.stream().filter(cfgValueList::contains).collect(Collectors.toList());
}
@Override
public List<String> findShardingTablesObjectCfg(String organizeCode, String cfgKey, List<String> itemList) {
if(CollectionUtils.isEmpty(itemList)) return null;
return findCfgValueContainItem(organizeCode, MesPcnExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES_PCN.name(), MesPcnExtConstWords.COMMA, itemList);
} }

@ -144,9 +144,9 @@ public class MesProductionProcessContextStepService extends BaseStepService impl
public MesProductionProcessContext productionPwdContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) { public MesProductionProcessContext productionPwdContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext) {
List<MesConfig> configList = configService.doCachedConfigList(MesPcnExtConstWords.PRODUCTION_PWD_CFG, reqBean.getOrganizeCode()); List<MesConfig> configList = configService.doCachedConfigList(MesPcnExtConstWords.PRODUCTION_PWD_CFG, reqBean.getOrganizeCode());
Map<String, List<MesConfig>> cfgKeyMap = CollectionUtils.isEmpty(configList) ? null : configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgKey()))).collect(Collectors.groupingBy(MesConfig::getCfgKey)); Map<String, List<MesConfig>> cfgKeyMap = CollectionUtils.isEmpty(configList) ? null : configList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCfgKey()))).collect(Collectors.groupingBy(MesConfig::getCfgKey));
return productionProcessContext.finishCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.CAVITY_FINISH_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.CAVITY_FINISH_CODE).get(0).getCfgValue() : MesPcnExtConstWords.CAVITY_FINISH_CODE). return productionProcessContext.finishCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.CAVITY_FINISH_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.CAVITY_FINISH_CODE).get(0).getCfgValue() : MesPcnExtConstWords.CAVITY_FINISH_CODE)
craftJumpCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.CRAFT_JUMP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.CRAFT_JUMP_CODE).get(0).getCfgValue() : MesPcnExtConstWords.CRAFT_JUMP_CODE). .craftJumpCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.CRAFT_JUMP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.CRAFT_JUMP_CODE).get(0).getCfgValue() : MesPcnExtConstWords.CRAFT_JUMP_CODE)
assemblySkipCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.ASSEMBLY_SKIP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.ASSEMBLY_SKIP_CODE).get(0).getCfgValue() : MesPcnExtConstWords.ASSEMBLY_SKIP_CODE); .assemblySkipCode((!CollectionUtils.isEmpty(cfgKeyMap) && cfgKeyMap.containsKey(MesPcnExtConstWords.ASSEMBLY_SKIP_CODE)) ? cfgKeyMap.get(MesPcnExtConstWords.ASSEMBLY_SKIP_CODE).get(0).getCfgValue() : MesPcnExtConstWords.ASSEMBLY_SKIP_CODE);
} }
//验证组织模型有效性 //验证组织模型有效性

Loading…
Cancel
Save