From 69a3c374ca3afb770e3b9ffcbdda07ce362cbf58 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期五, 09 一月 2026 19:59:29 +0800
Subject: [PATCH] #
---
rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/example/FieldMappingExampleController.java | 195 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 195 insertions(+), 0 deletions(-)
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/example/FieldMappingExampleController.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/example/FieldMappingExampleController.java
new file mode 100644
index 0000000..60fb96a
--- /dev/null
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/example/FieldMappingExampleController.java
@@ -0,0 +1,195 @@
+package com.vincent.rsf.openApi.controller.example;
+
+import com.alibaba.fastjson.JSONObject;
+import com.vincent.rsf.openApi.entity.dto.CommonResponse;
+import com.vincent.rsf.openApi.utils.ParamsMapUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 鎺ュ彛瀛楁鏄犲皠浣跨敤绀轰緥
+ *
+ * 灞曠ず濡備綍鍦ㄥ疄闄呬笟鍔′腑浣跨敤 FuncMap 杩涜瀛楁鏄犲皠
+ *
+ * @author vincent
+ * @since 2026-01-04
+ */
+@Slf4j
+@RestController
+@RequestMapping("/example/mapping")
+@Api(tags = "瀛楁鏄犲皠浣跨敤绀轰緥")
+public class FieldMappingExampleController {
+
+ /**
+ * 绀轰緥1锛欵RP璁㈠崟鎺ユ敹 - 瀛楁鏄犲皠
+ *
+ * 鍦烘櫙锛氭帴鏀禘RP绯荤粺鐨勮鍗曟暟鎹紝瀛楁鍚嶄笌WMS涓嶄竴鑷达紝闇�瑕佽繘琛屾槧灏�
+ *
+ * ERP瀛楁 -> WMS瀛楁锛�
+ * orderNumber -> code
+ * orderQty -> qty
+ * orderAmount -> anfme
+ */
+ @ApiOperation("绀轰緥锛欵RP璁㈠崟鎺ユ敹")
+ @PostMapping("/erp/order/receive")
+ public CommonResponse erpOrderReceive(@RequestBody JSONObject requestData) {
+ log.info("鎺ユ敹鍒癊RP璁㈠崟鏁版嵁锛堟槧灏勫墠锛夛細{}", requestData);
+
+ // 鎵ц瀛楁鏄犲皠
+ String appId = "ERP_SYSTEM";
+ String funcId = "ORDER_SYNC";
+ JSONObject mappedData = ParamsMapUtils.apiMaps(appId, funcId, requestData);
+
+ log.info("瀛楁鏄犲皠鍚庣殑鏁版嵁锛歿}", mappedData);
+
+ // 杩欓噷鍙互缁х画璋冪敤WMS鍐呴儴鐨勪笟鍔¢�昏緫澶勭悊鏄犲皠鍚庣殑鏁版嵁
+ // orderService.createOrder(mappedData);
+
+ return CommonResponse.ok()
+ .setMsg("璁㈠崟鎺ユ敹鎴愬姛")
+ .setData(mappedData);
+ }
+
+ /**
+ * 绀轰緥2锛氱墿鏂欎俊鎭悓姝� - 瀛楁鏄犲皠
+ *
+ * 鍦烘櫙锛氭帴鏀禘RP绯荤粺鐨勭墿鏂欐暟鎹�
+ *
+ * ERP瀛楁 -> WMS瀛楁锛�
+ * materialCode -> matnr
+ * materialName -> maktx
+ * materialSpec -> spec
+ */
+ @ApiOperation("绀轰緥锛氱墿鏂欎俊鎭悓姝�")
+ @PostMapping("/erp/material/sync")
+ public CommonResponse materialSync(@RequestBody JSONObject requestData) {
+ log.info("鎺ユ敹鍒扮墿鏂欐暟鎹紙鏄犲皠鍓嶏級锛歿}", requestData);
+
+ // 鎵ц瀛楁鏄犲皠
+ String appId = "ERP_SYSTEM";
+ String funcId = "MATNR_SYNC";
+ JSONObject mappedData = ParamsMapUtils.apiMaps(appId, funcId, requestData);
+
+ log.info("瀛楁鏄犲皠鍚庣殑鏁版嵁锛歿}", mappedData);
+
+ return CommonResponse.ok()
+ .setMsg("鐗╂枡鍚屾鎴愬姛")
+ .setData(mappedData);
+ }
+
+ /**
+ * 绀轰緥3锛歐CS浠诲姟鍒涘缓 - 瀛楁鏄犲皠
+ *
+ * 鍦烘櫙锛氭帴鏀禬CS绯荤粺鐨勪换鍔″垱寤鸿姹�
+ *
+ * WCS瀛楁 -> WMS瀛楁锛�
+ * containerCode -> barcode
+ * stationCode -> sourceStaNo
+ * taskType -> ioType
+ */
+ @ApiOperation("绀轰緥锛歐CS浠诲姟鍒涘缓")
+ @PostMapping("/wcs/task/create")
+ public CommonResponse wcsTaskCreate(@RequestBody JSONObject requestData) {
+ log.info("鎺ユ敹鍒癢CS浠诲姟鏁版嵁锛堟槧灏勫墠锛夛細{}", requestData);
+
+ // 鎵ц瀛楁鏄犲皠
+ String appId = "WCS_SYSTEM";
+ String funcId = "TASK_CREATE";
+ JSONObject mappedData = ParamsMapUtils.apiMaps(appId, funcId, requestData);
+
+ log.info("瀛楁鏄犲皠鍚庣殑鏁版嵁锛歿}", mappedData);
+
+ return CommonResponse.ok()
+ .setMsg("浠诲姟鍒涘缓鎴愬姛")
+ .setData(mappedData);
+ }
+
+ /**
+ * 绀轰緥4锛氭壒閲忔暟鎹槧灏�
+ *
+ * 鍦烘櫙锛氭壒閲忔帴鏀惰鍗曟槑缁嗭紝闇�瑕佸姣忔潯鏄庣粏杩涜瀛楁鏄犲皠
+ */
+ @ApiOperation("绀轰緥锛氭壒閲忚鍗曟槑缁嗘槧灏�")
+ @PostMapping("/erp/order/batch")
+ public CommonResponse batchOrderMapping(@RequestBody JSONObject requestData) {
+ log.info("鎺ユ敹鍒版壒閲忚鍗曟暟鎹�");
+
+ String appId = "ERP_SYSTEM";
+ String funcId = "ORDER_SYNC";
+
+ // 鏄犲皠璁㈠崟澶�
+ JSONObject orderHeader = requestData.getJSONObject("header");
+ JSONObject mappedHeader = ParamsMapUtils.apiMaps(appId, funcId, orderHeader);
+
+ // 鏄犲皠璁㈠崟鏄庣粏鍒楄〃
+ com.alibaba.fastjson.JSONArray items = requestData.getJSONArray("items");
+ com.alibaba.fastjson.JSONArray mappedItems = new com.alibaba.fastjson.JSONArray();
+
+ if (items != null) {
+ for (int i = 0; i < items.size(); i++) {
+ JSONObject item = items.getJSONObject(i);
+ JSONObject mappedItem = ParamsMapUtils.apiMaps(appId, funcId, item);
+ mappedItems.add(mappedItem);
+ }
+ }
+
+ // 缁勮缁撴灉
+ JSONObject result = new JSONObject();
+ result.put("header", mappedHeader);
+ result.put("items", mappedItems);
+
+ log.info("鎵归噺鏄犲皠瀹屾垚锛屽叡澶勭悊 {} 鏉℃槑缁�", mappedItems.size());
+
+ return CommonResponse.ok()
+ .setMsg("鎵归噺澶勭悊鎴愬姛")
+ .setData(result);
+ }
+
+ /**
+ * 绀轰緥5锛氭潯浠舵槧灏�
+ *
+ * 鍦烘櫙锛氭牴鎹笉鍚岀殑搴旂敤鏉ユ簮锛屼娇鐢ㄤ笉鍚岀殑鏄犲皠瑙勫垯
+ */
+ @ApiOperation("绀轰緥锛氭潯浠舵槧灏�")
+ @PostMapping("/dynamic/mapping")
+ public CommonResponse dynamicMapping(@RequestBody JSONObject requestData) {
+
+ // 浠庤姹備腑鑾峰彇搴旂敤鏍囪瘑
+ String source = requestData.getString("source");
+ String funcId = requestData.getString("function");
+
+ // 绉婚櫎鍏冩暟鎹瓧娈�
+ requestData.remove("source");
+ requestData.remove("function");
+
+ log.info("鍔ㄦ�佹槧灏� - 鏉ユ簮锛歿}锛屽姛鑳斤細{}", source, funcId);
+
+ // 鏍规嵁鏉ユ簮閫夋嫨涓嶅悓鐨勬槧灏勮鍒�
+ String appId;
+ switch (source) {
+ case "ERP":
+ appId = "ERP_SYSTEM";
+ break;
+ case "WCS":
+ appId = "WCS_SYSTEM";
+ break;
+ case "MES":
+ appId = "MES_SYSTEM";
+ break;
+ default:
+ return CommonResponse.error("鏈煡鐨勬暟鎹簮锛�" + source);
+ }
+
+ // 鎵ц鏄犲皠
+ JSONObject mappedData = ParamsMapUtils.apiMaps(appId, funcId, requestData);
+
+ return CommonResponse.ok()
+ .setMsg("鍔ㄦ�佹槧灏勬垚鍔�")
+ .setData(mappedData);
+ }
+}
--
Gitblit v1.9.1