From b3e340d25150bc29aebd3f45c2ce2f72bd1be829 Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 9 Apr 2025 20:40:47 +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 --- .../pcn/api/busi/IMesPartShippingGroupService.java | 3 ++ .../busi/MesPartShippingGroupService.java | 23 ++++++++-- .../busi/MesShippingLoadingCheckService.java | 3 +- .../busi/MesSortShippingCheckService.java | 53 ++++++++++++---------- 4 files changed, 54 insertions(+), 28 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesPartShippingGroupService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesPartShippingGroupService.java index 1f2f515..0b5cd9e 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesPartShippingGroupService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesPartShippingGroupService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel; import cn.estsh.impp.framework.boot.util.ResultBean; @@ -32,4 +33,6 @@ public interface IMesPartShippingGroupService { @ApiOperation(value = "发运组明细") MesPartShippingGroupDetail getMesPartShippingGroupDetailByPartNo(String organizeCode, String shippingGroupCode, String partNo); + + boolean isFirstInstall(MesPartShippingGroup shippingGroup, MesLoadingList loadingList); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java index 4a66698..9b1704c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java @@ -8,14 +8,14 @@ import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesConfig; -import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; -import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; -import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail; +import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; +import cn.estsh.i3plus.pojo.mes.repository.IMesLoadingGroupRepository; import cn.estsh.i3plus.pojo.mes.repository.MesConfigRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupDetailRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository; @@ -29,6 +29,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.List; +import java.util.Objects; @Service @Slf4j @@ -49,6 +50,9 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService @Autowired private MesConfigRepository mesConfigRao; + @Autowired + private IMesLoadingGroupRepository loadingGroupRDao; + public List findAll(MesPartShippingGroup partShippingGroup) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(partShippingGroup.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(partShippingGroup.getShippingGroupCode(), MesPcnExtConstWords.SHIPPING_GROUP_CODE, packBean); @@ -109,4 +113,15 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService return mesPartShippingGroupDetailRepository.getByProperty(packBean); } + @Override + public boolean isFirstInstall(MesPartShippingGroup shippingGroup, MesLoadingList loadingList) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(loadingList.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(loadingList.getLoadingGroupNo(), "loadingGroupNo", packBean); + MesLoadingGroup loadingGroup = loadingGroupRDao.getByProperty(packBean); + 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()); + } + } 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 0ec30de..c6771f9 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 @@ -159,6 +159,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS checkLoadingList(model, organizeCode, loadingList); //查询零件发运组 MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, loadingList.getPartShippingGroupCode()); + final boolean isFirstInstall = mesPartShippingGroupService.isFirstInstall(shippingGroup, loadingList); boolean scanflg = false; for (MesLoadingListDetail loadingListDetail : model.getDetailList()) { if (loadingListDetail.getShippingCode().equals(model.getShippingCode())) { @@ -187,7 +188,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS //根据扫描的装车单找到是否先装车配置 //若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。 - if (!Objects.equals(shippingGroup.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) { + if (!isFirstInstall) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean); MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean); 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 f7b69d9..3bed67c 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 (mesPartShippingGroupService.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】的数据!请检查数据!", @@ -585,7 +589,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService // throw new ImppBusiException(String.format("【%s】此条码已经扫描过,请检查数据!", model.getSn())); // } DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); - DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean); + DdlPreparedPack.getStringEqualPack(model.getSn(), "custSn", packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); MesProduceSn produceSn = produceSnRepository.getByProperty(packBean); @@ -639,27 +643,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 = mesPartShippingGroupService.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 +760,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);