From 2a34b52125d5fc356d65ee1e8912845dd601d4e3 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期五, 01 五月 2026 12:52:02 +0800
Subject: [PATCH] 多加入参数和修改规则
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/CloudWmsReportServiceImpl.java | 88 ++++++++++++++++++++++++++++++++------------
1 files changed, 64 insertions(+), 24 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 3fbab03..3adaa1b 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
@@ -27,6 +27,11 @@
@Service
public class CloudWmsReportServiceImpl implements CloudWmsReportService {
+ /** 浜戜粨鍥為锛氶�氱煡鍗� orgNo 涓虹┖鏃剁殑榛樿缁勭粐 */
+ private static final String DEFAULT_CLOUD_ORG_NO = "1";
+ /** 浜戜粨鍥為锛氶�氱煡鍗� inWarehouseNo / outWarehouseNo 涓虹┖鏃剁殑榛樿浠撶紪鐮� */
+ private static final String DEFAULT_CLOUD_WH_NO = "101";
+
@Autowired
private RemotesInfoProperties erpApi;
@@ -38,7 +43,7 @@
@Override
public Map<String, Object> syncMatnrsToCloud(Object body) {
if (!isCloudWmsConfigured()) {
- log.warn("ErpApi(浜戜粨WMS) 鏈厤缃� host锛岃烦杩囩墿鏂欏熀纭�淇℃伅鍚屾");
+ log.warn("ErpApi(浜戜粨WMS) 鏈厤缃� host/base-url锛岃烦杩囩墿鏂欏熀纭�淇℃伅鍚屾");
return stubSuccess("浜戜粨鍦板潃鏈厤缃紝鏈疄闄呭悓姝�");
}
return cloudWmsErpFeignClient.syncMatnrs(body != null ? body : new HashMap<>());
@@ -50,10 +55,10 @@
return resultMap(400, "鍙傛暟涓嶈兘涓虹┖", null);
}
if (!isCloudWmsConfigured()) {
- log.warn("ErpApi(浜戜粨WMS) 鏈厤缃� host锛岃烦杩� 9.1 鍏�/鍑哄簱缁撴灉涓婃姤锛岃鍗曪細{}", param.getOrderNo());
+ log.warn("ErpApi(浜戜粨WMS) 鏈厤缃� host/base-url锛岃烦杩� 9.1 鍏�/鍑哄簱缁撴灉涓婃姤锛岃鍗曪細{}", param.getOrderNo());
return stubSuccess("浜戜粨鍦板潃鏈厤缃紝鏈疄闄呬笂鎶�");
}
- String err = validateDapBase();
+ String err = validateDapBaseForInOut(param);
if (err != null) {
return resultMap(400, err, null);
}
@@ -68,17 +73,46 @@
}
@Override
+ public Map<String, Object> reportInOutResults(List<InOutResultReportParam> lines) {
+ if (lines == null || lines.isEmpty()) {
+ return resultMap(400, "鏄庣粏涓嶈兘涓虹┖", null);
+ }
+ if (!isCloudWmsConfigured()) {
+ log.warn("ErpApi(浜戜粨WMS) 鏈厤缃� host/base-url锛岃烦杩� 9.1 鍏ュ嚭搴撳悎骞朵笂鎶�");
+ return stubSuccess("浜戜粨鍦板潃鏈厤缃紝鏈疄闄呬笂鎶�");
+ }
+ InOutResultReportParam first = lines.get(0);
+ boolean inbound = first.getInbound() == null || Boolean.TRUE.equals(first.getInbound());
+ for (InOutResultReportParam param : lines) {
+ String err = validateDapBaseForInOut(param);
+ if (err != null) {
+ return resultMap(400, err, null);
+ }
+ boolean rowIn = param.getInbound() == null || Boolean.TRUE.equals(param.getInbound());
+ if (rowIn != inbound) {
+ return resultMap(400, "鍚堝苟涓婃姤椤诲悓涓哄叆搴撴垨鍚屼负鍑哄簱", null);
+ }
+ }
+ List<DapIlcwmsCompletionLine> data = new ArrayList<>(lines.size());
+ for (InOutResultReportParam param : lines) {
+ data.add(buildInOutLine(param, inbound));
+ }
+ DapIlcwmsCompletionRequest req = new DapIlcwmsCompletionRequest().setData(data);
+ logOutboundPayload("IN_OUT_RESULT_BATCH", inbound ? "stockInCompleted" : "stockOutCompleted", req);
+ Map<String, Object> raw = inbound
+ ? cloudWmsErpFeignClient.cusInventoryCompletionReport(req)
+ : cloudWmsErpFeignClient.cusOutboundCompletionReport(req);
+ return DapIlcwmsResponseNormalizer.toNotifyFormat(raw);
+ }
+
+ @Override
public Map<String, Object> reportInventoryAdjust(InventoryAdjustReportParam param) {
if (param == null) {
return resultMap(400, "鍙傛暟涓嶈兘涓虹┖", null);
}
if (!isCloudWmsConfigured()) {
- log.warn("ErpApi(浜戜粨WMS) 鏈厤缃� host锛岃烦杩� 9.2 搴撳瓨璋冩暣涓婃姤锛岀墿鏂欙細{}", param.getMatNr());
+ log.warn("ErpApi(浜戜粨WMS) 鏈厤缃� host/base-url锛岃烦杩� 9.2 搴撳瓨璋冩暣涓婃姤锛岀墿鏂欙細{}", param.getMatNr());
return stubSuccess("浜戜粨鍦板潃鏈厤缃紝鏈疄闄呬笂鎶�");
- }
- String err = validateDapBase();
- if (err != null) {
- return resultMap(400, err, null);
}
Integer changeType = param.getChangeType();
if (changeType == null) {
@@ -107,15 +141,26 @@
: DapIlcwmsResponseNormalizer.toNotifyFormatFlexible(raw);
}
+ private String validateDapBaseForInOut(InOutResultReportParam param) {
+ if (param != null && StringUtils.isBlank(param.getUnitNo())) {
+ return "unitNo 涓嶈兘涓虹┖";
+ }
+ return null;
+ }
+
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";
+ String unitNo = StringUtils.trimToEmpty(param.getUnitNo());
+ String orgNoLine = StringUtils.isNotBlank(param.getOrgNo()) ? param.getOrgNo().trim() : DEFAULT_CLOUD_ORG_NO;
+ String docWh = StringUtils.trimToNull(param.getDocWarehouseNo());
+ String inWhLine = StringUtils.isNotBlank(param.getInWarehouseNo()) ? param.getInWarehouseNo().trim() : DEFAULT_CLOUD_WH_NO;
+ String outWhLine = StringUtils.isNotBlank(param.getOutWarehouseNo()) ? param.getOutWarehouseNo().trim() : DEFAULT_CLOUD_WH_NO;
DapIlcwmsCompletionLine line = new DapIlcwmsCompletionLine()
- .setOrgNo(dap.getOrgNo())
+ .setOrgNo(orgNoLine)
+ .setDocWarehouseNo(docWh)
.setDocType(docType)
.setDocNo(param.getOrderNo())
.setDocSeqNo(StringUtils.isNotBlank(param.getLineId()) ? param.getLineId() : "1")
@@ -126,9 +171,9 @@
.setCombinationLotNo(matnrParts.getCombinationLotNo())
.setBarcode(matnrParts.getBarcode());
if (inbound) {
- line.setInWarehouseNo(param.getWareHouseId()).setInCellNo(param.getLocId());
+ line.setInWarehouseNo(inWhLine).setInCellNo(param.getLocId());
} else {
- line.setOutWarehouseNo(param.getWareHouseId()).setOutCellNo(param.getLocId());
+ line.setOutWarehouseNo(outWhLine).setOutCellNo(param.getLocId());
}
return line;
}
@@ -139,7 +184,6 @@
* @param docSeqOverride 闈炵┖鏃剁敤浣滈」娆★紙绉诲簱绗簩琛岀瓑锛�
*/
private DapIlcwmsCompletionLine buildAdjustLine(InventoryAdjustReportParam param, boolean fillIn, boolean fillOut, String docSeqOverride) {
- RemotesInfoProperties.Dap dap = erpApi.getDap();
String docType = resolveAdjustDocType(param);
String docNo = StringUtils.isNotBlank(param.getDocNo()) ? param.getDocNo() : "ADJ";
String docSeq = docSeqOverride != null ? docSeqOverride
@@ -147,7 +191,7 @@
String unit = StringUtils.isNotBlank(param.getUnitNo()) ? param.getUnitNo() : "PCS";
CloudMatnrParts matnrParts = parseCloudMatnr(param.getMatNr());
DapIlcwmsCompletionLine line = new DapIlcwmsCompletionLine()
- .setOrgNo(dap.getOrgNo())
+ .setOrgNo(DEFAULT_CLOUD_ORG_NO)
.setDocType(docType)
.setDocNo(docNo)
.setDocSeqNo(docSeq)
@@ -254,17 +298,13 @@
}
}
- private String validateDapBase() {
- RemotesInfoProperties.Dap d = erpApi.getDap();
- if (d == null || StringUtils.isBlank(d.getOrgNo())) {
- return "鏈厤缃� platform.erp.dap.org-no";
- }
- return null;
- }
-
private boolean isCloudWmsConfigured() {
String host = erpApi.getHost();
- return host != null && !host.trim().isEmpty();
+ if (host != null && !host.trim().isEmpty()) {
+ return true;
+ }
+ String baseUrl = erpApi.getBaseUrl();
+ return baseUrl != null && !baseUrl.trim().isEmpty();
}
private Map<String, Object> stubSuccess(String msg) {
--
Gitblit v1.9.1