diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java index b04a64d..608390b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java @@ -279,7 +279,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //校验是否包含 String partNo = getPartNo(mesPackageDetail, mesPackage, defineDetails); //校验条码信息 - checkSn(mesPackageDetail, packingDefine); + checkSn(mesPackageDetail, packingDefine,partNo); //物料信息 return getPart(mesPackageDetail.getOrganizeCode(), partNo); } @@ -387,13 +387,16 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer return saveMesPackageDetail; } - private void checkSn(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine) { + private void checkSn(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine,String partNo) { List produceSnList = mesProduceSnExtService.getProduceSnList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber()); if (!CollectionUtils.isEmpty(produceSnList)) { MesProduceSn nextMesProduceSn = produceSnList.stream().sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()).iterator().next(); if (!MesExtEnumUtil.PRODUCE_SN_STATUS.checkAllowBoxingErrorProofing(nextMesProduceSn.getSnStatus()) || !MesExtEnumUtil.PRODUCE_QC_STATUS.checkAllowBoxingErrorProofing(nextMesProduceSn.getQcStatus())) { MesPcnException.throwMesBusiException("条码【%s】状态【%s】质量状态【%s】不允许操作装箱防错,请检查数据!", mesPackageDetail.getSerialNumber(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(nextMesProduceSn.getSnStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(nextMesProduceSn.getQcStatus())); } + if(!partNo.equals(nextMesProduceSn.getPartNo())){ + MesPcnException.throwMesBusiException("条码【%s】零件号【%s】和箱零件【%s】不匹配,请检查数据!", mesPackageDetail.getSerialNumber(), nextMesProduceSn.getPartNo(), partNo); + } } //查询加工记录 List productionRecordList = mesProductionRecordService.findProductionRecordList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber()); @@ -431,6 +434,10 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer if (Objects.isNull(partNo)) { MesPcnException.throwMesBusiException("零件条码【%s】未匹配到符合条码规则的数据,请检查数据!", mesPackageDetail.getSerialNumber()); } + //校验零件是否一致 + if (!partNo.equals(mesPackage.getPartNo())) { + MesPcnException.throwMesBusiException("零件条码【%s】包装定义明细零件【%s】和箱零件【%s】不一致,请检查数据!", mesPackageDetail.getSerialNumber(), partNo, mesPackage.getPartNo()); + } return partNo; }