|
|
|
@ -60,9 +60,6 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
|
|
|
|
|
private MesCustomerPartRepository mesCustomerPartRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesConfigService mesConfigService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesWorkOrderExtService mesWorkOrderExtService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -76,10 +73,12 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
|
|
|
|
|
checkVisualOrderNoIsScan(model);
|
|
|
|
|
detail.setVisualOrderNo(model.getSn());
|
|
|
|
|
model.setSn(detail.getBarcode());
|
|
|
|
|
model.setMsg(String.format("条码【%s】扫描成功,请扫描下一个目视单",model.getSn()));
|
|
|
|
|
} else {
|
|
|
|
|
//校验条码是否已经扫描
|
|
|
|
|
checkIsScan(model);
|
|
|
|
|
detail.setBarcode(model.getSn());
|
|
|
|
|
model.setMsg(String.format("目视单【%s】扫描成功,请扫描下一个条码",model.getSn()));
|
|
|
|
|
}
|
|
|
|
|
MesProduceSn produceSn = checkSn(model);
|
|
|
|
|
updateOrderManagementDetails(orderManagement, detail, getMesWorkOrder(model, produceSn, detail), produceSn, model.getUserInfo());
|
|
|
|
@ -109,6 +108,12 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
|
|
|
|
|
if (!scanFlg) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此目视单对应的【%s】物料号与发运单中物料号不匹配,请检查数据!", model.getSn(), partNo));
|
|
|
|
|
}
|
|
|
|
|
//提示信息
|
|
|
|
|
if(Objects.isNull(workOrder)){
|
|
|
|
|
model.setMsg(String.format("条码【%s】扫描成功,请扫描目视单",model.getSn()));
|
|
|
|
|
}else{
|
|
|
|
|
model.setMsg(String.format("目视单【%s】扫描成功,请扫描条码",model.getSn()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return model;
|
|
|
|
@ -125,7 +130,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
|
|
|
|
|
checkVisualOrderNoIsScan(model);
|
|
|
|
|
//校验目视单状态
|
|
|
|
|
if (MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() != workOrder.getWorkOrderStatus() || MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue() != workOrder.getQcStatus()) {
|
|
|
|
|
throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】,不允许发运!", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus())));
|
|
|
|
|
throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】,不允许发运!请检查数据!", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus())));
|
|
|
|
|
}
|
|
|
|
|
return workOrder.getCustPartNo();
|
|
|
|
|
}
|
|
|
|
@ -138,15 +143,15 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
|
|
|
|
|
}
|
|
|
|
|
//校验目视单状态
|
|
|
|
|
if (MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() != workOrder.getWorkOrderStatus() || MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue() != workOrder.getQcStatus()) {
|
|
|
|
|
throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】,不允许发运!", detail.getVisualOrderNo(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus())));
|
|
|
|
|
throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】,不允许发运!请检查数据!", detail.getVisualOrderNo(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus())));
|
|
|
|
|
}
|
|
|
|
|
//校验条码是否匹配
|
|
|
|
|
if (!Objects.equals(produceSn.getCustSn(), workOrder.getCustSn())) {
|
|
|
|
|
throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!", detail.getVisualOrderNo(), workOrder.getCustSn(), produceSn.getCustSn()));
|
|
|
|
|
throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!请检查数据!", detail.getVisualOrderNo(), workOrder.getCustSn(), produceSn.getCustSn()));
|
|
|
|
|
}
|
|
|
|
|
//校验零件是否匹配
|
|
|
|
|
if (!Objects.equals(produceSn.getCustPartNo(), workOrder.getCustPartNo())) {
|
|
|
|
|
throw new ImppBusiException(String.format("目视单【%s】零件【%s】与发运单零件【%s】,不匹配!", detail.getVisualOrderNo(), workOrder.getCustPartNo(), detail.getCustPartNo()));
|
|
|
|
|
throw new ImppBusiException(String.format("目视单【%s】零件【%s】与发运单零件【%s】,不匹配!请检查数据!", detail.getVisualOrderNo(), workOrder.getCustPartNo(), detail.getCustPartNo()));
|
|
|
|
|
}
|
|
|
|
|
return workOrder;
|
|
|
|
|
}
|
|
|
|
@ -213,12 +218,12 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
|
|
|
|
|
private void checkStatus(MesSortShippingCheckModel model, MesProduceSn produceSn) {
|
|
|
|
|
//校验产品条码状态 必须是状态为已下线条码
|
|
|
|
|
if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() && produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getValue()) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】或【%s】状态的条码", model.getSn(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()),
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】或【%s】状态的条码,请检查数据!", model.getSn(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()),
|
|
|
|
|
MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getDescription(), MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getDescription()));
|
|
|
|
|
}
|
|
|
|
|
//校验产品质量状态 必须是状态为合格条码
|
|
|
|
|
if (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()),
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此条码质量状态为【%s】,请选择【%s】状态的条码,请检查数据!", model.getSn(), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus()),
|
|
|
|
|
MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getDescription()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|