diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesMediaFileCfgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesMediaFileCfgController.java index a91f654..225cc61 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesMediaFileCfgController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesMediaFileCfgController.java @@ -87,7 +87,7 @@ public class MesMediaFileCfgController extends BaseMesController implements IMesPartTransferService { + @Override protected void setPackQueryBean(MesPartTransfer bean, DdlPackBean packBean) { DdlPreparedPack.getStringLikerPack(bean.getCustCode(), "custCode", packBean); + DdlPreparedPack.getStringLikerPack(bean.getCustOrganizeCode(), "custOrganizeCode", packBean); DdlPreparedPack.getStringLikerPack(bean.getMessageNo(), "messageNo", packBean); } + @Override + protected void onInsertBean(MesPartTransfer item) { + // 数据校验 + ValidatorBean.checkNotNull(item.getOrganizeCode(), "工厂号不能为空"); + ValidatorBean.checkNotNull(item.getCustCode(), "custCode不能为空" ); + ValidatorBean.checkNotNull(item.getCustOrganizeCode(), "custOrganizeCode不能为空" ); + ValidatorBean.checkNotNull(item.getMessageNo(), "messageNo不能为空"); + + //唯一性校验 + DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getCustCode(), "custCode", packBean); + DdlPreparedPack.getStringEqualPack(item.getCustOrganizeCode(), "custOrganizeCode", packBean); + DdlPreparedPack.getStringEqualPack(item.getMessageNo(), "messageNo", packBean); + + boolean flg = baseRDao.isExitByHql(packBean); + if (flg) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("客户零件转化配置客户代码【%s】信息点代码【%s】已经存在,请检查数据", + item.getCustCode(),item.getMessageNo() ) + .build(); + } + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProdShiftRecordServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProdShiftRecordServiceImpl.java index e540958..3005c3f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProdShiftRecordServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProdShiftRecordServiceImpl.java @@ -62,19 +62,19 @@ public class MesProdShiftRecordServiceImpl extends BaseMesService implements ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(mesPart.getPartNo(), "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesProductVersion.getAlternativePartList(), "bomVersion", ddlPackBean); + DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "effStartTime", ddlPackBean); + DdlPreparedPack.getOrderBy("effStartTime",CommonEnumUtil.ASC_OR_DESC.DESC.getValue(),ddlPackBean); List mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean); if (CollectionUtils.isEmpty(mesBoms)) { MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", mesWorkOrder.getPartNo(), mesProductVersion.getProductVersion()); } - return mesBoms; + MesBom next = mesBoms.iterator().next(); + //如果存在多个bomCode取最新的一个 + return mesBoms.stream().collect(Collectors.groupingBy(MesBom::getBomCode)).get(next.getBomCode()); } private MesProductVersion getMesProductVersion(MesWorkOrder mesWorkOrder) {