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