diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java index 627196f..2b4dc04 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingScanSnAndOrderStrategyServiceImpl.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.shippingscan.strategy; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesCustomerSnTransformService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEmergencyLocationService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; @@ -67,8 +68,12 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin @Autowired private IMesEmergencyLocationService mesEmergencyLocationService; + @Autowired + private IMesCustomerSnTransformService mesCustomerSnTransformService; + @Override public MesSortShippingCheckModel doScan(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup) { + final String barcode = mesCustomerSnTransformService.transformBarCodeGm(model.getSn()); if (!Objects.isNull(model.getLastShippingDetailId())) { //更新单据信息 model.getDetailList().stream().filter(t -> t.getId().equals(model.getLastShippingDetailId())).forEach(detail -> { @@ -76,13 +81,13 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin if (StringUtils.isEmpty(detail.getVisualOrderNo())) { //校验目视单是否已经扫描 checkVisualOrderNoIsScan(model); - detail.setVisualOrderNo(model.getSn()); + detail.setVisualOrderNo(barcode); model.setSn(detail.getBarcode()); model.setMsg(String.format("条码【%s】扫描成功,请扫描下一个目视单",model.getSn())); } else { //校验条码是否已经扫描 checkIsScan(model); - detail.setBarcode(model.getSn()); + detail.setBarcode(barcode); model.setMsg(String.format("目视单【%s】扫描成功,请扫描下一个条码",model.getSn())); } MesProduceSn produceSn = checkSn(model); @@ -91,7 +96,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin model.setLastShippingDetailId(null); } else { //查询工单 - MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(model.getOrganizeCode(), model.getSn()); + MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(model.getOrganizeCode(), barcode); //扫描的工单或条码对应的零件 String partNo = getPartNo(model, workOrder); boolean scanFlg = false; @@ -99,10 +104,10 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin if (detail.getCustPartNo().equals(partNo) && StringUtils.isEmpty(detail.getBarcode()) && !Objects.equals(detail.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) { //校验发运明细 checkShippingDetails(model, orderManagement, shippingGroup, partNo, detail); - detail.setBarcode(model.getSn()); + detail.setBarcode(barcode); //如果第一次扫描的是目视单,先缓存数据用于第二次校验 if(!Objects.isNull(workOrder)){ - detail.setVisualOrderNo(model.getSn()); + detail.setVisualOrderNo(barcode); } //校验通过的明细ID model.setLastShippingDetailId(detail.getId());