From 5c380fc4d2bf6c23f6c71c40fe30b6cf9a88db0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Mon, 6 Oct 2025 15:09:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E9=80=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SOIssueNotifyOrderMaterialListDetail.java | 65 +++++++++++++++++++ .../service/impl/NewIssureServiceImpl.java | 30 +++++---- 2 files changed, 81 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/gaotao/modules/notify/entity/SOIssueNotifyOrderMaterialListDetail.java diff --git a/src/main/java/com/gaotao/modules/notify/entity/SOIssueNotifyOrderMaterialListDetail.java b/src/main/java/com/gaotao/modules/notify/entity/SOIssueNotifyOrderMaterialListDetail.java new file mode 100644 index 0000000..620868a --- /dev/null +++ b/src/main/java/com/gaotao/modules/notify/entity/SOIssueNotifyOrderMaterialListDetail.java @@ -0,0 +1,65 @@ +package com.gaotao.modules.notify.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import java.math.BigDecimal; + +/** + * @Description 申请单物料明细记录表 - 数据库表映射 - rqrq + * @Author rqrq + * @Date 2025/01/06 + */ +@Data +@TableName("SOIssueNotifyOrderMaterialList_detail") +public class SOIssueNotifyOrderMaterialListDetail { + + /** + * 工厂编码 + */ + private String site; + + /** + * 申请单号 + */ + private String notifyNo; + + /** + * 申请单序号 + */ + private BigDecimal itemNo; + + /** + * BOM行号 + */ + private String bomItemNo; + + /** + * 序列号(条码号) + */ + private String serialNo; + + /** + * 任务编号 + */ + private String taskRef; + + /** + * 任务行号 + */ + private Integer taskItem; + + /** + * 任务序号 + */ + private Integer taskSeq; + + /** + * WCS推送标志(Y/N) + */ + private String outWcsFlag; + + /** + * 发料标志(Y/N) + */ + private String issureFlag; +} diff --git a/src/main/java/com/gaotao/modules/notify/service/impl/NewIssureServiceImpl.java b/src/main/java/com/gaotao/modules/notify/service/impl/NewIssureServiceImpl.java index aad8eb0..922135f 100644 --- a/src/main/java/com/gaotao/modules/notify/service/impl/NewIssureServiceImpl.java +++ b/src/main/java/com/gaotao/modules/notify/service/impl/NewIssureServiceImpl.java @@ -749,20 +749,17 @@ public class NewIssureServiceImpl implements NewIssureService { } System.out.println("calling_flag校验通过 - rqrq"); - // 5. 判断是全部推送还是部分推送 - rqrq - int totalOrders = newIssureMapper.countTotalOrders(site, notifyNo); - boolean isAllPushed = (validList.size() == totalOrders); - System.out.println("总订单数:" + totalOrders + ", 可推送订单数:" + validList.size() + ", 是否全部推送:" + isAllPushed + " - rqrq"); - - // 6. 按ProductionOrderNo分组 - rqrq + // 5. 按ProductionOrderNo分组 - rqrq Map> groupedByOrder = validList.stream() .collect(Collectors.groupingBy(InventoryCheckResult::getProductionOrderNo)); - System.out.println("按生产订单分组,共" + groupedByOrder.size() + "个订单 - rqrq"); + int totalOrdersToProcess = groupedByOrder.size(); + System.out.println("按生产订单分组,本次要推送" + totalOrdersToProcess + "个订单 - rqrq"); Date currentTime = new Date(); + int successCount = 0; // 统计成功推送的订单数 - rqrq - // 7. 遍历每个生产订单 - rqrq + // 6. 遍历每个生产订单 - rqrq for (Map.Entry> entry : groupedByOrder.entrySet()) { String productionOrderNo = entry.getKey(); List orderItems = entry.getValue(); @@ -777,12 +774,12 @@ public class NewIssureServiceImpl implements NewIssureService { } System.out.println("订单" + productionOrderNo + "的itemNo=" + itemNo + " - rqrq"); - // 7.2 生成taskNo - rqrq + // 6.2 生成taskNo - rqrq TransNoControl transData = transNoService.getTransNo(site, "WOT", 10); String taskNo = transData.getNewTransNo(); System.out.println("生成任务编号:" + taskNo + " - rqrq"); - // 7.3 准备wms_order_task对象(暂不插入数据库)- rqrq + // 6.3 准备wms_order_task对象(暂不插入数据库)- rqrq WmsOrderTask orderTask = new WmsOrderTask(); orderTask.setSite(site); orderTask.setTaskNo(taskNo); @@ -886,7 +883,7 @@ public class NewIssureServiceImpl implements NewIssureService { } System.out.println("准备SOIssueNotifyOrderMaterialList_detail对象" + detailList.size() + "条 - rqrq"); - // 7.7 构建WCS数据 - rqrq + // 6.7 构建WCS数据 - rqrq NotifyDataToWcs wcsData = new NotifyDataToWcs(); wcsData.setSite(site); wcsData.setTaskNo(taskNo); @@ -940,7 +937,7 @@ public class NewIssureServiceImpl implements NewIssureService { wcsData.setPalletList(palletList); System.out.println("构建WCS数据完成,栈板数:" + palletList.size() + " - rqrq"); - // 7.8 先调用WCS接口(成功后再执行数据库操作)- rqrq + // 6.8 先调用WCS接口(成功后再执行数据库操作)- rqrq System.out.println("开始调用WCS接口 - rqrq"); try { wcsApiService.pushNotifyToWcsApi(wcsData); @@ -993,6 +990,9 @@ public class NewIssureServiceImpl implements NewIssureService { System.out.println("订单" + productionOrderNo + "处理完成 - rqrq"); + // 成功推送,计数+1 - rqrq + successCount++; + } catch (RuntimeException e) { // 超时错误向上抛出 - rqrq if (e.getMessage().contains("超时") || e.getMessage().contains("timeout")) { @@ -1003,8 +1003,10 @@ public class NewIssureServiceImpl implements NewIssureService { } } - // 8. 更新SOIssueNotifyHeader的push_wcs_flag - rqrq - String pushWcsFlag = isAllPushed ? "推送完成" : "部分推送"; + // 7. 判断推送状态并更新SOIssueNotifyHeader的push_wcs_flag - rqrq + String pushWcsFlag = (successCount == totalOrdersToProcess) ? "推送完成" : "部分推送"; + System.out.println("推送结果统计:本次要推送" + totalOrdersToProcess + "个订单,成功推送" + successCount + "个订单 - rqrq"); + newIssureMapper.updateNotifyHeaderPushWcsFlag(site, notifyNo, pushWcsFlag); System.out.println("更新申请单push_wcs_flag=" + pushWcsFlag + " - rqrq");