From c81fc5e2a4f4153be2bb8602ed14a0743e6ecd29 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期四, 05 三月 2026 11:14:50 +0800
Subject: [PATCH] RCS对接优化
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java | 34 +++++++++++++++++++++-------------
1 files changed, 21 insertions(+), 13 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 4f31915..b107cee 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
@@ -53,7 +53,7 @@
* @create 2025/3/12 17:08
*/
@Slf4j
-@Service
+@Service("reportMsgService")
public class ReportMsgServiceImpl implements ReportMsgService {
@Autowired
@@ -249,6 +249,7 @@
params.setAction("Update").setOrderType("PD_stock");
HttpEntity httpEntity = new HttpEntity(params, headers);
+
ResponseEntity<String> exchange = restTemplate.exchange(rcsUrl, HttpMethod.POST, httpEntity, String.class);
log.info("鐩樼偣搴撳瓨淇敼锛岃繑鍥炵粨鏋滐細 {}", exchange);
if (Objects.isNull(exchange.getBody())) {
@@ -277,6 +278,7 @@
* @version 1.0
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public void reportOrders(WkOrder order) {
ReportParams params = new ReportParams();
List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId()));
@@ -318,7 +320,7 @@
.setEditUser(nickName)
.setEditDate(order.getUpdateTime())
.setZone(stocks.getLocCode())
- .setGoodsNO(fields.get("crushNo"))
+ // .setGoodsNO(fields.get("crushNo")) // 绁ㄥ彿鏆備笉浣跨敤
.setMemoDtl(order.getMemo());
if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
@@ -348,7 +350,7 @@
} else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
//鐢熶骇琛ユ枡
- params.setOrderType("WR_Instock_BL").setAction("Update");
+ params.setOrderType("WO_Outstock_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");
@@ -369,7 +371,7 @@
try {
R reported = uploadReportOrders(params);
if (Integer.valueOf(reported.get("code").toString()) == 200) {
- order.setNtyStatus(OrderReportStatus.ORDER_REPORT_STATUS_ALL.val);
+ order.setNtyStatus(OrderReportStatus.ORDER_REPORT_STATUS_ALL.val).setReportOnce(5);
asnOrderService.updateById(order);
}
} catch (Exception e) {
@@ -377,7 +379,7 @@
}
try {
//浼戠湢3绉�
- Thread.sleep(3000);
+ Thread.sleep(300);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
@@ -386,8 +388,14 @@
if (stockItems.isEmpty()) {
return;
}
+ Set<Long> stockIds = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toSet());
+ List<Stock> stocks = stockService.listByIds(stockIds);
+ //杩囨护鎷h揣鍏ュ簱鏄庣粏锛岄伩鍏嶄笂鎶�
+ List<Stock> stockList = stocks.stream().filter(stock -> stock.getType().equals(OrderType.ORDER_OUT.type) && !Objects.isNull(stock.getSourceCode())).collect(Collectors.toList());
+ List<Long> list = stockList.stream().map(Stock::getId).collect(Collectors.toList());
+ List<StockItem> stockItems1 = stockItemService.list(new LambdaQueryWrapper<StockItem>().in(StockItem::getStockId, list));
String finalNickName = nickName;
- stockItems.forEach(stockItem -> {
+ stockItems1.forEach(stockItem -> {
List<ReportDataParam> dataParams = new ArrayList<>();
//鑾峰彇绱㈠紩鍐呭
Map<String, String> fields = FieldsUtils.getFields(stockItem.getFieldsIndex());
@@ -399,7 +407,7 @@
.setItemCode(stockItem.getMatnrCode())
.setEditUser(finalNickName)
.setEditDate(order.getUpdateTime())
- .setGoodsNO(fields.get("crushNo"))
+ // .setGoodsNO(fields.get("crushNo")) // 绁ㄥ彿鏆備笉浣跨敤
.setMemoDtl(order.getMemo());
if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
//閲囪喘鍏ュ簱鍗�
@@ -426,7 +434,7 @@
param.setOutQty(stockItem.getAnfme());
} else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
//鐢熶骇琛ユ枡
- params.setOrderType("WR_Instock_BL").setAction("Update");
+ params.setOrderType("WO_Outstock_BL").setAction("Update");
param.setOutQty(stockItem.getAnfme());
} else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_FIX_OUT.type)) {
params.setOrderType("WO_Outstock_WR").setAction("Update");
@@ -455,7 +463,7 @@
}
try {
//浼戠湢3绉�
- Thread.sleep(3000);
+ Thread.sleep(300);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
@@ -491,7 +499,7 @@
List<StockItem> stockItems = stockItemService.list(new LambdaQueryWrapper<StockItem>()
.eq(StockItem::getFieldsIndex, orderItem.getFieldsIndex()));
//鑾峰彇搴撳瓨涓鍗曞簱浣�
- Set<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toSet());
+ List<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toList());
//鑾峰彇搴撳瓨搴撲綅淇℃伅
Stock stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
.in(Stock::getId, longSet)
@@ -512,7 +520,7 @@
.setItemCode(orderItem.getMatnrCode())
.setEditUser(nickName)
.setEditDate(order.getUpdateTime())
- .setGoodsNO(fields.get("crushNo"))
+ // .setGoodsNO(fields.get("crushNo")) // 绁ㄥ彿鏆備笉浣跨敤
.setMemoDtl(order.getMemo());
if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
@@ -542,7 +550,7 @@
} else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
//鐢熶骇琛ユ枡
- params.setOrderType("WR_Instock_BL").setAction("Update");
+ params.setOrderType("WO_Outstock_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");
@@ -572,7 +580,7 @@
try {
//浼戠湢3绉�
- Thread.sleep(3000);
+ Thread.sleep(300);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
--
Gitblit v1.9.1