排序发运校验客户零件号

tags/yfai-pcn-ext-v2.3
jun 7 months ago
parent 880efd60cd
commit 0742266b50

@ -5,7 +5,6 @@ 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;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.aspect.MonitorLog; import cn.estsh.i3plus.ext.mes.pcn.apiservice.aspect.MonitorLog;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.shippingscan.IMesShippingScanStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.shippingscan.IMesShippingScanStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingCheckModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingCheckModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
@ -30,8 +29,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.*; import java.util.Comparator;
import java.util.stream.Collectors; import java.util.Objects;
import java.util.Optional;
import java.util.StringJoiner;
/** /**
* @Description : * @Description :
@ -91,7 +92,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
String partNo = getPartNo(model, workOrder); String partNo = getPartNo(model, workOrder);
boolean scanFlg = false; boolean scanFlg = false;
for (MesShippingOrderManagementDetail detail : model.getDetailList()) { for (MesShippingOrderManagementDetail detail : model.getDetailList()) {
if (detail.getPartNo().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(model.getSn());
@ -118,7 +119,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
//校验条码是否已经扫描 //校验条码是否已经扫描
checkIsScan(model); checkIsScan(model);
//如果扫描的是条码,校验条码 //如果扫描的是条码,校验条码
return checkSn(model).getPartNo(); return checkSn(model).getCustPartNo();
}else{ }else{
//校验目视单是否已经扫描 //校验目视单是否已经扫描
checkVisualOrderNoIsScan(model); checkVisualOrderNoIsScan(model);
@ -126,7 +127,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
if (MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() != workOrder.getWorkOrderStatus() || MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue() != workOrder.getQcStatus()) { 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.getPartNo(); return workOrder.getCustPartNo();
} }
} }
@ -144,8 +145,8 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
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.getPartNo(), workOrder.getPartNo())) { if (!Objects.equals(produceSn.getCustPartNo(), workOrder.getCustPartNo())) {
throw new ImppBusiException(String.format("目视单【%s】零件【%s】与发运单零件【%s】不匹配", detail.getVisualOrderNo(), workOrder.getPartNo(), detail.getPartNo())); throw new ImppBusiException(String.format("目视单【%s】零件【%s】与发运单零件【%s】不匹配", detail.getVisualOrderNo(), workOrder.getCustPartNo(), detail.getCustPartNo()));
} }
return workOrder; return workOrder;
} }
@ -162,7 +163,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
//获取明细中最小的 //获取明细中最小的
Optional<String> minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) Optional<String> minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER))
.min(Comparator.comparingLong(MesShippingOrderManagementDetail::getCustInfoSeq)).map(MesShippingOrderManagementDetail::getPartNo); .min(Comparator.comparingLong(MesShippingOrderManagementDetail::getCustInfoSeq)).map(MesShippingOrderManagementDetail::getCustPartNo);
//若扫描的不是最小顺序 则报错 //若扫描的不是最小顺序 则报错
if (minPartNo.isPresent() && !minPartNo.get().equals(partNo)) { if (minPartNo.isPresent() && !minPartNo.get().equals(partNo)) {
throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误请检查数据", model.getSn())); throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误请检查数据", model.getSn()));

Loading…
Cancel
Save