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 2c821c4..0605958 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 @@ -9,11 +9,17 @@ import io.swagger.annotations.ApiOperation; * @Author: simon.song */ public interface IMesConfigService { + @ApiOperation(value = "获取配置表模板代码") String getCfgValue(String org, String key); @ApiOperation(value = "获取配置表模板代码") MesConfig getCfgValueByCode(String key); + @ApiOperation(value = "根据分隔符验证是否存在元素的配置") + Boolean checkCfgValueIsContainItem(String orginzeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, String item); + + @ApiOperation(value = "验证分表配置") + Boolean checkShardingTablesObjectCfg(String orginzeCode, String cfgKey, 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 d8f381b..88fa13e 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 @@ -1,13 +1,22 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesConfig; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLogDetail; import cn.estsh.i3plus.pojo.mes.repository.MesConfigRepository; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.Arrays; +import java.util.List; /** * @Description: @@ -40,4 +49,22 @@ public class MesConfigService implements IMesConfigService { return this.configRepository.getByProperty(new String[]{"isDeleted", "isValid", "cfgCode"}, new Object[]{CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), cfgCode}); } + + @Override + public Boolean checkCfgValueIsContainItem(String orginzeCode, String cfgCode, String cfgKey, String cfgType, String splitStr, String item) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(orginzeCode); + 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 (!CollectionUtils.isEmpty(cfgValueList) && cfgValueList.contains(item)) ? true : false; + } + + @Override + public Boolean checkShardingTablesObjectCfg(String orginzeCode, String cfgKey, String item) { + return checkCfgValueIsContainItem(orginzeCode, MesExtConstWords.MES_SHARDING_TABLES_OBJECT_CFG, cfgKey, CommonEnumUtil.SOFT_TYPE.MES.name(), MesExtConstWords.SEMICOLON, item); + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesEquipmentLogDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesEquipmentLogDetailService.java index 54e7817..03f2065 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesEquipmentLogDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesEquipmentLogDetailService.java @@ -1,19 +1,29 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report; +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.busi.report.IMesEquipmentLogDetailService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLogDetail; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import java.util.ArrayList; import java.util.StringJoiner; @Service public class MesEquipmentLogDetailService extends BaseMesService implements IMesEquipmentLogDetailService { + @Autowired + private IMesConfigService configService; + @Override protected void setPackQueryBean(MesEquipmentLogDetail bean, DdlPackBean packBean) { DdlPreparedPack.getStringEqualPack(new StringJoiner(MesExtConstWords.E_UNDERLINE).add(bean.getOrganizeCode()).add(bean.getEquipId().toString()).toString(), MesExtConstWords.ORG_EQUIP_ID, packBean); @@ -26,4 +36,13 @@ public class MesEquipmentLogDetailService extends BaseMesService queryPager(MesEquipmentLogDetail bean, Pager pager) { + if (StringUtils.isEmpty(bean.getEquipId())) MesException.throwBusiException("查询条件的参数缺失设备ID[equipId]"); + String orgEquipId = new StringJoiner(MesExtConstWords.E_UNDERLINE).add(bean.getOrganizeCode()).add(bean.getEquipId().toString()).toString(); + if (!configService.checkShardingTablesObjectCfg(bean.getOrganizeCode(), MesEquipmentLogDetail.class.getSimpleName(), orgEquipId)) + return new ListPager<>(new ArrayList<>(), pager); + return super.queryPager(bean, pager); + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesWorkCellMonitorLogService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesWorkCellMonitorLogService.java index 0064b84..0b895f9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesWorkCellMonitorLogService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesWorkCellMonitorLogService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report; +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.busi.report.IMesWorkCellScanMonitorLogService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; @@ -43,6 +44,9 @@ public class MesWorkCellMonitorLogService extends BaseMesService queryWorkCellScanMonitorLogList(MesWorkCellScanMonitorConditionModel conditionModel) { @@ -142,6 +146,10 @@ public class MesWorkCellMonitorLogService extends BaseMesService findWorkCellScanMonitorLogList(MesWorkCellScanMonitorConditionModel conditionModel) { + String orgWorkCode = new StringJoiner(MesExtConstWords.E_UNDERLINE).add(conditionModel.getOrganizeCode()).add(conditionModel.getWorkCenterCode()).toString(); + + if (!configService.checkShardingTablesObjectCfg(conditionModel.getOrganizeCode(), MesWorkCellScanMonitorLog.class.getSimpleName(), orgWorkCode)) return null; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(conditionModel.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(new StringJoiner(MesExtConstWords.E_UNDERLINE).add(conditionModel.getOrganizeCode()).add(conditionModel.getWorkCenterCode()).toString(), MesExtConstWords.ORG_WORK_CODE, packBean); DdlPreparedPack.getStringEqualPack(conditionModel.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, packBean); @@ -177,8 +185,12 @@ public class MesWorkCellMonitorLogService extends BaseMesService findEquipmentLogDetailList(MesWorkCellScanMonitorConditionModel conditionModel) { + String orgEquipId = new StringJoiner(MesExtConstWords.E_UNDERLINE).add(conditionModel.getOrganizeCode()).add(conditionModel.getEquipId().toString()).toString(); + + if (!configService.checkShardingTablesObjectCfg(conditionModel.getOrganizeCode(), MesEquipmentLogDetail.class.getSimpleName(), orgEquipId)) return null; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(conditionModel.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(new StringJoiner(MesExtConstWords.E_UNDERLINE).add(conditionModel.getOrganizeCode()).add(conditionModel.getEquipId().toString()).toString(), MesExtConstWords.ORG_EQUIP_ID, packBean); + DdlPreparedPack.getStringEqualPack(orgEquipId, MesExtConstWords.ORG_EQUIP_ID, packBean); DdlPreparedPack.getNumEqualPack(conditionModel.getEquipId(), MesExtConstWords.EQUIP_ID, packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue(), MesExtConstWords.VARIABLE_TYPE, packBean); DdlPreparedPack.getNumEqualPack(conditionModel.getEquipVariableId(), MesExtConstWords.EQUIP_VARIABLE_ID, packBean); diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index 965c6fb..bbe5937 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -135,6 +135,12 @@ public class MesExtConstWords { public static final String ORG_WORK_CODE = "orgWorkCode"; //工厂_设备ID public static final String ORG_EQUIP_ID = "orgEquipId"; + //配置代码 + public static final String CFG_CODE = "cfgCode"; + //配置键 + public static final String CFG_KEY = "cfgKey"; + //配置类型 + public static final String CFG_TYPE = "cfgType"; //时间[开始/结束]条件 public static final String START_TIME_START = "startTimeStart"; @@ -218,4 +224,10 @@ public class MesExtConstWords { //英文逗号 public static final String COMMA = ","; + // ; + public static final String SEMICOLON = ";"; + + // 分表配置 + public static final String MES_SHARDING_TABLES_OBJECT_CFG = "MES_SHARDING_TABLES_OBJECT_CFG"; + }