From 74f8d654b98dd7457b2749dad2d385671f51a26e Mon Sep 17 00:00:00 2001 From: jason Date: Thu, 20 Mar 2025 10:50:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E9=83=BD=E5=8F=91=E8=BF=90=E5=88=9B?= =?UTF-8?q?=E5=BB=BAasn=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesShippingLoadingCheckService.java | 6 +-- .../busi/MesSortShippingCheckService.java | 49 ++++++++++++---------- ...eckVolvoRackNoAndPartNoStrategyServiceImpl.java | 27 ++++++++---- 3 files changed, 48 insertions(+), 34 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java index 72e07cb..00aad84 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java @@ -228,9 +228,9 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS //装车单明细 List vehiclesOrderDetailList = model.getDetailList(); vehiclesOrderDetailList.forEach(k -> { - if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == k.getStatus()){ - k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.PUBLISHED.getValue()); // todo 不改变为发运状态 - } +// if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == k.getStatus()){ +// k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.PUBLISHED.getValue()); // todo 不改变为发运状态 +// } k.setSystemSyncStatus(CommonEnumUtil.FALSE); ConvertBean.serviceModelUpdate(k, userInfo); }); 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 d5afa59..353ac33 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 @@ -146,6 +146,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService if (!StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { model.setIsScanLocationCode(true); } + model.setVolvoRackNo(orderManagement.getRackNo()); //发运单号 model.setShippingCode(orderManagement.getShippingCode()); //零件发运组 @@ -323,8 +324,6 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService shippingOrderManagementDetailRepository.update(detail); break; } - - final String confirmPartType = getConfirmPartType(orderManagement); } if (!scanFlg) { @@ -350,11 +349,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService MesCustSortInfo custSoftInfo = custSoftInfoRDao.getById(Long.parseLong(workOrder.getWorkOrderSource())); if (custSoftInfo != null) { MesCimVolvoJisRackIdDetail rackIdDetail = rackIdDetailRDao.getById(custSoftInfo.getSourceId()); - if (rackIdDetail != null) { - detail.setVisualOrderNo(workOrder.getWorkOrderNo()); - return rackIdDetail.getPosition(); - } + if (rackIdDetail != null) { + detail.setVisualOrderNo(workOrder.getWorkOrderNo()); + return rackIdDetail.getPosition(); } + } return ""; } @@ -611,7 +610,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService DdlPreparedPack.getStringEqualPack(model.getVolvoRackNo(), "barCode", rackPackBean); MesVolvoRack volvoRack = mesVolvoRackRDao.getByProperty(rackPackBean); if (volvoRack == null) { - throw new ImppBusiException(String.format("无效料架条码【%s】,请重新扫描!", model.getVolvoRackNo())); + throw new ImppBusiException(String.format("无效料架条码【%s】,请检查数据!", model.getVolvoRackNo())); } } @@ -632,24 +631,28 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService orderManagement.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) { orderManagement.setStartScanTime(TimeTool.getNowTime(true)); } - //根据发运单查询装车单明细信息 - DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(),"shippingCode",packBean); - MesLoadingListDetail listDetail = listDetailRepository.getByProperty(packBean); MesLoadingList loadingList = null; - if(!Objects.isNull(listDetail)){ - packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(listDetail.getPid(), "id", packBean); - loadingList = listRepository.getByProperty(packBean); - //反填装车单信息到发运单 - if(!Objects.isNull(loadingList)){ - orderManagement.setOrderCode(loadingList.getOrderCode()); - orderManagement.setLoadingListId(loadingList.getId()); + //零件发运组 + MesPartShippingGroup shippingGroup = Objects.isNull(model.getMesPartShippingGroup()) ? getMesPartShippingGroup(orderManagement.getOrganizeCode(), orderManagement.getShippingGroupCode()) : model.getMesPartShippingGroup(); + //根据发运单查询装车单明细信息 + if (Objects.equals(shippingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue())) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(),"shippingCode",packBean); + MesLoadingListDetail listDetail = listDetailRepository.getByProperty(packBean); + if(!Objects.isNull(listDetail)){ + packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(listDetail.getPid(), "id", packBean); + loadingList = listRepository.getByProperty(packBean); + //反填装车单信息到发运单 + if(!Objects.isNull(loadingList)){ + orderManagement.setOrderCode(loadingList.getOrderCode()); + orderManagement.setLoadingListId(loadingList.getId()); + } + //更新装车单明细对应的发运单状态=发运 + listDetail.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + ConvertBean.serviceModelUpdate(listDetail, userInfo); + listDetailRepository.update(listDetail); } - //更新装车单明细对应的发运单状态=发运 - listDetail.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); - ConvertBean.serviceModelUpdate(listDetail, userInfo); - listDetailRepository.update(listDetail); } //发运单状态修改为校验完成 orderManagement.setSystemSyncStatus(CommonEnumUtil.FALSE); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java index 628a676..c3a839d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java @@ -89,6 +89,7 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements if (Objects.equals(detail.getVin(), workOrder.getVinCode())) { throw new ImppBusiException(String.format("产品条码明细【%s】与发运单明细不匹配,请重新扫描!", model.getSn())); } + checkDetailScanSeq(orderManagement, detail, workOrder); //校验发运明细 checkShippingDetails(model, orderManagement, shippingGroup, produceSn, detail); scanFlg = true; @@ -104,6 +105,16 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements return model; } + private void checkDetailScanSeq(MesShippingOrderManagement orderManagement, MesShippingOrderManagementDetail detail, MesWorkOrder workOrder) { + if (StringUtils.isEmpty(workOrder.getWorkOrderSource())) { + throw new ImppBusiException(String.format("工单【%s】缺少来源!", workOrder.getWorkOrderNo())); + } + MesCustSortInfo custSoftInfo = custSoftInfoRDao.getById(Long.parseLong(workOrder.getWorkOrderSource())); + if (custSoftInfo == null || !Objects.equals(detail.getCustInfoSeq(), custSoftInfo.getCustInfoSeq())) { + throw new ImppBusiException(String.format("发运单【%s】启用明细顺序防错,序号【%s】前还有未扫描的发运单明细,请检查数据!", orderManagement.getShippingCode(), custSoftInfo.getCustInfoSeq())); + } + } + private void checkShippingDetails(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup, MesProduceSn produceSn, MesShippingOrderManagementDetail detail) { @@ -124,14 +135,14 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements } //校验客户零件信息是否存在 (默认需要验证, 值可能是[空/0/20]) -// if (StringUtils.isEmpty(shippingGroup.getScanMethodJudgment()) || !shippingGroup.getScanMethodJudgment().equals(MesExtEnumUtil.SHIPPING_GROUP_SCAN_METHOD_JUDGMENT.PART_NO.getValueStr())) { -// DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); -// DdlPreparedPack.getStringEqualPack(detail.getPartNo(), "erpPartNo", packBean); -// DdlPreparedPack.getStringEqualPack(detail.getCustPartNo(), "custPartNo", packBean); -// if (!mesCustomerPartRepository.isExitByHql(packBean)) { -// throw new ImppBusiException(String.format("零件号【%s】客户零件号【%s】关系不存在,请检查数据!", detail.getPartNo(), detail.getCustPartNo())); -// } -// } + if (StringUtils.isEmpty(shippingGroup.getScanMethodJudgment()) || !shippingGroup.getScanMethodJudgment().equals(MesExtEnumUtil.SHIPPING_GROUP_SCAN_METHOD_JUDGMENT.PART_NO.getValueStr())) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(detail.getPartNo(), "erpPartNo", packBean); + DdlPreparedPack.getStringEqualPack(detail.getCustPartNo(), "custPartNo", packBean); + if (!mesCustomerPartRepository.isExitByHql(packBean)) { + throw new ImppBusiException(String.format("零件号【%s】客户零件号【%s】关系不存在,请检查数据!", detail.getPartNo(), detail.getCustPartNo())); + } + } }