diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java index fdedcaa..844e7ca 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesBomService; +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesBomDao; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.model.MesBomTreeModel; @@ -15,6 +16,7 @@ import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesBom; +import cn.estsh.i3plus.pojo.mes.bean.MesConfig; import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.util.ValidatorBean; @@ -23,6 +25,7 @@ import org.springframework.beans.BeanUtils; 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.*; import java.util.stream.Collectors; @@ -34,6 +37,9 @@ public class MesBomService extends BaseMesService implements IMesBomServ @Autowired private IMesBomDao mesBomDao; + @Autowired + private IMesConfigService mesConfigService; + protected void setPackQueryBean(MesBom bean, DdlPackBean packBean) { DdlPreparedPack.getStringEqualPack(bean.getBomVersion(), "bomVersion", packBean); DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); @@ -131,6 +137,7 @@ public class MesBomService extends BaseMesService implements IMesBomServ return new ListPager<>(list, pager); } + //报表使用的方法 public List findMesBomByPartNoAndBomVersion(String partNo, String organizeCode, String bomVersion, String bomCode, String effStartTime) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); @@ -145,12 +152,18 @@ public class MesBomService extends BaseMesService implements IMesBomServ return mesBoms; } + //生产汇报使用的方法 public List findMesBomByPartNoAndBomVersion(String partNo, String organizeCode, String bomVersion) { + + //MES汇报查询BOM是否携带结束查询条件 + MesConfig config = mesConfigService.getCfgValueByCode(organizeCode, MesExtConstWords.MES_REPORT_FIND_BOM_WITH_EFFENDTIME); + Boolean isWithEffEndTime = (null != config && !StringUtils.isEmpty(config.getCfgValue()) && config.getCfgValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? true : false; + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(bomVersion, "bomVersion", ddlPackBean); DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.EFF_START_TIME, ddlPackBean); - DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime(true), MesExtConstWords.EFF_END_TIME, ddlPackBean); + if (isWithEffEndTime) DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime(true), MesExtConstWords.EFF_END_TIME, ddlPackBean); DdlPreparedPack.getOrderBy(MesExtConstWords.EFF_START_TIME, CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), ddlPackBean); List mesBoms = baseRDao.findByHqlWhere(ddlPackBean); if (CollectionUtils.isEmpty(mesBoms)) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 16437a1..622daf9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -2255,6 +2255,7 @@ public class MesWorkOrderService extends BaseMesService implements } } } + public List findMesBomByPartNoAndBomVersion(String partNo, String organizeCode, String bomVersion) { //MES汇报查询BOM是否携带结束查询条件 diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java index 846a005..b9f149e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java @@ -1,11 +1,13 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.roundness; +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.base.IMesCustSoftInfoService; import cn.estsh.i3plus.ext.mes.api.base.strategy.IRoundnessStrategy; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBomService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesPartSapService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesWorkOrderService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi.MesCreateWorkOrderImpl; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -101,6 +103,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { @Autowired private MesCreateWorkOrderImpl mesCreateWorkOrder; + @Autowired + private IMesConfigService mesConfigService; + @Override public void execute(MesPartProdGroup partProdGroup, List sortInfoList, List details) { try { @@ -791,12 +796,18 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { private List getPlatBom(String partNo, String effectiveTime, String bomCode, String organizeCode) { + + //MES汇报查询BOM是否携带结束查询条件 + MesConfig config = mesConfigService.getCfgValueByCode(organizeCode, MesExtConstWords.MES_REPORT_FIND_BOM_WITH_EFFENDTIME); + Boolean isWithEffEndTime = (null != config && !org.springframework.util.StringUtils.isEmpty(config.getCfgValue()) && config.getCfgValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? true : false; + if (bomCode == null) { //首先根据虚结构的零件号查询出最新的一条bom信息作为bomCode DdlPackBean bomCodePackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", bomCodePackBean); - DdlPreparedPack.getTimeBetweenCol(effectiveTime, "effStartTime", "effEndTime", bomCodePackBean, false); - DdlPreparedPack.getOrderBy("effStartTime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), bomCodePackBean); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, bomCodePackBean); + DdlPreparedPack.getStringSmallerPack(effectiveTime, MesExtConstWords.EFF_START_TIME, bomCodePackBean); + if (isWithEffEndTime) DdlPreparedPack.getStringBiggerPack(effectiveTime, MesExtConstWords.EFF_END_TIME, bomCodePackBean); + DdlPreparedPack.getOrderBy(MesExtConstWords.EFF_START_TIME, CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), bomCodePackBean); List bomList = bomRao.findByHqlTopWhere(bomCodePackBean, 1); if (bomList == null || bomList.isEmpty()) { return new ArrayList<>(); @@ -806,9 +817,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { List bomResultList = new ArrayList<>(); DdlPackBean bomPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(bomCode, "bomCode", bomPackBean); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", bomPackBean); - DdlPreparedPack.getStringSmallerPack(effectiveTime, "effStartTime", bomPackBean); - DdlPreparedPack.getStringBiggerPack(effectiveTime, "effEndTime", bomPackBean); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, bomPackBean); + DdlPreparedPack.getStringSmallerPack(effectiveTime, MesExtConstWords.EFF_START_TIME, bomPackBean); + if (isWithEffEndTime) DdlPreparedPack.getStringBiggerPack(effectiveTime, MesExtConstWords.EFF_END_TIME, bomPackBean); List bomList = bomRao.findByHqlWhere(bomPackBean); for (MesBom bom : bomList) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesCreateWorkOrderImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesCreateWorkOrderImpl.java index 887321a..33d817f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesCreateWorkOrderImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesCreateWorkOrderImpl.java @@ -1,9 +1,11 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi; +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.busi.IMesCreateWorkOrder; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBomService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesPartSapService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesWorkOrderService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -89,6 +91,9 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { @Autowired private MesCustomerCarModelRepository mesCustomerCarModelRepository; + @Autowired + private IMesConfigService mesConfigService; + @Transactional(propagation = Propagation.REQUIRES_NEW) public void createWorkOrder(MesPartProdGroup partProdGroup, MesPartProdGroupDetail mesPartProdGroupDetail, MesPartSap partSap, MesCustSortInfo sortInfo,Long productSeq) { @@ -804,12 +809,18 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { } private List getPlatBom(String partNo, String effectiveTime, String bomCode, String organizeCode) { + + //MES汇报查询BOM是否携带结束查询条件 + MesConfig config = mesConfigService.getCfgValueByCode(organizeCode, MesExtConstWords.MES_REPORT_FIND_BOM_WITH_EFFENDTIME); + Boolean isWithEffEndTime = (null != config && !org.springframework.util.StringUtils.isEmpty(config.getCfgValue()) && config.getCfgValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? true : false; + if (bomCode == null) { //首先根据虚结构的零件号查询出最新的一条bom信息作为bomCode DdlPackBean bomCodePackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", bomCodePackBean); - DdlPreparedPack.getTimeBetweenCol(effectiveTime, "effStartTime", "effEndTime", bomCodePackBean, false); - DdlPreparedPack.getOrderBy("effStartTime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), bomCodePackBean); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, bomCodePackBean); + DdlPreparedPack.getStringSmallerPack(effectiveTime, MesExtConstWords.EFF_START_TIME, bomCodePackBean); + if (isWithEffEndTime) DdlPreparedPack.getStringBiggerPack(effectiveTime, MesExtConstWords.EFF_END_TIME, bomCodePackBean); + DdlPreparedPack.getOrderBy(MesExtConstWords.EFF_START_TIME, CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), bomCodePackBean); List bomList = bomRao.findByHqlTopWhere(bomCodePackBean, 1); if (bomList == null || bomList.isEmpty()) { return new ArrayList<>(); @@ -818,10 +829,11 @@ public class MesCreateWorkOrderImpl implements IMesCreateWorkOrder { } List bomResultList = new ArrayList<>(); DdlPackBean bomPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(bomCode, "bomCode", bomPackBean); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", bomPackBean); - DdlPreparedPack.getStringSmallerPack(effectiveTime, "effStartTime", bomPackBean); - DdlPreparedPack.getStringBiggerPack(effectiveTime, "effEndTime", bomPackBean); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, bomPackBean); + DdlPreparedPack.getStringSmallerPack(effectiveTime, MesExtConstWords.EFF_START_TIME, bomPackBean); + if (isWithEffEndTime) DdlPreparedPack.getStringBiggerPack(effectiveTime, MesExtConstWords.EFF_END_TIME, bomPackBean); List bomList = bomRao.findByHqlWhere(bomPackBean); for (MesBom bom : bomList) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSortRuleCfgOfflineServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSortRuleCfgOfflineServiceImpl.java index 45647a5..fd82bd4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSortRuleCfgOfflineServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSortRuleCfgOfflineServiceImpl.java @@ -1,8 +1,10 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi; +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.busi.IMesSortRuleCfgOfflineService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBomService; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -67,8 +69,8 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS @Autowired private MesPartSapRepository partSapRao; - - + @Autowired + private IMesConfigService mesConfigService; @Transactional(propagation = Propagation.REQUIRES_NEW) @Override @@ -300,12 +302,18 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS } private List getPlatBom(String partNo, String effectiveTime, String bomCode, String organizeCode) { + + //MES汇报查询BOM是否携带结束查询条件 + MesConfig config = mesConfigService.getCfgValueByCode(organizeCode, MesExtConstWords.MES_REPORT_FIND_BOM_WITH_EFFENDTIME); + Boolean isWithEffEndTime = (null != config && !org.springframework.util.StringUtils.isEmpty(config.getCfgValue()) && config.getCfgValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) ? true : false; + if (bomCode == null) { //首先根据虚结构的零件号查询出最新的一条bom信息作为bomCode DdlPackBean bomCodePackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", bomCodePackBean); - DdlPreparedPack.getTimeBetweenCol(effectiveTime, "effStartTime", "effEndTime", bomCodePackBean, false); - DdlPreparedPack.getOrderBy("effStartTime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), bomCodePackBean); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, bomCodePackBean); + DdlPreparedPack.getStringSmallerPack(effectiveTime, MesExtConstWords.EFF_START_TIME, bomCodePackBean); + if (isWithEffEndTime) DdlPreparedPack.getStringBiggerPack(effectiveTime, MesExtConstWords.EFF_END_TIME, bomCodePackBean); + DdlPreparedPack.getOrderBy(MesExtConstWords.EFF_START_TIME, CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), bomCodePackBean); List bomList = bomRao.findByHqlTopWhere(bomCodePackBean, 1); if (bomList == null || bomList.isEmpty()) { return new ArrayList<>(); @@ -315,9 +323,9 @@ public class MesSortRuleCfgOfflineServiceImpl implements IMesSortRuleCfgOfflineS List bomResultList = new ArrayList<>(); DdlPackBean bomPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(bomCode, "bomCode", bomPackBean); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", bomPackBean); - DdlPreparedPack.getStringSmallerPack(effectiveTime, "effStartTime", bomPackBean); - DdlPreparedPack.getStringBiggerPack(effectiveTime, "effEndTime", bomPackBean); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, bomPackBean); + DdlPreparedPack.getStringSmallerPack(effectiveTime, MesExtConstWords.EFF_START_TIME, bomPackBean); + if (isWithEffEndTime) DdlPreparedPack.getStringBiggerPack(effectiveTime, MesExtConstWords.EFF_END_TIME, bomPackBean); List bomList = bomRao.findByHqlWhere(bomPackBean); for (MesBom bom : bomList) {