From 6062e826f1b1acde1bfe2887353c1214f2af12d6 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期四, 30 四月 2026 17:07:58 +0800
Subject: [PATCH] #上报 打印
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/CloudWmsReportServiceImpl.java | 129 ++++++++++++++++++++++++++++++++----------
1 files changed, 97 insertions(+), 32 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/CloudWmsReportServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/CloudWmsReportServiceImpl.java
index fbaa4ca..3fbab03 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/CloudWmsReportServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/CloudWmsReportServiceImpl.java
@@ -8,6 +8,7 @@
import com.vincent.rsf.server.api.feign.CloudWmsErpFeignClient;
import com.vincent.rsf.server.api.integration.dap.DapIlcwmsResponseNormalizer;
import com.vincent.rsf.server.api.service.CloudWmsReportService;
+import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,7 +21,7 @@
import java.util.Map;
/**
- * 绔嬪簱渚ц姹備簯浠擄細9.1 榧庢嵎 ilcwmsplus 鍏�/鍑哄簱涓ゆ帴鍙o紱9.2 浠嶄负 /api/report/inventoryAdjust锛屾姤鏂囦笌 9.1 鍚屼负 {data:[]}銆�
+ * 绔嬪簱渚ц姹備簯浠擄細ICusStockService 鍏ュ簱/鍑哄簱/璋冩嫧瀹屾垚鍙嶉锛�9.2 澧炲噺璋冩暣浠嶄负 /api/report/inventoryAdjust锛屾姤鏂囧悓涓� {data:[]}銆�
*/
@Slf4j
@Service
@@ -31,6 +32,8 @@
@Autowired
private CloudWmsErpFeignClient cloudWmsErpFeignClient;
+ @Autowired
+ private ObjectMapper objectMapper;
@Override
public Map<String, Object> syncMatnrsToCloud(Object body) {
@@ -57,6 +60,7 @@
boolean inbound = param.getInbound() == null || Boolean.TRUE.equals(param.getInbound());
DapIlcwmsCompletionRequest req = new DapIlcwmsCompletionRequest()
.setData(Collections.singletonList(buildInOutLine(param, inbound)));
+ logOutboundPayload("IN_OUT_RESULT", inbound ? "stockInCompleted" : "stockOutCompleted", req);
Map<String, Object> raw = inbound
? cloudWmsErpFeignClient.cusInventoryCompletionReport(req)
: cloudWmsErpFeignClient.cusOutboundCompletionReport(req);
@@ -94,22 +98,33 @@
} else {
return resultMap(400, "涓嶆敮鎸佺殑 changeType锛�" + changeType, null);
}
- Map<String, Object> raw = cloudWmsErpFeignClient.reportInventoryAdjust(req);
- return DapIlcwmsResponseNormalizer.toNotifyFormatFlexible(raw);
+ logOutboundPayload("INVENTORY_ADJUST", changeType == 3 ? "stockTransferCompleted" : "reportInventoryAdjust", req);
+ Map<String, Object> raw = changeType == 3
+ ? cloudWmsErpFeignClient.stockTransferCompleted(req)
+ : cloudWmsErpFeignClient.reportInventoryAdjust(req);
+ return changeType == 3
+ ? DapIlcwmsResponseNormalizer.toNotifyFormat(raw)
+ : DapIlcwmsResponseNormalizer.toNotifyFormatFlexible(raw);
}
private DapIlcwmsCompletionLine buildInOutLine(InOutResultReportParam param, boolean inbound) {
RemotesInfoProperties.Dap dap = erpApi.getDap();
+ CloudMatnrParts matnrParts = parseCloudMatnr(param.getMatNr());
+ String docType = StringUtils.isNotBlank(param.getWkType())
+ ? param.getWkType()
+ : (inbound ? "IN" : "OUT");
+ String unitNo = StringUtils.isNotBlank(param.getUnitNo()) ? param.getUnitNo() : "PCS";
DapIlcwmsCompletionLine line = new DapIlcwmsCompletionLine()
.setOrgNo(dap.getOrgNo())
- .setDocType(inbound ? dap.getDocTypeIn() : dap.getDocTypeOut())
+ .setDocType(docType)
.setDocNo(param.getOrderNo())
.setDocSeqNo(StringUtils.isNotBlank(param.getLineId()) ? param.getLineId() : "1")
- .setItemNo(param.getMatNr())
+ // 鎸変簯浠撹鍒欐媶鍒嗙墿鏂欑紪鐮�
+ .setItemNo(matnrParts.getItemNo())
.setQty(parseQty(param.getQty()))
- .setUnitNo(dap.getUnitNo())
- .setCombinationLotNo(param.getBatch())
- .setBarcode(resolveBarcode(param));
+ .setUnitNo(unitNo)
+ .setCombinationLotNo(matnrParts.getCombinationLotNo())
+ .setBarcode(matnrParts.getBarcode());
if (inbound) {
line.setInWarehouseNo(param.getWareHouseId()).setInCellNo(param.getLocId());
} else {
@@ -125,21 +140,23 @@
*/
private DapIlcwmsCompletionLine buildAdjustLine(InventoryAdjustReportParam param, boolean fillIn, boolean fillOut, String docSeqOverride) {
RemotesInfoProperties.Dap dap = erpApi.getDap();
- String docType = resolveAdjustDocType(param, dap);
+ String docType = resolveAdjustDocType(param);
String docNo = StringUtils.isNotBlank(param.getDocNo()) ? param.getDocNo() : "ADJ";
String docSeq = docSeqOverride != null ? docSeqOverride
: (StringUtils.isNotBlank(param.getDocSeqNo()) ? param.getDocSeqNo() : "1");
- String unit = StringUtils.isNotBlank(param.getUnitNo()) ? param.getUnitNo() : dap.getUnitNo();
+ String unit = StringUtils.isNotBlank(param.getUnitNo()) ? param.getUnitNo() : "PCS";
+ CloudMatnrParts matnrParts = parseCloudMatnr(param.getMatNr());
DapIlcwmsCompletionLine line = new DapIlcwmsCompletionLine()
.setOrgNo(dap.getOrgNo())
.setDocType(docType)
.setDocNo(docNo)
.setDocSeqNo(docSeq)
- .setItemNo(param.getMatNr())
+ // 鎸変簯浠撹鍒欐媶鍒嗙墿鏂欑紪鐮�
+ .setItemNo(matnrParts.getItemNo())
.setQty(parseQty(param.getQty()))
.setUnitNo(unit)
- .setCombinationLotNo(param.getBatch())
- .setBarcode(resolveAdjustBarcode(param));
+ .setCombinationLotNo(matnrParts.getCombinationLotNo())
+ .setBarcode(matnrParts.getBarcode());
if (fillIn) {
line.setInWarehouseNo(param.getWareHouseId());
line.setInCellNo(StringUtils.isNotBlank(param.getTargetLocId()) ? param.getTargetLocId() : param.getSourceLocId());
@@ -151,41 +168,79 @@
return line;
}
- private static String resolveAdjustDocType(InventoryAdjustReportParam param, RemotesInfoProperties.Dap dap) {
+ private static String resolveAdjustDocType(InventoryAdjustReportParam param) {
if (StringUtils.isNotBlank(param.getDocType())) {
return param.getDocType();
}
Integer ct = param.getChangeType();
if (ct != null && ct == 2) {
- return dap.getDocTypeOut();
+ return "OUT";
}
if (ct != null && ct == 3) {
- return dap.getDocTypeAdj();
+ return "ADJ";
}
- return dap.getDocTypeIn();
+ return "IN";
}
- private static String resolveBarcode(InOutResultReportParam param) {
- if (StringUtils.isNotBlank(param.getBarcode())) {
- return param.getBarcode();
+ // private static String resolveBarcode(InOutResultReportParam param) {
+ // if (StringUtils.isNotBlank(param.getBarcode())) {
+ // return param.getBarcode();
+ // }
+ // if (StringUtils.isNotBlank(param.getPalletId())) {
+ // return param.getPalletId();
+ // }
+ // if (param.getMatNr() != null && param.getLocId() != null) {
+ // return param.getMatNr() + ":" + param.getLocId();
+ // }
+ // return param.getMatNr();
+ // }
+ //
+ // private static String resolveAdjustBarcode(InventoryAdjustReportParam param) {
+ // if (StringUtils.isNotBlank(param.getBarcode())) {
+ // return param.getBarcode();
+ // }
+ // if (StringUtils.isNotBlank(param.getPalletId())) {
+ // return param.getPalletId();
+ // }
+ // return param.getMatNr();
+ // }
+
+ /**
+ * 浜戜粨鍥炴姤瀛楁鏄犲皠锛氫笁娈靛紡鍙栧墠涓ゆ锛宐arcode 淇濈暀鍘熶覆銆�
+ */
+ private static CloudMatnrParts parseCloudMatnr(String matNr) {
+ if (StringUtils.isBlank(matNr)) {
+ return new CloudMatnrParts(null, null, null);
}
- if (StringUtils.isNotBlank(param.getPalletId())) {
- return param.getPalletId();
+ String[] arr = matNr.split("#", -1);
+ if (arr.length >= 3) {
+ return new CloudMatnrParts(arr[0], arr[1], matNr);
}
- if (param.getMatNr() != null && param.getLocId() != null) {
- return param.getMatNr() + ":" + param.getLocId();
- }
- return param.getMatNr();
+ return new CloudMatnrParts(matNr, null, matNr);
}
- private static String resolveAdjustBarcode(InventoryAdjustReportParam param) {
- if (StringUtils.isNotBlank(param.getBarcode())) {
- return param.getBarcode();
+ private static class CloudMatnrParts {
+ private final String itemNo;
+ private final String combinationLotNo;
+ private final String barcode;
+
+ private CloudMatnrParts(String itemNo, String combinationLotNo, String barcode) {
+ this.itemNo = itemNo;
+ this.combinationLotNo = combinationLotNo;
+ this.barcode = barcode;
}
- if (StringUtils.isNotBlank(param.getPalletId())) {
- return param.getPalletId();
+
+ public String getItemNo() {
+ return itemNo;
}
- return param.getMatNr();
+
+ public String getCombinationLotNo() {
+ return combinationLotNo;
+ }
+
+ public String getBarcode() {
+ return barcode;
+ }
}
private static Double parseQty(String q) {
@@ -225,4 +280,14 @@
map.put("data", data);
return map;
}
+
+ private void logOutboundPayload(String reportType, String endpoint, DapIlcwmsCompletionRequest req) {
+ try {
+ log.info("浜戜粨鐪熷疄璇锋眰鎶ユ枃锛宺eportType={}锛宔ndpoint={}锛宲ayload={}",
+ reportType, endpoint, objectMapper.writeValueAsString(req));
+ } catch (Exception e) {
+ log.warn("浜戜粨鐪熷疄璇锋眰鎶ユ枃搴忓垪鍖栧け璐ワ紝reportType={}锛宔ndpoint={}锛歿}",
+ reportType, endpoint, e.getMessage());
+ }
+ }
}
--
Gitblit v1.9.1