W出口仓单推送关务开发;

This commit is contained in:
王奎兴
2026-06-10 17:49:58 +08:00
parent ae2f671a9c
commit fdd0693072
@@ -752,8 +752,9 @@ public class PickingOrderApplicationService {
PickingMaterialDetailDO pickingMaterialDetailDO = new PickingMaterialDetailDO();
pickingMaterialDetailDO.setPickingOrderNumber(pickingOrder.getPickingOrderNumber());
List<PickingMaterialDetailPO> materialDetailList = pickingMaterialDetailService.queryList(pickingMaterialDetailDO);
if (materialDetailList == null || materialDetailList.isEmpty()) {
List<OutMaterialDetail> outMaterialDetailList = outMaterialDetailService.list(new QueryWrapper<OutMaterialDetail>().lambda()
.eq(OutMaterialDetail::getOutOrderNumber, pickingOrder.getOrderNumber()));
if (outMaterialDetailList == null || outMaterialDetailList.isEmpty()) {
failCount++;
failMsg.append("id:").append(id).append("无物料明细;");
continue;
@@ -804,7 +805,7 @@ public class PickingOrderApplicationService {
// 3. 构建主单
Map<String, Object> order = new HashMap<>();
// etpsPreentNo: 入库单号 - 取拣货明细中的入库单号(第一个)
String inOrderNumber = materialDetailList.get(0).getInOrderNumber();
String inOrderNumber = outMaterialDetailList.get(0).getInOrderNumber();
order.put("etpsPreentNo", inOrderNumber != null ? inOrderNumber : "");
order.put("inputTime", new Date());
order.put("mtpckEndprdTypecd", "E"); // 成品(出口)
@@ -812,10 +813,20 @@ public class PickingOrderApplicationService {
// 4. 构建明细列表
List<Map<String, Object>> qnBillList = new ArrayList<>();
int gNo = 1;
for (PickingMaterialDetailPO detail : materialDetailList) {
for (OutMaterialDetail detail : outMaterialDetailList) {
Map<String, Object> item = new HashMap<>();
item.put("etpsPreentNo", detail.getInOrderNumber() != null ? detail.getInOrderNumber() : "");
item.put("gNo", gNo++);
item.put("etpsPreentNo", detail.getOutOrderNumber() != null ? detail.getOutOrderNumber() : "");
String lotNo = detail.getLotNo();
if (lotNo != null) {
String[] split = lotNo.split("-");
if (split.length == 2) {
item.put("gNo", split[1]);
} else {
item.put("gNo", ""); // 出仓订单行号
}
} else {
item.put("gNo", ""); // 出仓订单行号
}
item.put("gdsMtno", detail.getMaterialCode() != null ? detail.getMaterialCode() : "");
// 获取物料详情获取单价和币制
@@ -827,7 +838,7 @@ public class PickingOrderApplicationService {
// 计算申报总价
BigDecimal unitPrice = materialInfo.getUnitPrice();
BigDecimal pickingQty = detail.getPickingQuantity() != null ? detail.getPickingQuantity() : detail.getQuantity();
BigDecimal pickingQty = detail.getCheckQuantity() != null ? detail.getCheckQuantity() : detail.getQuantity();
if (unitPrice != null && pickingQty != null && unitPrice.compareTo(BigDecimal.ZERO) != 0) {
BigDecimal totalAmt = unitPrice.multiply(pickingQty).setScale(2, BigDecimal.ROUND_HALF_UP);
item.put("dclTotalAmt", totalAmt);
@@ -835,9 +846,18 @@ public class PickingOrderApplicationService {
}
}
item.put("dclQty", detail.getPickingQuantity() != null ? detail.getPickingQuantity() : detail.getQuantity()); // 申报数量
item.put("dclQty", detail.getCheckQuantity() != null ? detail.getCheckQuantity() : detail.getQuantity()); // 申报数量
item.put("orderNo", pickingOrder.getPickingOrderNumber()); // 出仓订单号
item.put("orderRow", gNo - 1); // 出仓订单行号
if (lotNo != null) {
String[] split = lotNo.split("-");
if (split.length == 2) {
item.put("orderRow", split[1]);// 出仓订单行号
} else {
item.put("orderRow", ""); // 出仓订单行号
}
} else {
item.put("orderRow", ""); // 出仓订单行号
}
item.put("bondInvtNo", bondInvtNo); // 原进口核注清单号
item.put("invtRow", invtRow); // 原进口核注清单行号
item.put("whNo", detail.getWarehouseCode() != null ? detail.getWarehouseCode() : ""); // 仓库