diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index be3f4f4..824f421 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -197,12 +197,14 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService //根据条码状态判断 是不是已下线条码 //若不是已下线的条码则提示 条码状态 请选择已下线的条码 if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()) { - throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择【%s】状态的条码", serialNumber, produceSn.getSnStatus(), MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue())); + throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】状态的条码", serialNumber, MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()), + MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getDescription())); } //是否需要判断条码质量状态 if (produceSn.getQcStatus() != MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) { - throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择【%s】状态的条码", serialNumber, produceSn.getSnStatus(), MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue())); + throw new ImppBusiException(String.format("【%s】此条码质量状态为【%s】,请选择【%s】状态的条码", serialNumber, MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus()), + MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getDescription())); } return produceSn; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java index a7bd15f..6e5feab 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesNcProcessingService.java @@ -71,7 +71,17 @@ public class MesNcProcessingService implements IMesNcProcessingService { @Autowired private IMesNcProcessingDao ncProcessingDao; + @Autowired + private MesProduceSnRepository produceSnRepository; + /*** + * 查询产品条码或零件号 + * @param serialNumber + * @param partNo + * @param lot + * @param org + * @return + */ @Override public MesNcProcessingModel queryProduceSn(String serialNumber, String partNo, String lot, String org) { @@ -144,6 +154,13 @@ public class MesNcProcessingService implements IMesNcProcessingService { } } + /** + * 检查物料 + * + * @param defectRecordList + * @param org + * @return + */ private MesPart checkPart(List defectRecordList, String org) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); @@ -178,6 +195,13 @@ public class MesNcProcessingService implements IMesNcProcessingService { return part; } + /** + * 检查不良条码 + * + * @param serialNumber + * @param org + * @return + */ private List queryDefectRecordBySerialNumber(String serialNumber, String org) { @@ -336,6 +360,15 @@ public class MesNcProcessingService implements IMesNcProcessingService { } if (type == MesExtEnumUtil.NC_TYPE.NORMAL.getValue() || type == MesExtEnumUtil.NC_TYPE.RELEASE.getValue()) { + + String serialNumber = defectRecordList.get(0).getSerialNumber(); + + MesProduceSn sn = checkProduceSn(serialNumber, org); + sn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); + sn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); + ConvertBean.serviceModelUpdate(sn, AuthUtil.getSessionUser().getUserName()); + produceSnRepository.save(sn); + MesMove move = new MesMove(); move.setMatnr(part.getPartNo()); move.setOrganizeCode(org); @@ -359,4 +392,31 @@ public class MesNcProcessingService implements IMesNcProcessingService { defectRecordRepository.saveAll(defectRecordList); } + + private MesProduceSn checkProduceSn(String serialNumber, String org) { + //根据扫描的条码查询条码是否存在 + DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); + DdlPreparedPack.getStringEqualPack(serialNumber, "productSn", packBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); + MesProduceSn produceSn = produceSnRepository.getByProperty(packBean); + + //若不存在则提示条码不存在 + if (StringUtils.isEmpty(produceSn)) { + throw new ImppBusiException(String.format("【%s】此条码不存在,请检查数据", serialNumber)); + } + + //根据条码状态判断 是不是已下线条码 + //若不是已下线的条码则提示 条码状态 请选择已下线的条码 + if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()) { + throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】状态的条码", serialNumber, MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()), + MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getDescription())); + } + + //是否需要判断条码质量状态 + if (produceSn.getQcStatus() != MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) { + throw new ImppBusiException(String.format("【%s】此条码质量状态为【%s】,请选择【%s】状态的条码", serialNumber, MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus()), + MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getDescription())); + } + return produceSn; + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index 78fa52e..5aafc2a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -244,13 +244,13 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } //校验产品条码状态 必须是状态为已下线条码 if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()) { - throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】状态的条码", model.getSn(), produceSn.getSnStatus(), - MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue())); + throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】状态的条码", model.getSn(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()), + MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getDescription())); } //校验产品质量状态 必须是状态为合格条码 if (produceSn.getQcStatus() != MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) { - throw new ImppBusiException(String.format("【%s】此条码质量状态为【%s】,请选择状态为【%s】状态的条码", model.getSn(), produceSn.getQcStatus(), - MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue())); + throw new ImppBusiException(String.format("【%s】此条码质量状态为【%s】,请选择【%s】状态的条码", model.getSn(), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus()), + MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getDescription())); } Optional optional = model.getDetailList().stream().filter(k -> !StringUtils.isEmpty(k.getBarcode()) && k.getBarcode().equals(model.getSn())).findFirst(); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index a1e5de9..2517f15 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -380,13 +380,14 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { //根据条码状态判断 是不是已下线条码 //若不是已下线的条码则提示 条码状态 请选择已下线的条码 if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()) { - throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择【%s】状态的条码", serialNumber, produceSn.getSnStatus(), MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue())); + throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】状态的条码", serialNumber, MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()), + MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getDescription())); } //是否需要判断条码质量状态 if (produceSn.getQcStatus() != MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) { - throw new ImppBusiException(String.format("【%s】此条码质量状态为【%s】,请选择【%s】状态的条码", serialNumber, produceSn.getQcStatus(), - MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue())); + throw new ImppBusiException(String.format("【%s】此条码质量状态为【%s】,请选择【%s】状态的条码", serialNumber, MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus()), + MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getDescription())); } return produceSn; }