|
|
@ -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());
|
|
|
|