From e5bee3dfcd5acd863e3042c83e9a3d7eb63eb53e Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 9 Apr 2025 17:30:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E8=BD=A6=E5=8D=95=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=A4=9A=E5=8F=91=E8=BF=90=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesSortShippingCheckService.java | 59 ++++++++++++++-------- 1 file changed, 37 insertions(+), 22 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 f7e5cfd..adf4a4d 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 @@ -134,6 +134,9 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService @Autowired private MesCimVolvoJisRackIdDetailRepository rackIdDetailRDao; + @Autowired + private IMesLoadingGroupRepository mesLoadingGroupRDao; + @Override public MesSortShippingCheckModel doShippingOrderNoQuery(MesShippingOrderManagement shippingOrderManagement) { //返回数据组装 @@ -144,10 +147,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService model.setMsg(String.format("发运单【%s】已跳过,请扫描下一个发运单",shippingOrderManagement.getShippingCode())); return model; } + MesPartShippingGroup partShippingGroup = getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode()); //校验发运单扫描顺序 checkShippingOrderSeq(shippingOrderManagement, orderManagement); //根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据! - checkLoadingList(shippingOrderManagement, orderManagement); + checkLoadingList(shippingOrderManagement, orderManagement, partShippingGroup); if (!StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { model.setIsScanLocationCode(true); } @@ -155,7 +159,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //发运单号 model.setShippingCode(orderManagement.getShippingCode()); //零件发运组 - model.setMesPartShippingGroup(getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode())); + model.setMesPartShippingGroup(partShippingGroup); //发运单明细 model.setDetailList(getMesShippingOrderManagementDetails(orderManagement,model.getMesPartShippingGroup())); //最近扫描完成的发运单号 @@ -446,7 +450,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } } - private void checkLoadingList(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement) { + private void checkLoadingList(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement, MesPartShippingGroup partShippingGroup) { if (Objects.equals(orderManagement.getIsLoading(), MesCommonConstant.TRUE_INTEGER)) { //查询装车单明细 DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); @@ -462,7 +466,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", shippingOrderManagement.getShippingCode())); } //判断是否先装车 - if (Objects.equals(orderManagement.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) { + if (isFirstInstall(partShippingGroup, loadingList)) { //若没进行装车校验,则提示【%s】此发运单对应的【%s】此装车单状态为【%s】,请选择状态为【%s】的数据 if (loadingList.getStatus() != MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue()) { throw new ImppBusiException(String.format("【%s】此发运单对应的【%s】此装车单状态为【%s】,请选择状态为【%s】的数据!请检查数据!", @@ -632,6 +636,14 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService return orderManagement; } + private boolean isFirstInstall(MesPartShippingGroup shippingGroup, MesLoadingList loadingList) { + MesLoadingGroup loadingGroup = loadingList.getLoadingGroupId() != null ? mesLoadingGroupRDao.getById(loadingList.getLoadingGroupId()) : null; + if (loadingGroup != null && loadingGroup.getIsFirstInstall() != null) { + return Objects.equals(loadingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } + return Objects.equals(shippingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } + public void saveDate(MesShippingOrderManagement orderManagement, MesSortShippingCheckModel model, String organizeCode, String userInfo) { //若发运单状态为创建或发布 则写入开始扫描时间 if (orderManagement.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue() || @@ -639,27 +651,30 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService orderManagement.setStartScanTime(TimeTool.getNowTime(true)); } MesLoadingList loadingList = null; + // 获取装车单 + 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); + } + //零件发运组 MesPartShippingGroup shippingGroup = Objects.isNull(model.getMesPartShippingGroup()) ? getMesPartShippingGroup(orderManagement.getOrganizeCode(), orderManagement.getShippingGroupCode()) : model.getMesPartShippingGroup(); + final boolean isFirstInstall = isFirstInstall(shippingGroup, loadingList); //根据发运单查询装车单明细信息 - 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); + if (isFirstInstall) { + //反填装车单信息到发运单 + 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); } //发运单状态修改为校验完成 orderManagement.setSystemSyncStatus(CommonEnumUtil.FALSE); @@ -753,7 +768,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService if (!CollectionUtils.isEmpty(mesJisShippings)) { shippingList.addAll(mesJisShippings); } - } else if (Objects.equals(shippingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue())){ + } else if (isFirstInstall){ //查询装车单明细 DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(orderManagement.getLoadingListId(),"pid",orderManagementPackBean);