diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java index 7651773..ea0862a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java @@ -12,10 +12,8 @@ import cn.estsh.i3plus.pojo.base.common.Pager; 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.MesMaterialSn; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCut; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCutMaterial; +import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.repository.MesCutModifyRawLengthRecordRepository; import cn.estsh.i3plus.pojo.mes.repository.MesMaterialSnRepository; import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCutMaterialRepository; import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCutRepository; @@ -52,6 +50,9 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer @Autowired private MesMaterialSnRepository materialSnRepository; + @Autowired + private MesCutModifyRawLengthRecordRepository cutModifyRawLengthRecordRepository; + @Override public MesCutRawErrorProofingModel doScanSn(MesCutRawErrorProofingModel model) { @@ -64,7 +65,7 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer if (workOrderCutDb == null) MesPcnException.throwMesBusiException("裁片工单【%s】不存在", model.getSn()); - if (workOrderCutDb.getWorkOrderStatus() != MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue()) MesPcnException.throwMesBusiException("裁片工单【%s】状态不为【%s】", model.getSn(), MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue()); + if (workOrderCutDb.getWorkOrderStatus() != MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue()) MesPcnException.throwMesBusiException("裁片工单【%s】状态不为【%s】", model.getSn(), MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getDescription()); result.setCurScanType(CUR_SCAN_TYPE_BY_RAW_SN); result.setCutWorkOrderNo(workOrderCutDb.getCutWorkOrderNo()); @@ -118,14 +119,14 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer } // 已扫描长度 - Double useLength = workOrderCutMaterial.getScanLength(); - if (useLength.compareTo(length) > 0) { + Double surplusLength = workOrderCutMaterial.getMaterialDosage() - workOrderCutMaterial.getScanLength(); + if (surplusLength.compareTo(length) > 0) { materialSnDb.setSurplusLength(0.0); workOrderCutMaterial.setScanLength(workOrderCutMaterial.getScanLength() + length); result.setIsRedirect(CommonEnumUtil.FALSE); result.setShowInfo("长度不足,请继续扫描条码"); } else { - materialSnDb.setSurplusLength(length - useLength); + materialSnDb.setSurplusLength(length - surplusLength); // 已满足扫描总长度 修改工单状态为已校验原材料 DdlPackBean packBean1 = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(model.getCutWorkOrderNo(), MesPcnExtConstWords.CUT_WORK_ORDER_NO, packBean); @@ -179,12 +180,16 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer if (materialSnDb == null) MesPcnException.throwMesBusiException("条码【%s】不存在", model.getSn()); - if (materialSnDb.getSurplusLength() < model.getSubLength()) MesPcnException.throwMesBusiException("条码【%s】减去长度【%s】大于剩余长度", materialSnDb.getSurplusLength(), model.getSubLength()); + if (model.getSubLength() == null) MesPcnException.throwMesBusiException("条码【%s】为填减去长度", model.getSn()); + + if (materialSnDb.getSurplusLength() < model.getSubLength()) MesPcnException.throwMesBusiException("条码【%s】减去长度【%s】大于剩余长度【%s】", model.getSn(), materialSnDb.getSurplusLength(), model.getSubLength()); materialSnDb.setSurplusLength(materialSnDb.getSurplusLength() - model.getSubLength()); ConvertBean.serviceModelUpdate(materialSnDb, model.getUserName()); materialSnRepository.save(materialSnDb); + + } private List getWorkOrderCutMaterialList(MesCutRawErrorProofingModel model) {