From 1d689e80758cccce254cef734039361e1d7fbba4 Mon Sep 17 00:00:00 2001 From: jason Date: Mon, 17 Mar 2025 03:09:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E9=83=BD=E5=8F=91=E8=BF=90=EF=BC=8C?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesShippingLoadingCheckService.java | 15 +++- .../busi/MesSortShippingCheckService.java | 80 ++++++++++++++++----- ...eckVolvoRackNoAndPartNoStrategyServiceImpl.java | 83 +++++++++++++++++----- 3 files changed, 142 insertions(+), 36 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 8149389..3985f03 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 @@ -157,6 +157,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS }else{ //校验发运单是否存在 checkLoadingList(model, organizeCode, loadingList); +// checkdddLoadingList(model, organizeCode, loadingList); //查询零件发运组 MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, loadingList.getPartShippingGroupCode()); boolean scanflg = false; @@ -184,8 +185,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误,请检查数据!", model.getShippingCode())); } } - //更新页面状态 - updateLoadingListDetail(model, userInfo, loadingList, loadingListDetail,"扫描完成",MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue(),userInfo); //根据扫描的装车单找到是否先装车配置 //若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。 @@ -193,10 +192,13 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean); MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean); - if (!StringUtils.isEmpty(orderManagement)) { + if (orderManagement == null || orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()) { throw new ImppBusiException(String.format("【%s】此装车单中发运单为【%s】,还未做完【排序发运校验】,请检查数据", model.getShippingCode(), loadingListDetail.getShippingCode())); } } + + //更新页面状态 + updateLoadingListDetail(model, userInfo, loadingList, loadingListDetail,"扫描完成",MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue(),userInfo); scanflg = true; break; } @@ -251,6 +253,13 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS } } + private void checkdddLoadingList(MesShippingLoadingCheckModel model, String organizeCode, MesLoadingList loadingList) { + DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(loadingList.getId(), "pid", orderDetailPackBean); + List vehiclesOrderDetails = vehiclesOrderDetailRepository.findByHqlWhere(orderDetailPackBean); + model.setDetailList(vehiclesOrderDetails); + } + private void updateLoadingListDetail(MesShippingLoadingCheckModel model, String userInfo, MesLoadingList loadingList, MesLoadingListDetail loadingListDetail, String tempStatusVal, Integer status,String userName) { if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == status){ loadingListDetail.setScanSn(model.getShippingCode()); 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 11af897..f854e16 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 @@ -17,12 +17,11 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.*; -import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; -import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingListDetail; -import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; -import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import cn.estsh.i3plus.pojo.mes.bean.edi.cd.MesCimVolvoJisRackIdDetail; +import cn.estsh.i3plus.pojo.mes.bean.shipping.*; import cn.estsh.i3plus.pojo.mes.model.MesEquipVariableRwResult; import cn.estsh.i3plus.pojo.mes.repository.*; +import cn.estsh.i3plus.pojo.mes.repository.edi.cd.MesCimVolvoJisRackIdDetailRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; @@ -119,6 +118,10 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService @Autowired private MesVolvoRackRepository mesVolvoRackRDao; + @Autowired + private MesCustSoftInfoRepository custSoftInfoRDao; + @Autowired + private MesCimVolvoJisRackIdDetailRepository rackIdDetailRDao; @Override public MesSortShippingCheckModel doShippingOrderNoQuery(MesShippingOrderManagement shippingOrderManagement) { @@ -155,6 +158,9 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService @Override public MesSortShippingCheckModel saveRackNo(MesSortShippingCheckModel model, String organizeCode, String userInfo) { checkVolvoRack(model, organizeCode); + MesShippingOrderManagement orderManagement = checkMesShippingOrderManagement(model); + orderManagement.setRackNo(model.getVolvoRackNo()); + shippingOrderManagementRepository.update(orderManagement); return model; } @@ -245,11 +251,33 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //根据条码找到对应的物料号,若物料号一致,则修改扫描flg,将flg改为true. boolean scanFlg = false; for (MesShippingOrderManagementDetail detail : model.getDetailList()) { - if (detail.getPartNo().equals(produceSn.getPartNo())) { + if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getPartPosition())) { scanFlg = true; + String tmpAfterBarCode = model.getLocationCode().replaceAll("\\p{Cc}", ""); + String tmpMidStr = tmpAfterBarCode.replace("[)>061B", ""); + String[] splitStrArray = tmpMidStr.split("1Y"); + if (splitStrArray.length > 0) { + if (StringUtils.isEmpty(orderManagement.getRackNo()) || !orderManagement.getRackNo().contains(splitStrArray[0])) { + throw new ImppBusiException(String.format("料箱类型与顺序不一致,请检查数据")); + } + } + String detailPosition = ddddd(model, detail); + String tmpPosition = tmpAfterBarCode.substring(tmpAfterBarCode.length() - 2); + StringBuilder splitPosition = new StringBuilder(); + for (char c : tmpPosition.toCharArray()) { + if (Character.isDigit(c)) { + splitPosition.append(c); + } + } + //验证位置号 + if (!detailPosition.contentEquals(splitPosition)) { + throw new ImppBusiException(String.format("零件与位置信息不符,请检查数据")); + } + detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER); - detail.setBarcode(produceSn.getSerialNumber()); +// detail.setBarcode(detail.getBarcode() + "," + model.getLocationCode()); detail.setPartPosition(model.getLocationCode()); +// detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue()); shippingOrderManagementDetailRepository.update(detail); break; } @@ -269,6 +297,23 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService return model; } + private String ddddd(MesSortShippingCheckModel model, MesShippingOrderManagementDetail detail) { + MesWorkOrder workOrder = mesWorkOrderService.getWorkOrderNoByCustSn(model.getOrganizeCode(), model.getSn()); + if (workOrder == null || StringUtils.isEmpty(workOrder.getWorkOrderSource())) { + return ""; + } + + 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(); + } + } + return ""; + } + @Override public MesShippingOrderManagement queryShippingOrderNoByAutoPushOrder(String shippingGroupNo, String org) { //查询最近扫描完成的装车单号 @@ -282,7 +327,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService private MesPartShippingGroup getMesPartShippingGroup(String org, String partShippingGroupCode) { if(StringUtil.isEmpty(org) ||StringUtil.isEmpty(partShippingGroupCode)){ - return null; + throw new ImppBusiException("零件发运组信息不存在,请检查数据!"); } MesPartShippingGroup shippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(org, partShippingGroupCode); if(Objects.isNull(shippingGroup)){ @@ -473,10 +518,10 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService private MesProduceSn checkMesProduceSn(MesSortShippingCheckModel model, String org) { //校验条码是否已经扫描 - Optional optional = model.getDetailList().stream().filter(k -> !StringUtils.isEmpty(k.getBarcode()) && k.getBarcode().equals(model.getSn())).findFirst(); - if (optional.isPresent()) { - throw new ImppBusiException(String.format("【%s】此条码已经扫描过,请检查数据!", model.getSn())); - } +// Optional optional = model.getDetailList().stream().filter(k -> !StringUtils.isEmpty(k.getBarcode()) && k.getBarcode().equals(model.getSn())).findFirst(); +// if (optional.isPresent()) { +// throw new ImppBusiException(String.format("【%s】此条码已经扫描过,请检查数据!", model.getSn())); +// } DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); @@ -493,10 +538,10 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService private void checkStatus(MesSortShippingCheckModel model, MesProduceSn produceSn) { //校验产品条码状态 必须是状态为已下线条码 - if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() && produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getValue()) { - throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】或【%s】状态的条码,请检查数据!", model.getSn(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()), - MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getDescription(),MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getDescription())); - } +// if (produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue() && produceSn.getSnStatus() != MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getValue()) { +// throw new ImppBusiException(String.format("【%s】此条码状态为【%s】,请选择状态为【%s】或【%s】状态的条码,请检查数据!", model.getSn(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(produceSn.getSnStatus()), +// MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getDescription(),MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getDescription())); +// } //校验产品质量状态 必须是状态为合格条码 if (produceSn.getQcStatus() != MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) { throw new ImppBusiException(String.format("【%s】此条码质量状态为【%s】,请选择【%s】状态的条码,请检查数据!", model.getSn(), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(produceSn.getQcStatus()), @@ -504,8 +549,8 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } } + // 判断维护的条码是否和扫描的条码一致 private void checkVolvoRack(MesSortShippingCheckModel model, String organizeCode) { - //校验发运单是否存在 DdlPackBean rackPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(model.getVolvoRackNo(), "barCode", rackPackBean); MesVolvoRack volvoRack = mesVolvoRackRDao.getByProperty(rackPackBean); @@ -596,7 +641,8 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //更新应急件库位管理库存出库 mesEmergencyLocationService.doShippingStockOutOnline(organizeCode, detail.getVisualOrderNo(), userInfo, true); //条码格式(扫描目视单,扫描条码) - detail.setBarcode(new StringJoiner(MesPcnExtConstWords.COMMA).add(detail.getVisualOrderNo()).add(detail.getBarcode()).toString()); +// detail.setBarcode(new StringJoiner(MesPcnExtConstWords.COMMA).add(detail.getVisualOrderNo()).add(detail.getBarcode()).toString()); + detail.setBarcode(detail.getBarcode() + "," + detail.getPartPosition()); } } //客供品移库 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 ee30ad7..628a676 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 @@ -16,12 +16,13 @@ import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.bean.edi.cd.MesCimVolvoJisRackIdDetail; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesCustSortInfo; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; -import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository; +import cn.estsh.i3plus.pojo.mes.repository.*; +import cn.estsh.i3plus.pojo.mes.repository.edi.cd.MesCimVolvoJisRackIdDetailRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; @@ -67,19 +68,32 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements @Autowired private IMesShippingSnUniqueService mesShippingSnUniqueService; + @Autowired + private MesWorkOrderRepository workOrderRDao; + @Autowired + private MesCustSoftInfoRepository custSoftInfoRDao; + @Autowired + private MesCimVolvoJisRackIdDetailRepository rackIdDetailRDao; @Override public MesSortShippingCheckModel doScan(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup) { //校验条码 MesProduceSn produceSn = checkSn(model); + MesWorkOrder workOrder = checkWorkOrder(model); + if (!Objects.equals(workOrder.getPartNo(), produceSn.getPartNo())) { + throw new ImppBusiException(String.format("产品条码物料【%s】与工单物料【%s】不一致,请检查数据!", produceSn.getPartNo(), workOrder.getPartNo())); + } boolean scanFlg = false; for (MesShippingOrderManagementDetail detail : model.getDetailList()) { if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getBarcode()) && !Objects.equals(detail.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) { + if (Objects.equals(detail.getVin(), workOrder.getVinCode())) { + throw new ImppBusiException(String.format("产品条码明细【%s】与发运单明细不匹配,请重新扫描!", model.getSn())); + } //校验发运明细 checkShippingDetails(model, orderManagement, shippingGroup, produceSn, detail); scanFlg = true; //明细更新 - updateOrderManagementDetails(produceSn, orderManagement, detail, model.getUserInfo()); + updateOrderManagementDetails(produceSn, orderManagement, detail, workOrder, model.getUserInfo()); break; } } @@ -110,17 +124,41 @@ 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())); +// } +// } } + private MesWorkOrder checkWorkOrder(MesSortShippingCheckModel model) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(model.getSn(), "custSn", packBean); + MesWorkOrder workOrder = workOrderRDao.getByProperty(packBean); + if (workOrder == null) { + throw new ImppBusiException(String.format("客户条码【%s】对应的工单号不存在,请检查数据!", model.getSn())); + } + if (workOrder.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.SHIPPING.getValue()) { + throw new ImppBusiException(String.format("工单【%s】状态为已发运,请检查数据!", workOrder.getWorkOrderNo())); + } + if (workOrder.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) { + throw new ImppBusiException(String.format("工单【%s】状态为已发布,请检查数据!", workOrder.getWorkOrderNo())); + } + if (workOrder.getWorkOrderStatus() != MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue() && + workOrder.getWorkOrderStatus() != MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() && + workOrder.getWorkOrderStatus() != MesExtEnumUtil.ORDER_STATUS.DISMANTLE.getValue()) { + throw new ImppBusiException(String.format("工单【%s】状态为【%s】,请检查数据!", workOrder.getWorkOrderNo(), workOrder.getWorkOrderStatus())); + } + if (Objects.equals(workOrder.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.X.getValue())) { + throw new ImppBusiException(String.format("工单【%s】的工单标识为空单,请检查数据!", workOrder.getWorkOrderNo())); + } + return workOrder; + } + private MesProduceSn checkSn(MesSortShippingCheckModel model) { //校验条码是否重复扫描 (不区分大小写) Optional optional = model.getDetailList().stream().filter(k -> !StringUtils.isEmpty(k.getBarcode()) && k.getBarcode().equalsIgnoreCase(model.getSn())).findFirst(); @@ -192,12 +230,24 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements return mesShippingOrderManagementDetail; } - private void updateOrderManagementDetails(MesProduceSn produceSn, MesShippingOrderManagement orderManagement, MesShippingOrderManagementDetail detail, String userInfo) { - if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { + private void updateOrderManagementDetails(MesProduceSn produceSn, MesShippingOrderManagement orderManagement, MesShippingOrderManagementDetail detail, MesWorkOrder workOrder, String userInfo) { +// if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { detail.setBarcode(produceSn.getProductSn()); detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER); detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); detail.setRemark("扫描完成"); + updateDetail(detail); + orderManagement.setCheckSeqCode("1"); + update(orderManagement); + +// MesCustSortInfo custSoftInfo = custSoftInfoRDao.getById(Long.parseLong(workOrder.getWorkOrderSource())); +// if (custSoftInfo != null) { +// MesCimVolvoJisRackIdDetail rackIdDetail = rackIdDetailRDao.getById(custSoftInfo.getSourceId()); +// if (rackIdDetail != null) { +// detail.setPartPosition(rackIdDetail.getPosition()); +// } +// } + //根据是否启动记忆判断 若启用记忆,则根据保存数据库 if (!StringUtils.isEmpty(orderManagement.getIsEnableMemory()) && Objects.equals(orderManagement.getIsEnableMemory(), MesCommonConstant.TRUE_INTEGER)) { @@ -214,6 +264,7 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements detail.setActualQty(1); detail.setSystemSyncStatus(CommonEnumUtil.FALSE); + detail.setVisualOrderNo(workOrder.getWorkOrderNo()); ConvertBean.serviceModelUpdate(detail, userInfo); updateDetail(detail); //内部条码更新条码状态 @@ -227,7 +278,7 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements mesShippingSnUniqueService.insertMesShippingSnUnique(orderManagement.getOrganizeCode(),detail.getBarcode(),orderManagement.getShippingCode(),userInfo); } } - } +// } } @MonitorLog