From 713ba026e6c3b6668beb25eaabb7b2b4a7da43c9 Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 26 Feb 2025 18:12:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9cocopit=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MesShippingOrderManagementDetailService.java | 125 ++++++++++++++------- .../serviceimpl/base/MesWorkOrderService.java | 2 + 2 files changed, 84 insertions(+), 43 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index 96a9735..76e6c65 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -211,23 +211,29 @@ public class MesShippingOrderManagementDetailService extends BaseMesService(modelList, pager); } - @Override - public void doHandleCockpitShippingError(MesShippingOrderManagementDetail detail, MesWorkOrder workOrder) { - if (StringUtils.isEmpty(detail.getPartNo())) { - MesException.throwFlowException("发运单明细对应零件号为空"); - } - if (StringUtils.isEmpty(workOrder.getCustSn())) { - MesException.throwMesBusiException("工单【%s】不存在客户条码", workOrder.getWorkOrderNo()); - } - String organizeCode = AuthUtil.getOrganizeCode(); - String userName = AuthUtil.getSessionUser().getUserName(); - DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(detail.getPid(), "id", orderPackBean); - MesShippingOrderManagement orderManagement = shippingOrderRepository.getByProperty(orderPackBean); - if (orderManagement == null || StringUtils.isEmpty(orderManagement.getShippingGroupCode())) { - MesException.throwFlowException("发运单主表不存在"); - } - - DdlPackBean partShippingGroupPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringLikerPack(orderManagement.getShippingGroupCode(), "shippingGroupCode", partShippingGroupPackBean); - MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupRDao.getByProperty(partShippingGroupPackBean); - if (mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getConfirmPartType()) || Integer.parseInt(mesPartShippingGroup.getConfirmPartType()) != MesExtEnumUtil.SHIPPING_GROUP_CONFIRM_PART_TYPE.SHIPPING_GROUP_CONFIRM_PART_TYPE_30.getValue()) { - MesException.throwFlowException("零件发运组【%s】,扫描确认零件方式应为【装配目视单和客户零件条码】", orderManagement.getShippingGroupCode()); - } + private List getJisShippingByWorkOrder(MesShippingOrderManagement orderManagement, MesShippingOrderManagementDetail detail, String workOrderNo, String organizeCode, String userName) { + List shippingList = new ArrayList<>(); DdlPackBean workOrderPartPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workOrder.getWorkOrderNo(), "workOrderNo", workOrderPartPackBean); + DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", workOrderPartPackBean); List workOrderParts = mesWorkOrderPartRepository.findByHqlWhere(workOrderPartPackBean); if (!CollectionUtils.isEmpty(workOrderParts)) { - List shippingList = new ArrayList<>(); - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_10.getValue(), "groupType", ddlPackBean); DdlPreparedPack.getStringEqualPack(orderManagement.getShippingGroupCode(), "code", ddlPackBean); @@ -418,13 +401,69 @@ public class MesShippingOrderManagementDetailService extends BaseMesService workOrderParts = mesWorkOrderPartRepository.findByHqlWhere(workOrderPartPackBean); +// if (!CollectionUtils.isEmpty(workOrderParts)) { +// List shippingList = new ArrayList<>(); +// +// DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_10.getValue(), "groupType", ddlPackBean); +// DdlPreparedPack.getStringEqualPack(orderManagement.getShippingGroupCode(), "code", ddlPackBean); +// List mesMoveRuleList = mesMoveRuleRepository.findByHqlWhere(ddlPackBean); +// if (CollectionUtils.isEmpty(mesMoveRuleList)) { +// MesException.throwFlowException(String.format("移库规则不存在:发运单编号:%s,发运组代码:%s,", orderManagement.getShippingCode(), orderManagement.getShippingGroupCode())); +// } +// Map mesMoveRuleMap = mesMoveRuleList.stream().filter(t -> Objects.nonNull(t.getSrcType())).collect(Collectors.toMap(MesMoveRule::getSrcType, Function.identity(), (x, y) -> y)); +// +// for (MesWorkOrderPart orderPart : workOrderParts) { +// MesPart itemPart = mesPartService.getPartByPartNo(orderPart.getPartNo(), organizeCode); +// if (itemPart == null) { +// continue; +// } +// MesMoveRule moveRule = mesMoveRuleMap.get(itemPart.getEsd()); +// if (moveRule != null && Objects.equals(moveRule.getMoveNum(), MesExtEnumUtil.MOVE_RULE_MOVE_NUM.MOVE_RULE_MOVE_NUM_20.getValue()) && MesExtEnumUtil.MOVE_TYPE_REPORT_TYPE.SHIPPING.getValue() == moveRule.getReportType()) { +// shippingList.add(getMesJisShipping(orderManagement, detail, moveRule.getErpSrcLocateNo(), orderPart, userName)); +// } else { +// log.info("客供品移库零件【{}】在零件发运组【{}】的移库规则中,汇报类型未维护或不为发运", orderPart.getPartNo(), workOrder.getPartProdGroupCode()); +// } +// } +// +// jisShippingRepository.saveAll(shippingList); +// } + MesProduceSn mesProduceSn = mesProduceSnService.getMesProduceSnByCustSn(organizeCode, workOrder.getCustSn()); if (mesProduceSn != null) { //更新条码状态为完成 @@ -440,9 +479,9 @@ public class MesShippingOrderManagementDetailService extends BaseMesService implements DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, packBean); DdlPreparedPack.getStringLikerPack(bean.getVinCode(), MesExtConstWords.VIN_CODE, packBean); DdlPreparedPack.getStringEqualPack(bean.getOrderFlag(), MesExtConstWords.ORDER_FLAG, packBean); + DdlPreparedPack.getStringLikerPack(bean.getCustSn(), "custSn", packBean); if (!StringUtil.isEmpty(bean.getWorkOrderStatusQuery())) { DdlPreparedPack.getInPackList(Arrays.stream(bean.getWorkOrderStatusQuery().split(MesExtConstWords.COMMA)).map(Integer::parseInt).collect(Collectors.toList()), MesExtConstWords.WORK_ORDER_STATUS, packBean); } else DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, packBean); DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), MesExtConstWords.WORK_ORDER_TYPE, packBean); + DdlPreparedPack.getNumEqualPack(bean.getQcStatus(), MesExtConstWords.QC_STATUS, packBean); if (!StringUtils.isEmpty(bean.getCreateDateTimeStart()) || !StringUtils.isEmpty(bean.getCreateDateTimeEnd())) { DdlPreparedPack.timeBuilder(bean.getCreateDateTimeStart(), bean.getCreateDateTimeEnd(), MesExtConstWords.CREATE_DATE_TIME, packBean, false);