From 10776dd6f7f9ef9e47419427fcb1b692ed73d54d Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期二, 03 二月 2026 14:34:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/devlop-phyz' into devlop-phyz
---
rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java | 245 ++++++++++++++++++++++++++++++++----------------
1 files changed, 162 insertions(+), 83 deletions(-)
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
index 90edbd6..d2f59c7 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
@@ -2,17 +2,16 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.openApi.entity.dto.CommonResponse;
import com.vincent.rsf.openApi.entity.phyz.*;
import com.vincent.rsf.openApi.feign.wms.WmsServerFeignClient;
+import com.vincent.rsf.openApi.feign.wms.fallback.WmsServerFeignClientFallback;
import com.vincent.rsf.openApi.service.phyz.ErpReportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -20,6 +19,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -153,9 +153,23 @@
return CommonResponse.ok();
}
+ @ApiOperation("搴撳瓨鏌ヨ鏄庣粏锛堣〃鍗曟彁浜わ級")
+ @PostMapping(value = "/inventory/details", consumes = "application/x-www-form-urlencoded")
+ public CommonResponse queryInventoryDetailsForm(HttpServletRequest request) {
+ // 浠庤〃鍗曞弬鏁版瀯寤烘煡璇㈡潯浠�
+ InventoryQueryCondition condition = buildConditionFromRequestParams(request);
+ // 璋冪敤JSON澶勭悊鏂规硶
+ return queryInventoryDetails(condition);
+ }
+
@ApiOperation("搴撳瓨鏌ヨ鏄庣粏")
- @PostMapping("/inventory/details")
- public CommonResponse queryInventoryDetails(@RequestBody InventoryQueryCondition condition) {
+ @PostMapping(value = "/inventory/details", consumes = "application/json")
+ public CommonResponse queryInventoryDetails(@RequestBody(required = false) InventoryQueryCondition condition) {
+ // JSON鏂瑰紡锛氭敮鎸佷笉浼犻�掑弬鏁帮紙{}鎴杗ull鎴栫┖璇锋眰浣擄級锛屽垱寤洪粯璁ょ殑绌烘煡璇㈡潯浠跺璞�
+ if (condition == null) {
+ condition = new InventoryQueryCondition();
+ }
+
if (SIMULATED_DATA_ENABLE.equals("1")) {
String x = "[\n" +
" {\n" +
@@ -207,11 +221,6 @@
return CommonResponse.error("鏈嶅姟鏈垵濮嬪寲");
}
- // 鍙傛暟楠岃瘉
- if (condition == null) {
- return CommonResponse.error("鏌ヨ鏉′欢涓嶈兘涓虹┖");
- }
-
log.info("搴撳瓨鏌ヨ鏄庣粏璇锋眰鍙傛暟锛� {}", JSON.toJSONString(condition));
// 鐩存帴浼犻�掑疄浣撶被锛孎eign浼氳嚜鍔ㄥ簭鍒楀寲涓篔SON
@@ -247,87 +256,114 @@
}
} catch (Exception e) {
log.error("搴撳瓨鏌ヨ鏄庣粏澶辫触", e);
- // 杩囨护閿欒娑堟伅涓殑URL锛屽彧淇濈暀閿欒绫诲瀷
- String errorMessage = e.getMessage();
- if (errorMessage != null) {
- // 濡傛灉鍖呭惈"executing"锛岃鏄庢槸HTTP璇锋眰閿欒锛屽幓鎺塙RL閮ㄥ垎
- if (errorMessage.contains("executing")) {
- int executingIndex = errorMessage.indexOf("executing");
- if (executingIndex > 0) {
- // 鎻愬彇"executing"涔嬪墠鐨勯儴鍒嗭紙濡�"Read timed out"锛�
- errorMessage = errorMessage.substring(0, executingIndex).trim();
- } else {
- // 濡傛灉"executing"鍦ㄥ紑澶达紝浣跨敤榛樿閿欒娑堟伅
- errorMessage = "璇锋眰瓒呮椂";
- }
- }
- // 濡傛灉鍖呭惈"http://"鎴�"https://"锛屼篃灏濊瘯鍘绘帀URL閮ㄥ垎
- else if (errorMessage.contains("http://") || errorMessage.contains("https://")) {
- // 浣跨敤姝e垯琛ㄨ揪寮忓幓鎺塙RL
- errorMessage = errorMessage.replaceAll("https?://[^\\s]+", "").trim();
- if (errorMessage.isEmpty()) {
- errorMessage = "璇锋眰澶辫触";
- }
- }
- }
- return CommonResponse.error("鏌ヨ澶辫触锛�" + (errorMessage != null && !errorMessage.isEmpty() ? errorMessage : "鏈煡閿欒"));
+ String errorMessage = WmsServerFeignClientFallback.filterErrorMessage(e);
+ return CommonResponse.error(errorMessage);
}
}
+ @ApiOperation("搴撳瓨鏌ヨ姹囨�伙紙琛ㄥ崟鎻愪氦锛�")
+ @PostMapping(value = "/inventory/summary", consumes = "application/x-www-form-urlencoded")
+ public CommonResponse queryInventorySummaryForm(HttpServletRequest request) {
+ // 浠庤〃鍗曞弬鏁版瀯寤烘煡璇㈡潯浠�
+ InventoryQueryCondition condition = buildConditionFromRequestParams(request);
+ // 璋冪敤JSON澶勭悊鏂规硶
+ return queryInventorySummary(condition);
+ }
+
@ApiOperation("搴撳瓨鏌ヨ姹囨��")
- @PostMapping("/inventory/summary")
- public CommonResponse queryInventorySummary(@RequestBody JSONObject params) {
+ @PostMapping(value = "/inventory/summary", consumes = "application/json")
+ public CommonResponse queryInventorySummary(@RequestBody(required = false) InventoryQueryCondition condition) {
+ // JSON鏂瑰紡锛氭敮鎸佷笉浼犻�掑弬鏁帮紙{}鎴杗ull鎴栫┖璇锋眰浣擄級锛屽垱寤洪粯璁ょ殑绌烘煡璇㈡潯浠跺璞�
+ if (condition == null) {
+ condition = new InventoryQueryCondition();
+ }
+
if (SIMULATED_DATA_ENABLE.equals("1")) {
- String s = "{\n" +
- " \"code\": 200,\n" +
- " \"msg\": \"鎿嶄綔鎴愬姛\",\n" +
- " \"data\": [\n" +
- " {\n" +
- " \"wareHouseId\": \"WH001\",\n" +
- " \"wareHouseName\": \"鍘熸枡浠撳簱\",\n" +
- " \"matNr\": \"MAT10001\",\n" +
- " \"makTx\": \"閽㈡潗Q235\",\n" +
- " \"spec\": \"鍥芥爣GB/T700-2006\",\n" +
- " \"anfme\": 10.5,\n" +
- " \"unit\": \"鍚╘",\n" +
- " \"stockOrgId\": \"ORG001\",\n" +
- " \"batch\": \"BATCH20260106001\",\n" +
- " \"planNo\": \"Plan20260106006\"\n" +
- " },\n" +
- " {\n" +
- " \"wareHouseId\": \"WH001\",\n" +
- " \"wareHouseName\": \"鍘熸枡浠撳簱\",\n" +
- " \"matNr\": \"MAT10002\",\n" +
- " \"makTx\": \"閾濆瀷鏉�6061\",\n" +
- " \"spec\": \"鍥芥爣GB/T3190-2008\",\n" +
- " \"anfme\": 20.3,\n" +
- " \"unit\": \"鍚╘",\n" +
- " \"stockOrgId\": \"ORG001\",\n" +
- " \"batch\": \"BATCH20260106002\",\n" +
- " \"planNo\": \"Plan20260106005\"\n" +
- " },\n" +
- " {\n" +
- " \"wareHouseId\": \"WH002\",\n" +
- " \"wareHouseName\": \"鎴愬搧浠撳簱\",\n" +
- " \"matNr\": \"MAT30001\",\n" +
- " \"makTx\": \"鐢垫満鎴愬搧\",\n" +
- " \"spec\": \"380V 50Hz 15KW\",\n" +
- " \"anfme\": 100,\n" +
- " \"unit\": \"鍙癨",\n" +
- " \"stockOrgId\": \"ORG001\",\n" +
- " \"batch\": \"BATCH20260106003\",\n" +
- " \"planNo\": \"Plan20260106004\"\n" +
- " }\n" +
- " ]\n" +
- "}";
- return JSONObject.parseObject(s, CommonResponse.class);
+ String x = "[\n" +
+ " {\n" +
+ " \"wareHouseId\": \"WH001\",\n" +
+ " \"wareHouseName\": \"鍘熸枡浠撳簱\",\n" +
+ " \"matNr\": \"MAT10001\",\n" +
+ " \"matTx\": \"閽㈡潗Q235\",\n" +
+ " \"spec\": \"鍥芥爣GB/T700-2006\",\n" +
+ " \"anfme\": 10.5,\n" +
+ " \"unit\": \"鍚╘",\n" +
+ " \"stockOrgId\": \"ORG001\",\n" +
+ " \"batch\": \"BATCH20260106001\",\n" +
+ " \"planNo\": \"Plan20260106006\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"wareHouseId\": \"WH001\",\n" +
+ " \"wareHouseName\": \"鍘熸枡浠撳簱\",\n" +
+ " \"matNr\": \"MAT10002\",\n" +
+ " \"matTx\": \"閾濆瀷鏉�6061\",\n" +
+ " \"spec\": \"鍥芥爣GB/T3190-2008\",\n" +
+ " \"anfme\": 20.3,\n" +
+ " \"unit\": \"鍚╘",\n" +
+ " \"stockOrgId\": \"ORG001\",\n" +
+ " \"batch\": \"BATCH20260106002\",\n" +
+ " \"planNo\": \"Plan20260106005\"\n" +
+ " },\n" +
+ " {\n" +
+ " \"wareHouseId\": \"WH002\",\n" +
+ " \"wareHouseName\": \"鎴愬搧浠撳簱\",\n" +
+ " \"matNr\": \"MAT30001\",\n" +
+ " \"matTx\": \"鐢垫満鎴愬搧\",\n" +
+ " \"spec\": \"380V 50Hz 15KW\",\n" +
+ " \"anfme\": 100,\n" +
+ " \"unit\": \"鍙癨",\n" +
+ " \"stockOrgId\": \"ORG001\",\n" +
+ " \"batch\": \"BATCH20260106003\",\n" +
+ " \"planNo\": \"Plan20260106004\"\n" +
+ " }\n" +
+ "]";
+ return CommonResponse.ok(JSONArray.parseArray(x, InventorySummary.class));
}
- InventoryQueryCondition condition = JSON.parseObject(params.toJSONString(), InventoryQueryCondition.class);
- // 鏁版嵁澶勭悊锛岃浆鍙憇erver
- List<InventorySummary> inventorySummaries = Lists.newArrayList();
- return new CommonResponse().setCode(200).setData(inventorySummaries);
-
+ try {
+ if (wmsServerFeignClient == null) {
+ log.warn("WmsServerFeignClient鏈敞鍏ワ紝鏃犳硶杩涜璋冪敤");
+ return CommonResponse.error("鏈嶅姟鏈垵濮嬪寲");
+ }
+
+ log.info("搴撳瓨鏌ヨ姹囨�昏姹傚弬鏁帮細 {}", JSON.toJSONString(condition));
+
+ // 鐩存帴浼犻�掑疄浣撶被锛孎eign浼氳嚜鍔ㄥ簭鍒楀寲涓篔SON
+ R result = wmsServerFeignClient.queryInventorySummary(condition);
+
+ log.info("搴撳瓨鏌ヨ姹囨�昏繑鍥炵粨鏋滐細 {}", JSON.toJSONString(result));
+
+ if (result != null) {
+ // R绫荤户鎵胯嚜HashMap锛屼娇鐢╣et鏂规硶鑾峰彇鍊�
+ Integer code = (Integer) result.get("code");
+ String msg = (String) result.get("msg");
+ Object data = result.get("data");
+
+ if (code != null && code == 200) {
+ // 灏哅ap鍒楄〃杞崲涓篒nventorySummary鍒楄〃
+ if (data != null) {
+ @SuppressWarnings("unchecked")
+ List<Map<String, Object>> dataList = (List<Map<String, Object>>) data;
+ List<InventorySummary> inventorySummaries = new ArrayList<>();
+ for (Map<String, Object> item : dataList) {
+ InventorySummary summary = JSON.parseObject(JSON.toJSONString(item), InventorySummary.class);
+ inventorySummaries.add(summary);
+ }
+ return CommonResponse.ok(inventorySummaries);
+ } else {
+ return CommonResponse.ok(new ArrayList<>());
+ }
+ } else {
+ return CommonResponse.error(msg != null ? msg : "鏌ヨ澶辫触");
+ }
+ } else {
+ return CommonResponse.error("鏌ヨ澶辫触锛氳繑鍥炵粨鏋滀负绌�");
+ }
+ } catch (Exception e) {
+ log.error("搴撳瓨鏌ヨ姹囨�诲け璐�", e);
+ String errorMessage = WmsServerFeignClientFallback.filterErrorMessage(e);
+ return CommonResponse.error(errorMessage);
+ }
}
@ApiOperation("鐩樼偣缁撴灉纭")
@@ -400,4 +436,47 @@
}
// endregion
+
+ /**
+ * 浠庤姹傚弬鏁帮紙琛ㄥ崟鏁版嵁锛夋瀯寤烘煡璇㈡潯浠跺璞�
+ * 鏀寔 application/x-www-form-urlencoded 鏍煎紡
+ */
+ private InventoryQueryCondition buildConditionFromRequestParams(HttpServletRequest request) {
+ InventoryQueryCondition condition = new InventoryQueryCondition();
+
+ // 浠庤姹傚弬鏁颁腑鑾峰彇瀛楁鍊�
+ String wareHouseId = request.getParameter("wareHouseId");
+ String locId = request.getParameter("locId");
+ String matNr = request.getParameter("matNr");
+ String matGroup = request.getParameter("matGroup");
+ String orderNo = request.getParameter("orderNo");
+ String planNo = request.getParameter("planNo");
+ String batch = request.getParameter("batch");
+
+ // 璁剧疆瀛楁鍊硷紙濡傛灉瀛樺湪锛�
+ if (wareHouseId != null && !wareHouseId.isEmpty()) {
+ condition.setWareHouseId(wareHouseId);
+ }
+ if (locId != null && !locId.isEmpty()) {
+ condition.setLocId(locId);
+ }
+ if (matNr != null && !matNr.isEmpty()) {
+ condition.setMatNr(matNr);
+ }
+ if (matGroup != null && !matGroup.isEmpty()) {
+ condition.setMatGroup(matGroup);
+ }
+ if (orderNo != null && !orderNo.isEmpty()) {
+ condition.setOrderNo(orderNo);
+ }
+ if (planNo != null && !planNo.isEmpty()) {
+ condition.setPlanNo(planNo);
+ }
+ if (batch != null && !batch.isEmpty()) {
+ condition.setBatch(batch);
+ }
+
+ return condition;
+ }
+
}
--
Gitblit v1.9.1