From 5213d5c3bf7c4b60fbb308fdadfb84f6d999c38b Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期五, 14 十一月 2025 23:18:35 +0800
Subject: [PATCH] 出庫訂單完成上報功能優化
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java | 235 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 164 insertions(+), 71 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
index d9a0ccb..c723680 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
@@ -291,14 +291,15 @@
if (!Objects.isNull(user)) {
nickName = user.getNickname();
}
- //鑾峰彇鍏ュ簱搴撲綅淇℃伅
+ //鑾峰彇搴撳瓨搴撲綅淇℃伅
if (order.getType().equals(OrderType.ORDER_IN.type)) {
+ //鑾峰彇鍏ュ簱搴撲綅淇℃伅
//绛涢�夊綋鍓嶅敮涓�瀛楁鎵�鏈夊嚭鍏ュ簱淇℃伅
List<StockItem> stockItems = stockItemService.list(new LambdaQueryWrapper<StockItem>()
.eq(StockItem::getFieldsIndex, orderItem.getFieldsIndex()));
//鑾峰彇搴撳瓨涓鍗曞簱浣�
Set<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toSet());
- //鑾峰彇搴撳瓨搴撲綅淇℃伅
+
Stock stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
.in(Stock::getId, longSet)
.eq(Stock::getType, OrderType.ORDER_IN.type)
@@ -306,82 +307,173 @@
if (!Objects.isNull(stocks)) {
param.setZone(stocks.getLocCode());
}
- }
- //鑾峰彇绱㈠紩鍐呭
- Map<String, String> fields = FieldsUtils.getFields(orderItem.getFieldsIndex());
+ //鑾峰彇绱㈠紩鍐呭
+ Map<String, String> fields = FieldsUtils.getFields(orderItem.getFieldsIndex());
+ //璁剧疆閫氱敤鍙傛暟
+ param.setWMSNO(order.getCode())
+ .setPONO(order.getPoCode())
+ .setOrderNO(order.getPoCode())
+ .setOrderDate(order.getCreateTime())
+ .setItemCode(orderItem.getMatnrCode())
+ .setEditUser(nickName)
+ .setEditDate(order.getUpdateTime())
+ .setGoodsNO(fields.get("crushNo"))
+ .setMemoDtl(order.getMemo());
- //璁剧疆閫氱敤鍙傛暟
- param.setWMSNO(order.getCode())
- .setPONO(order.getPoCode())
- .setOrderNO(order.getPoCode())
- .setOrderDate(order.getCreateTime())
- .setItemCode(orderItem.getMatnrCode())
- .setEditUser(nickName)
- .setEditDate(order.getUpdateTime())
- .setGoodsNO(fields.get("crushNo"))
- .setMemoDtl(order.getMemo());
+ if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
+ //閲囪喘鍏ュ簱鍗�
+ params.setOrderType("PO_Instock").setAction("Update");
+ //鑾峰彇鎸囧畾鏌ヨ瀛楁CrushNo 绁ㄥ彿
+ param.setInQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type)) {
+ //閲囪喘閫�璐�
+ params.setOrderType("PR_Outstock").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER_IN.type)) {
+ //璋冩嫈鍏ュ簱鍗�
+ params.setOrderType("Mv_Instock").setAction("Update");
- if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
- //閲囪喘鍏ュ簱鍗�
- params.setOrderType("PO_Instock").setAction("Update");
- //鑾峰彇鎸囧畾鏌ヨ瀛楁CrushNo 绁ㄥ彿
- param.setInQty(orderItem.getQty());
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type)) {
- //閲囪喘閫�璐�
- params.setOrderType("PR_Outstock").setAction("Update");
- param.setOutQty(orderItem.getQty());
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER_IN.type)) {
- //璋冩嫈鍏ュ簱鍗�
- params.setOrderType("Mv_Instock").setAction("Update");
-
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) {
- //鐢熶骇鍏ュ簱鍗�
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) {
+ //鐢熶骇鍏ュ簱鍗�
// params.setOrderType("WO_Outstock").setAction("Update");
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) {
- //鐢熶骇閫�鏂�
- params.setOrderType("WR_Instock").setAction("Update");
- param.setInQty(orderItem.getQty());
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) {
- //鐢熶骇棰嗘枡
- params.setOrderType("WO_Outstock").setAction("Update");
- param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) {
+ //鐢熶骇閫�鏂�
+ params.setOrderType("WR_Instock").setAction("Update");
+ param.setInQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) {
+ //鐢熶骇棰嗘枡
+ params.setOrderType("WO_Outstock").setAction("Update");
+ param.setOutQty(orderItem.getQty());
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
- //鐢熶骇琛ユ枡
- params.setOrderType("WR_Instock_BL").setAction("Update");
- param.setOutQty(orderItem.getQty());
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_FIX_OUT.type)) {
- params.setOrderType("WO_Outstock_WR").setAction("Update");
- param.setOutQty(orderItem.getQty());
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)) {
- //鍏跺畠鍏ュ簱鍗�/鎵嬪姩鍏ュ簱鍗�
- params.setOrderType("In_Instock").setAction("Update");
- param.setInQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
+ //鐢熶骇琛ユ枡
+ params.setOrderType("WR_Instock_BL").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_FIX_OUT.type)) {
+ params.setOrderType("WO_Outstock_WR").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)) {
+ //鍏跺畠鍏ュ簱鍗�/鎵嬪姩鍏ュ簱鍗�
+ params.setOrderType("In_Instock").setAction("Update");
+ param.setInQty(orderItem.getQty());
- } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
- //鍏跺畠鍑哄簱鍗�/鎵嬪姩鍑哄簱鍗�
- params.setOrderType("Io_Outstock").setAction("Update");
- param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
+ //鍏跺畠鍑哄簱鍗�/鎵嬪姩鍑哄簱鍗�
+ params.setOrderType("Io_Outstock").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ }
+ reportData.add(param);
+
+
+ params.setData(reportData);
+ try {
+ R reported = uploadReportOrders(params);
+ if (Integer.valueOf(reported.get("code").toString()) == 200) {
+ order.setNtyStatus(OrderReportStatus.ORDER_REPORT_STATUS_ALL.val);
+ asnOrderService.updateById(order);
+ }
+ } catch (Exception e) {
+ log.error("<UNK>", e);
+ }
+ try {
+ //浼戠湢3绉�
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ } else if (order.getType().equals(OrderType.ORDER_OUT.type)){
+ List<Stock> stocks = stockService.list(new LambdaQueryWrapper<Stock>().eq(Stock::getSourceCode, order.getCode()));
+ if (stocks.isEmpty()) {
+ throw new CoolException("鍑哄韩姝峰彶涓嶅瓨鍦紒锛�");
+ }
+ String finalNickName = nickName;
+ stocks.forEach(stock -> {
+ //绛涢�夊綋鍓嶅敮涓�瀛楁鎵�鏈夊嚭鍏ュ簱淇℃伅
+ List<StockItem> stockItems = stockItemService.list(new LambdaQueryWrapper<StockItem>()
+ .eq(StockItem::getStockId, stock.getId()));
+ if (stockItems.isEmpty()) {
+ throw new CoolException("鍑哄韩鍠槑绱颁笉瀛樺湪锛侊紒");
+ }
+ //鑾峰彇搴撳瓨涓鍗曞簱浣�
+// Set<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toSet());
+ stockItems.forEach(items -> {
+ List<ReportDataParam> dataParams = new ArrayList<>();
+ //鑾峰彇绱㈠紩鍐呭
+ Map<String, String> fields = FieldsUtils.getFields(items.getFieldsIndex());
+ //璁剧疆閫氱敤鍙傛暟
+ param.setWMSNO(order.getCode())
+ .setPONO(order.getPoCode())
+ .setOrderNO(order.getPoCode())
+ .setOrderDate(order.getCreateTime())
+ .setItemCode(items.getMatnrCode())
+ .setEditUser(finalNickName)
+ .setEditDate(order.getUpdateTime())
+ .setGoodsNO(fields.get("crushNo"))
+ .setMemoDtl(order.getMemo());
+
+ if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
+ //閲囪喘鍏ュ簱鍗�
+ params.setOrderType("PO_Instock").setAction("Update");
+ //鑾峰彇鎸囧畾鏌ヨ瀛楁CrushNo 绁ㄥ彿
+ param.setInQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type)) {
+ //閲囪喘閫�璐�
+ params.setOrderType("PR_Outstock").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER_IN.type)) {
+ //璋冩嫈鍏ュ簱鍗�
+ params.setOrderType("Mv_Instock").setAction("Update");
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) {
+ //鐢熶骇鍏ュ簱鍗�
+// params.setOrderType("WO_Outstock").setAction("Update");
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) {
+ //鐢熶骇閫�鏂�
+ params.setOrderType("WR_Instock").setAction("Update");
+ param.setInQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) {
+ //鐢熶骇棰嗘枡
+ params.setOrderType("WO_Outstock").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
+ //鐢熶骇琛ユ枡
+ params.setOrderType("WR_Instock_BL").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_FIX_OUT.type)) {
+ params.setOrderType("WO_Outstock_WR").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)) {
+ //鍏跺畠鍏ュ簱鍗�/鎵嬪姩鍏ュ簱鍗�
+ params.setOrderType("In_Instock").setAction("Update");
+ param.setInQty(orderItem.getQty());
+
+ } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
+ //鍏跺畠鍑哄簱鍗�/鎵嬪姩鍑哄簱鍗�
+ params.setOrderType("Io_Outstock").setAction("Update");
+ param.setOutQty(orderItem.getQty());
+ }
+ dataParams.add(param);
+
+ params.setData(dataParams);
+ try {
+ R reported = uploadReportOrders(params);
+ if (Integer.valueOf(reported.get("code").toString()) == 200) {
+ order.setReportOnce(5);
+ asnOrderService.updateById(order);
+ }
+ } catch (Exception e) {
+ log.error("<UNK>", e);
+ }
+ try {
+ //浼戠湢3绉�
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ });
+ });
}
- reportData.add(param);
});
- params.setData(reportData);
- try {
- R reported = uploadReportOrders(params);
- if (Integer.valueOf(reported.get("code").toString()) == 200) {
- order.setNtyStatus(OrderReportStatus.ORDER_REPORT_STATUS_ALL.val);
- asnOrderService.updateById(order);
- }
- } catch (Exception e) {
- log.error("<UNK>", e);
- }
- try {
- //浼戠湢3绉�
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
}
/**
@@ -484,7 +576,8 @@
try {
R reported = uploadReportOrders(params);
if (Integer.valueOf(reported.get("code").toString()) == 200) {
- order.setNtyStatus(OrderReportStatus.ORDER_REPORT_STATUS_ALL.val);
+ //淇敼璁㈠崟涓婃姤娆℃暟
+ order.setReportOnce(order.getReportOnce() + 1);
asnOrderService.updateById(order);
}
} catch (Exception e) {
--
Gitblit v1.9.1