Browse Source

推送bug

master
常熟吴彦祖 3 months ago
parent
commit
5c380fc4d2
  1. 65
      src/main/java/com/gaotao/modules/notify/entity/SOIssueNotifyOrderMaterialListDetail.java
  2. 30
      src/main/java/com/gaotao/modules/notify/service/impl/NewIssureServiceImpl.java

65
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;
}

30
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"); 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<String, List<InventoryCheckResult>> groupedByOrder = validList.stream() Map<String, List<InventoryCheckResult>> groupedByOrder = validList.stream()
.collect(Collectors.groupingBy(InventoryCheckResult::getProductionOrderNo)); .collect(Collectors.groupingBy(InventoryCheckResult::getProductionOrderNo));
System.out.println("按生产订单分组,共" + groupedByOrder.size() + "个订单 - rqrq");
int totalOrdersToProcess = groupedByOrder.size();
System.out.println("按生产订单分组,本次要推送" + totalOrdersToProcess + "个订单 - rqrq");
Date currentTime = new Date(); Date currentTime = new Date();
int successCount = 0; // 统计成功推送的订单数 - rqrq
// 7. 遍历每个生产订单 - rqrq
// 6. 遍历每个生产订单 - rqrq
for (Map.Entry<String, List<InventoryCheckResult>> entry : groupedByOrder.entrySet()) { for (Map.Entry<String, List<InventoryCheckResult>> entry : groupedByOrder.entrySet()) {
String productionOrderNo = entry.getKey(); String productionOrderNo = entry.getKey();
List<InventoryCheckResult> orderItems = entry.getValue(); List<InventoryCheckResult> orderItems = entry.getValue();
@ -777,12 +774,12 @@ public class NewIssureServiceImpl implements NewIssureService {
} }
System.out.println("订单" + productionOrderNo + "的itemNo=" + itemNo + " - rqrq"); System.out.println("订单" + productionOrderNo + "的itemNo=" + itemNo + " - rqrq");
// 7.2 生成taskNo - rqrq
// 6.2 生成taskNo - rqrq
TransNoControl transData = transNoService.getTransNo(site, "WOT", 10); TransNoControl transData = transNoService.getTransNo(site, "WOT", 10);
String taskNo = transData.getNewTransNo(); String taskNo = transData.getNewTransNo();
System.out.println("生成任务编号:" + taskNo + " - rqrq"); System.out.println("生成任务编号:" + taskNo + " - rqrq");
// 7.3 准备wms_order_task对象暂不插入数据库- rqrq
// 6.3 准备wms_order_task对象暂不插入数据库- rqrq
WmsOrderTask orderTask = new WmsOrderTask(); WmsOrderTask orderTask = new WmsOrderTask();
orderTask.setSite(site); orderTask.setSite(site);
orderTask.setTaskNo(taskNo); orderTask.setTaskNo(taskNo);
@ -886,7 +883,7 @@ public class NewIssureServiceImpl implements NewIssureService {
} }
System.out.println("准备SOIssueNotifyOrderMaterialList_detail对象" + detailList.size() + "条 - rqrq"); System.out.println("准备SOIssueNotifyOrderMaterialList_detail对象" + detailList.size() + "条 - rqrq");
// 7.7 构建WCS数据 - rqrq
// 6.7 构建WCS数据 - rqrq
NotifyDataToWcs wcsData = new NotifyDataToWcs(); NotifyDataToWcs wcsData = new NotifyDataToWcs();
wcsData.setSite(site); wcsData.setSite(site);
wcsData.setTaskNo(taskNo); wcsData.setTaskNo(taskNo);
@ -940,7 +937,7 @@ public class NewIssureServiceImpl implements NewIssureService {
wcsData.setPalletList(palletList); wcsData.setPalletList(palletList);
System.out.println("构建WCS数据完成,栈板数:" + palletList.size() + " - rqrq"); System.out.println("构建WCS数据完成,栈板数:" + palletList.size() + " - rqrq");
// 7.8 先调用WCS接口成功后再执行数据库操作- rqrq
// 6.8 先调用WCS接口成功后再执行数据库操作- rqrq
System.out.println("开始调用WCS接口 - rqrq"); System.out.println("开始调用WCS接口 - rqrq");
try { try {
wcsApiService.pushNotifyToWcsApi(wcsData); wcsApiService.pushNotifyToWcsApi(wcsData);
@ -993,6 +990,9 @@ public class NewIssureServiceImpl implements NewIssureService {
System.out.println("订单" + productionOrderNo + "处理完成 - rqrq"); System.out.println("订单" + productionOrderNo + "处理完成 - rqrq");
// 成功推送计数+1 - rqrq
successCount++;
} catch (RuntimeException e) { } catch (RuntimeException e) {
// 超时错误向上抛出 - rqrq // 超时错误向上抛出 - rqrq
if (e.getMessage().contains("超时") || e.getMessage().contains("timeout")) { 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); newIssureMapper.updateNotifyHeaderPushWcsFlag(site, notifyNo, pushWcsFlag);
System.out.println("更新申请单push_wcs_flag=" + pushWcsFlag + " - rqrq"); System.out.println("更新申请单push_wcs_flag=" + pushWcsFlag + " - rqrq");

Loading…
Cancel
Save