From 3218721983af9be30a78ec5e2fc45c41f9a80813 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 25 Sep 2024 16:39:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=8F=91=E8=BF=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesSortShippingCheckService.java | 16 ++++++++-------- ...sShippingScanSnAndOrderStrategyServiceImpl.java | 22 +++++++++++++--------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index 37c7d08..5ee9b3a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -109,11 +109,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //发运单号 model.setShippingCode(orderManagement.getShippingCode()); //零件发运组 - model.setMesPartShippingGroup(getMesPartShippingGroup(shippingOrderManagement.getOrganizeCode(),shippingOrderManagement.getShippingGroupCode())); + model.setMesPartShippingGroup(getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode())); //发运单明细 - model.setDetailList(getMesShippingOrderManagementDetails(shippingOrderManagement, orderManagement)); + model.setDetailList(getMesShippingOrderManagementDetails(orderManagement)); //最近扫描完成的发运单号 - MesShippingOrderManagement lastShippingOrder = getLastShippingOrder(shippingOrderManagement); + MesShippingOrderManagement lastShippingOrder = getLastShippingOrder(orderManagement.getOrganizeCode()); if (!Objects.isNull(lastShippingOrder)) { model.setRecentlyScanShippingCode(lastShippingOrder.getShippingCode()); } @@ -281,14 +281,14 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } } - private List getMesShippingOrderManagementDetails(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement) { - DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode()); + private List getMesShippingOrderManagementDetails(MesShippingOrderManagement orderManagement) { + DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "pid", orderDetailPackBean); DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),"status",orderDetailPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"custInfoSeq"}, orderDetailPackBean); List detailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderDetailPackBean); if(CollectionUtils.isEmpty(detailList)){ - throw new ImppBusiException(String.format("发运单【%s】明细信息不存在,请检查数据!", shippingOrderManagement.getShippingCode())); + throw new ImppBusiException(String.format("发运单【%s】明细信息不存在,请检查数据!", orderManagement.getShippingCode())); } //已扫描数据 detailList.forEach(k -> { @@ -299,8 +299,8 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService return detailList; } - private MesShippingOrderManagement getLastShippingOrder(MesShippingOrderManagement shippingOrderManagement) { - DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode()); + private MesShippingOrderManagement getLastShippingOrder(String organizeCode) { + DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), "status", recentlyOrderPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"modifyDatetime"}, recentlyOrderPackBean); return shippingOrderManagementRepository.getByProperty(recentlyOrderPackBean); 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 f82580b..e59d6b9 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 @@ -71,13 +71,13 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin public MesSortShippingCheckModel doScan(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup) { if (!Objects.isNull(model.getLastShippingDetailId())) { //校验目视单是否已经扫描 - if (model.getDetailList().stream().anyMatch(t -> t.getVisualOrderNo().equals(model.getSn()))) { + if (model.getDetailList().stream().anyMatch(t -> !StringUtils.isEmpty(t.getVisualOrderNo()) && t.getVisualOrderNo().equals(model.getSn()))) { throw new ImppBusiException(String.format("【%s】此目视单已经扫描过,请检查数据!", model.getSn())); } //更新单据信息 model.getDetailList().stream().filter(t -> t.getId().equals(model.getLastShippingDetailId())).forEach(detail -> { detail.setVisualOrderNo(model.getSn()); - updateOrderManagementDetails(orderManagement, detail, getWorkOrder(model, detail.getBarcode()), model.getUserInfo()); + updateOrderManagementDetails(orderManagement, detail, getWorkOrder(model, detail), model.getUserInfo()); }); model.setLastShippingDetailId(null); } else { @@ -104,18 +104,22 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin } - private MesWorkOrder getWorkOrder(MesSortShippingCheckModel model, String barCode) { + private MesWorkOrder getWorkOrder(MesSortShippingCheckModel model, MesShippingOrderManagementDetail detail) { MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(model.getOrganizeCode(), model.getSn()); if (Objects.isNull(workOrder)) { - throw new ImppBusiException(String.format("目视单【%s】信息不存在,请检查数据!", model.getSn())); + throw new ImppBusiException(String.format("目视单【%s】不存在,请检查数据!", model.getSn())); } - //校验状态 + //校验目视单状态 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.ORDER_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()))); } //校验条码是否匹配 - if (!Objects.equals(barCode, workOrder.getSn())) { - throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】不匹配!", model.getSn(), workOrder.getSn(), barCode)); + if (!Objects.equals(detail.getBarcode(), workOrder.getSn())) { + throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】,不匹配!", model.getSn(), workOrder.getSn(), detail.getBarcode())); + } + //校验零件是否匹配 + if (!Objects.equals(detail.getPartNo(), workOrder.getPartNo())) { + throw new ImppBusiException(String.format("目视单【%s】零件【%s】与发运单零件【%s】,不匹配!", model.getSn(), workOrder.getPartNo(), detail.getPartNo())); } return workOrder; } @@ -171,7 +175,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin private MesProduceSn getMesProduceSn(String organizeCode, String productSn) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(productSn, "productSn", packBean); + DdlPreparedPack.getStringEqualPack(productSn, "custSn", packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); return produceSnRepository.getByProperty(packBean); }