Merge remote-tracking branch 'origin/dev-temp-nht-202501150000-44584' into uat

tags/yfai-pcn-ext-v2.81
王杰 4 months ago
commit e5cb750081

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

Loading…
Cancel
Save