From e357f222305494e100a7452832753e63e7f8fae9 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 18 八月 2025 09:42:29 +0800
Subject: [PATCH] 库位信息同步接口

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocsParams.java |   82 +++++++++++++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java            |    9 +++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java   |   29 ++++++++-
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java  |   24 +++++++
 4 files changed, 137 insertions(+), 7 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java
index f5a9690..2e54f21 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java
@@ -6,6 +6,7 @@
 import com.vincent.rsf.server.api.controller.erp.params.BaseMatParms;
 import com.vincent.rsf.server.api.controller.erp.params.OrderParams;
 import com.vincent.rsf.server.api.controller.erp.params.QueryOrderParam;
+import com.vincent.rsf.server.api.controller.erp.params.SyncLocsParams;
 import com.vincent.rsf.server.api.service.ReceiveMsgService;
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.PageParam;
@@ -39,6 +40,7 @@
  */
 @RestController
 @RequestMapping("/erp")
+//@Api(tags = "涓夋柟鎺ュ彛鏂囨。")
 public class ReceiveMsgController extends BaseController {
 
     @Autowired
@@ -135,15 +137,33 @@
     /**
      * @author Ryan
      * @date 2025/8/15
-     * @description: 搴撲綅鏄庣粏鍚屾
+     * @description: 搴撲綅淇℃伅鏌ヨ
      * @version 1.0
      */
     @PostMapping("/sync/locs/detls")
-    @ApiOperation(value = "搴撲綅淇℃伅鏄庣粏鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    @ApiOperation(value = "搴撲綅淇℃伅鏌ヨ", tags = "鏌ヨ")
     public R syncLocDetls(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Loc, BaseParam> pageParam = new PageParam<>(baseParam, Loc.class);
         QueryWrapper<Loc> wrapper = pageParam.buildWrapper(true);
         return receiveMsgService.syncLocsDetl(pageParam, wrapper);
     }
+
+    /**
+     * @author Ryan
+     * @date 2025/8/18
+     * @description: 搴撲綅淇℃伅鍚屾
+     * @version 1.0
+     */
+    @PostMapping("/sync/locs")
+    @ApiOperation(value = "搴撲綅淇℃伅鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    public R syncLocs(@RequestBody List<SyncLocsParams> locs) {
+        if (locs.isEmpty()) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return receiveMsgService.syncLocs(locs);
+    }
+
+
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocsParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocsParams.java
new file mode 100644
index 0000000..9ac0cd5
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocsParams.java
@@ -0,0 +1,82 @@
+package com.vincent.rsf.server.api.controller.erp.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import lombok.Data;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "SyncLocsParams", description = "搴撲綅鍚屾鍙傛暟")
+public class SyncLocsParams implements Serializable {
+
+    @ApiModelProperty("搴撲綅缂栫爜")
+    private String locCode;
+
+    @ApiModelProperty("搴撲綅ID")
+    private Long locId;
+
+    @ApiModelProperty(value= "搴撲綅绫诲瀷(*) H:  楂樺簱浣�   M:  涓簱浣�   L:  浣庡簱浣�  ")
+    private String type;
+
+    /**
+     * 瀹瑰櫒缂栫爜
+     */
+    @ApiModelProperty(value= "瀹瑰櫒缂栫爜")
+    private String barcode;
+
+    /**
+     * 闀�
+     */
+    @ApiModelProperty(value= "闀�")
+    private Double length;
+
+    /**
+     * 楂�
+     */
+    @ApiModelProperty(value= "楂�")
+    private Double height;
+
+    /**
+     * 瀹�
+     */
+    @ApiModelProperty(value= "瀹�")
+    private Double width;
+    /**
+     * 鎺�
+     */
+    @ApiModelProperty(value= "鎺�")
+    private Integer row;
+
+    /**
+     * 鍒�
+     */
+    @ApiModelProperty(value= "鍒�")
+    private Integer col;
+
+    /**
+     * 灞�
+     */
+    @ApiModelProperty(value= "灞�")
+    private Integer lev;
+
+    /**
+     * 宸烽亾
+     */
+    @ApiModelProperty(value= "宸烽亾")
+    private Integer channel;
+
+    /**
+     * 搴撲綅浣跨敤鐘舵�� O:  绌哄簱   D:  绌烘澘   R:  棰勭害鍑哄簱   S:  棰勭害鍏ュ簱   X:  绂佺敤  聽 F:  鍦ㄥ簱
+     */
+    @ApiModelProperty(value= "搴撲綅浣跨敤鐘舵�� O:  绌哄簱   D:  绌烘澘   R:  棰勭害鍑哄簱   S:  棰勭害鍏ュ簱   X:  绂佺敤  聽 F:  鍦ㄥ簱  ")
+    private String useStatus;
+
+
+    /**
+     * 鐘舵�� 1: 姝e父  0: 鍐荤粨
+     */
+    @ApiModelProperty(value= "鐘舵�� 1: 姝e父  0: 鍐荤粨  ")
+    private Integer status;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
index 310d88c..e442e10 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -6,6 +6,7 @@
 import com.vincent.rsf.server.api.controller.erp.params.BaseMatParms;
 import com.vincent.rsf.server.api.controller.erp.params.OrderParams;
 import com.vincent.rsf.server.api.controller.erp.params.QueryOrderParam;
+import com.vincent.rsf.server.api.controller.erp.params.SyncLocsParams;
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.entity.Loc;
@@ -51,4 +52,12 @@
      * @version 1.0
      */
     R syncLocsDetl(PageParam<Loc, BaseParam> pageParam, QueryWrapper<Loc> wrapper);
+
+    /**
+     * @author Ryan
+     * @date 2025/8/18
+     * @description: 搴撲綅鍚屾
+     * @version 1.0
+     */
+    R syncLocs(List<SyncLocsParams> locs);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index e01e3ff..b747497 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -7,9 +7,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
-import com.vincent.rsf.server.api.controller.erp.params.BaseMatParms;
-import com.vincent.rsf.server.api.controller.erp.params.QueryOrderParam;
-import com.vincent.rsf.server.api.controller.erp.params.WkOrderDto;
+import com.vincent.rsf.server.api.controller.erp.params.*;
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
@@ -18,7 +16,6 @@
 import com.vincent.rsf.server.manager.service.*;
 import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
-import com.vincent.rsf.server.api.controller.erp.params.OrderParams;
 import com.vincent.rsf.server.system.entity.Fields;
 import com.vincent.rsf.server.system.service.FieldsItemService;
 import com.vincent.rsf.server.system.service.FieldsService;
@@ -207,7 +204,7 @@
     /**
      * @author Ryan
      * @date 2025/8/15
-     * @description: 鍚屾搴撲綅淇℃伅
+     * @description: 鏌ヨ搴撲綅淇℃伅
      * @version 1.0
      */
     @Override
@@ -218,5 +215,27 @@
         return R.ok().add(locStocks);
     }
 
+    /**
+     * @author Ryan
+     * @date 2025/8/18
+     * @description: 搴撲綅鍚屾
+     * @version 1.0
+     */
+    @Override
+    @Transactional(timeout = 30, rollbackFor = Exception.class)
+    public R syncLocs(List<SyncLocsParams> locs) {
+        List<Loc> syncLocs = new ArrayList<>();
+        locs.forEach(loc -> {
+            Loc loc1 = new Loc();
+            BeanUtils.copyProperties(loc, loc1);
+            loc1.setCode(loc.getLocCode()).setId(null);
+            syncLocs.add(loc1);
+        });
+        if (!locService.saveBatch(syncLocs)) {
+            throw new CoolException("搴撲綅鍚屾澶辫触锛侊紒");
+        }
+        return R.ok();
+    }
+
 
 }

--
Gitblit v1.9.1