From 2ccc26e480e1ce329a2fa813bdda0dbe4711a3df Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期二, 21 十月 2025 14:03:22 +0800
Subject: [PATCH] 新增物料更新接口

---
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java |   41 +++++++++++++
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsErpController.java    |   12 ++++
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/ErpMatnrParms.java    |   55 ++++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/ContainerType.java       |   20 ++++++
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java    |    4 +
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsErpService.java          |    3 +
 6 files changed, 135 insertions(+), 0 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsErpController.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsErpController.java
index f48b330..011fa3f 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsErpController.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsErpController.java
@@ -3,6 +3,7 @@
 
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.openApi.entity.dto.CommonResponse;
+import com.vincent.rsf.openApi.entity.params.ErpMatnrParms;
 import com.vincent.rsf.openApi.entity.params.ErpOpParams;
 import com.vincent.rsf.openApi.service.WmsErpService;
 import io.swagger.annotations.ApiOperation;
@@ -80,4 +81,15 @@
         }
         return wmsErpService.orderDel(params);
     }
+
+    @ApiOperation("鍩虹鐗╂枡淇℃伅鏇存柊")
+    @PostMapping("/mat/sync/auth/v1")
+    public CommonResponse syncMatnrs(@RequestBody ErpMatnrParms parms) {
+        if (Objects.isNull(parms)) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return wmsErpService.syncMatnrs(parms);
+    }
+
+
 }
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java
index 381c93c..a8e0072 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java
@@ -19,5 +19,9 @@
     //鑾峰彇鍑哄叆搴撴祦姘�
     public static String IN_OUT_HISTORIES = "/rsf-server/monitor/inOut/page";
 
+    //鐗╂枡淇℃伅鍚屾
+    public static String UPDATE_MATNR_INFO = "/rsf-server/base/mat/sync/auth/v1";
+
+
 
 }
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/ErpMatnrParms.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/ErpMatnrParms.java
new file mode 100644
index 0000000..0c7af17
--- /dev/null
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/ErpMatnrParms.java
@@ -0,0 +1,55 @@
+package com.vincent.rsf.openApi.entity.params;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class ErpMatnrParms {
+
+    @ApiModelProperty("鐗╂枡鍚嶇О")
+    private String maktx;
+
+    @ApiModelProperty("鐗╂枡缂栫爜*")
+    private String matnr;
+
+    @ApiModelProperty("鐗╂枡鍒嗙粍")
+    private String groupName;
+
+    @ApiModelProperty("鍨嬪彿")
+    private String model;
+
+    @ApiModelProperty("閲嶉噺")
+    private String weight;
+
+    @ApiModelProperty("棰滆壊")
+    private String color;
+
+    @ApiModelProperty("灏哄")
+    private String size;
+
+    @ApiModelProperty("瑙勬牸")
+    private String spec;
+
+    @ApiModelProperty("鎻忚堪")
+    private String describle;
+
+    @ApiModelProperty("鏍囧寘鏁伴噺")
+    private String nromNum;
+
+    @ApiModelProperty("鍗曚綅")
+    private String unit;
+
+    @ApiModelProperty("ABC绫�")
+    private String stockLevel;
+
+    @ApiModelProperty("鏈夋晥鏈�")
+    private String valid;
+
+    @ApiModelProperty("鏉″舰鐮�")
+    private String barcode;
+
+
+}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsErpService.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsErpService.java
index 9997c7d..614a707 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsErpService.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsErpService.java
@@ -1,6 +1,7 @@
 package com.vincent.rsf.openApi.service;
 
 import com.vincent.rsf.openApi.entity.dto.CommonResponse;
+import com.vincent.rsf.openApi.entity.params.ErpMatnrParms;
 import com.vincent.rsf.openApi.entity.params.ErpOpParams;
 
 public interface WmsErpService {
@@ -10,4 +11,6 @@
     CommonResponse updateOrderDetl(ErpOpParams params);
 
     CommonResponse orderDel(ErpOpParams params);
+
+    CommonResponse syncMatnrs(ErpMatnrParms parms);
 }
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java
index f939215..8674d61 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java
@@ -10,6 +10,7 @@
 import com.vincent.rsf.openApi.entity.constant.WmsConstant;
 import com.vincent.rsf.openApi.entity.dto.CommonResponse;
 import com.vincent.rsf.openApi.entity.dto.OrderDto;
+import com.vincent.rsf.openApi.entity.params.ErpMatnrParms;
 import com.vincent.rsf.openApi.entity.params.ErpOpParams;
 import com.vincent.rsf.openApi.service.WmsErpService;
 import lombok.extern.slf4j.Slf4j;
@@ -162,4 +163,44 @@
         }
     }
 
+    /**
+     * 鐗╂枡淇℃伅淇敼
+     * @param params
+     * @return
+     */
+    @Override
+    public CommonResponse syncMatnrs(ErpMatnrParms params) {
+        if (Objects.isNull(params.getMatnr()) ) {
+            throw new CoolException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛侊紒");
+        }
+        if (Objects.isNull(params.getMaktx())) {
+            throw new CoolException("鐗╂枡鍚嶇О涓嶈兘涓虹┖锛侊紒");
+        }
+        /**WMS鍩虹閰嶇疆閾炬帴*/
+        String rcsUrl = wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.UPDATE_MATNR_INFO;
+        log.info("鐗╂枡淇敼锛� {}锛� 璇锋眰鍙傛暟锛� {}", rcsUrl, JSONObject.toJSONString(params));
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Content-Type", "application/json");
+        headers.add("api-version", "v2.0");
+        HttpEntity httpEntity = new HttpEntity(params, headers);
+        ResponseEntity<String> exchange = restTemplate.exchange(rcsUrl, HttpMethod.POST, httpEntity, String.class);
+        log.info("淇敼缁撴灉锛� {}", exchange);
+        if (Objects.isNull(exchange.getBody())) {
+            throw new CoolException("淇敼澶辫触锛侊紒");
+        } else {
+            ObjectMapper objectMapper = new ObjectMapper();
+            objectMapper.coercionConfigDefaults().setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
+            try {
+                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
+                if (result.getCode() == 200) {
+                    return result;
+                } else {
+                    throw new CoolException("淇敼澶辫触锛侊紒");
+                }
+            } catch (JsonProcessingException e) {
+                throw new CoolException(e.getMessage());
+            }
+        }
+    }
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/ContainerType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/ContainerType.java
new file mode 100644
index 0000000..6a785fa
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/ContainerType.java
@@ -0,0 +1,20 @@
+package com.vincent.rsf.server.manager.enums;
+
+/**
+ * 瀹瑰櫒绫诲瀷
+ */
+public enum ContainerType {
+    //濉戞枡鏂欑
+    CONTAINER_TYPE_NORMAL("3", "濉戞枡鏂欑"),
+    CONTAINER_TYPE_HEIGHT("2", "濉戞枡鏂欑-楂�"),
+    ;
+    ContainerType(String val, String desc) {
+        this.val = Long.valueOf(val);
+        this.desc = desc;
+    }
+
+    public Long val;
+
+    public String desc;
+
+}

--
Gitblit v1.9.1