From ad705232b85b1484b08e9a6072294ba5f261a9eb Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 18 八月 2025 16:34:18 +0800
Subject: [PATCH] 仓库,库区ERP同步接口优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java |   33 ++++++++
 /dev/null                                                                                      |   31 -------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java             |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocArea.java                    |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java             |   16 ++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java    |   58 ++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java                  |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java   |   20 +++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/LocAreasParams.java  |   27 ++++++
 9 files changed, 158 insertions(+), 33 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 eb586ca..b2e2ddf 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
@@ -176,6 +176,26 @@
         return receiveMsgService.syncMatGroups(matGroupsParams);
     }
 
+    @ApiOperation(value = "搴撳尯鏁版嵁鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    @PostMapping("/sync/warehouse/areas")
+    public R syncLocAreas(@RequestBody List<LocAreasParams> areasParams) {
+        if (areasParams.isEmpty()) {
+            throw new CoolException("搴撳尯鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return receiveMsgService.syncWarehouseAreas(areasParams);
+    }
+
+
+    @ApiOperation(value = "搴撳尯鏁版嵁鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    @PostMapping("/sync/warehouse")
+    public R syncWarehouse(@RequestBody List<WarehouseParams> warehouseParams) {
+        if (warehouseParams.isEmpty()) {
+            throw new CoolException("搴撳尯鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return receiveMsgService.syncWarehouse(warehouseParams);
+    }
+
+
 
 
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/LocAreasParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/LocAreasParams.java
new file mode 100644
index 0000000..831af3c
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/LocAreasParams.java
@@ -0,0 +1,27 @@
+package com.vincent.rsf.server.api.controller.erp.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.experimental.Accessors;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "LocAreasParams", description = "搴撳尯鍚屾鍙傛暟")
+public class LocAreasParams implements Serializable {
+
+    @ApiModelProperty("搴撳尯鍚嶇О")
+    private String name;
+
+    @ApiModelProperty("搴撳尯缂栫爜")
+    private String code;
+
+    @ApiModelProperty("浠撳簱鍚嶇О")
+    private String warehouse;
+
+    @ApiModelProperty("搴撳尯绫诲瀷")
+    private String type;
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java
new file mode 100644
index 0000000..9571101
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java
@@ -0,0 +1,33 @@
+package com.vincent.rsf.server.api.controller.erp.params;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "WarehouseParams", description = "浠撳簱鍙傛暟")
+public class WarehouseParams implements Serializable {
+
+    @ApiModelProperty("鍚嶇О")
+    private String name;
+
+    @ApiModelProperty("宸ュ巶")
+    private String factory;
+
+    @ApiModelProperty("鍦板潃")
+    private String address;
+
+    @ApiModelProperty("绫诲瀷")
+    private Integer type;
+
+    @ApiModelProperty("缁忓害")
+    private String longitude;
+
+    @ApiModelProperty("绾害")
+    private String latitude;
+
+}
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 7d56ba1..4b05789 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
@@ -65,4 +65,20 @@
      * @version 1.0
      */
     R syncMatGroups(List<SyncMatGroupsParams> matGroupsParams);
+
+    /**
+     * @author Ryan
+     * @date 2025/8/18
+     * @description: 搴撳尯鍚屾
+     * @version 1.0
+     */
+    R syncWarehouseAreas(List<LocAreasParams> areasParams);
+
+    /**
+     * @author Ryan
+     * @date 2025/8/18
+     * @description: 浠撳簱淇℃伅鍚屾
+     * @version 1.0
+     */
+    R syncWarehouse(List<WarehouseParams> warehouses);
 }
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 303f02b..f8c7c5d 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
@@ -14,6 +14,7 @@
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.OrderType;
 import com.vincent.rsf.server.manager.service.*;
+import com.vincent.rsf.server.manager.service.impl.LocAreaServiceImpl;
 import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.entity.Fields;
@@ -64,6 +65,10 @@
     private LocService locService;
     @Autowired
     private LocItemService locItemService;
+    @Autowired
+    private WarehouseAreasService warehouseAreasService;
+    @Autowired
+    private WarehouseService warehouseService;
 
     /**
      * @author Ryan
@@ -222,7 +227,7 @@
      * @version 1.0
      */
     @Override
-    @Transactional(timeout = 30, rollbackFor = Exception.class)
+    @Transactional(timeout = 60, rollbackFor = Exception.class)
     public R syncLocs(List<SyncLocsParams> locs) {
         List<Loc> syncLocs = new ArrayList<>();
         locs.forEach(loc -> {
@@ -244,7 +249,7 @@
      * @version 1.0
      */
     @Override
-    @Transactional(timeout = 30, rollbackFor = Exception.class)
+    @Transactional(timeout = 60, rollbackFor = Exception.class)
     public R syncMatGroups(List<SyncMatGroupsParams> matGroupsParams) {
         List<MatnrGroup> syncMatGroups = new ArrayList<>();
         matGroupsParams.forEach(matGroupsParam -> {
@@ -266,4 +271,53 @@
         }
         return R.ok();
     }
+
+    /**
+     * @author Ryan
+     * @date 2025/8/18
+     * @description: 搴撳尯淇℃伅鍚屾
+     * @version 1.0
+     */
+    @Override
+    @Transactional(timeout = 60, rollbackFor = Exception.class)
+    public R syncWarehouseAreas(List<LocAreasParams> areasParams) {
+        areasParams.forEach(param -> {
+            WarehouseAreas locArea = new WarehouseAreas();
+            BeanUtils.copyProperties(param, locArea);
+            WarehouseAreas warehouseAreas = warehouseAreasService
+                    .getOne(new LambdaQueryWrapper<WarehouseAreas>()
+                    .eq(WarehouseAreas::getName, param.getName()));
+            if (!Objects.isNull(warehouseAreas)) {
+                locArea.setWarehouseId(warehouseAreas.getId());
+            }
+            locArea.setName(param.getName())
+                    .setCode(param.getCode())
+                    .setId(null);
+            if (!warehouseAreasService.save(locArea)) {
+                throw new CoolException("搴撳尯淇濆瓨澶辫触锛侊紒");
+            }
+        });
+        return R.ok();
+    }
+
+    /**
+     * @author Ryan
+     * @date 2025/8/18
+     * @description: 浠撳簱鍚屾
+     * @version 1.0
+     */
+    @Override
+    @Transactional(timeout = 60, rollbackFor = Exception.class)
+    public R syncWarehouse(List<WarehouseParams> warehouses) {
+        warehouses.forEach(warehouse -> {
+            Warehouse ware = new Warehouse();
+            BeanUtils.copyProperties(warehouse, ware);
+            ware.setId(null);
+            if (!warehouseService.save(ware)) {
+                throw new CoolException("浠撳簱鍚屾淇濆瓨澶辫触锛侊紒");
+            }
+        });
+        return R.ok();
+    }
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocArea.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocArea.java
index bd20800..5eab4ed 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocArea.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocArea.java
@@ -7,6 +7,7 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.vincent.rsf.server.manager.service.LocService;
 import com.vincent.rsf.server.manager.service.WarehouseAreasService;
+import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -26,6 +27,7 @@
 import java.util.Date;
 
 @Data
+@Accessors(chain = true)
 @TableName("man_loc_area")
 public class LocArea implements Serializable {
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java
index 8e743c1..0df3137 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java
@@ -6,6 +6,7 @@
 import java.util.Date;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -24,6 +25,7 @@
 
 @Data
 @TableName("man_warehouse")
+@Accessors(chain = true)
 @ApiModel(value = "Warehouse", description = "浠撳簱鍩虹淇℃伅")
 public class Warehouse implements Serializable {
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java
index 9181676..de80a2d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java
@@ -14,6 +14,7 @@
 import com.vincent.rsf.server.system.entity.DictData;
 import com.vincent.rsf.server.system.service.DictDataService;
 import io.swagger.annotations.Api;
+import lombok.experimental.Accessors;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
@@ -32,6 +33,7 @@
 import java.util.stream.Collectors;
 
 @Data
+@Accessors(chain = true)
 @TableName("man_warehouse_areas")
 public class WarehouseAreas implements Serializable {
 
diff --git a/rsf-server/src/main/java/stockStatistic.sql b/rsf-server/src/main/java/stockStatistic.sql
deleted file mode 100644
index b82b7b1..0000000
--- a/rsf-server/src/main/java/stockStatistic.sql
+++ /dev/null
@@ -1,31 +0,0 @@
--- save stockStatistic record
--- mysql
-insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.stockStatistic', '0', '/manager/stockStatistic', 'stockStatistic', '0' , '0', '1' , '1');
-
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query 鏃ュ簱瀛樼粺璁�', '', '1', 'manager:stockStatistic:list', '0', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create 鏃ュ簱瀛樼粺璁�', '', '1', 'manager:stockStatistic:save', '1', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update 鏃ュ簱瀛樼粺璁�', '', '1', 'manager:stockStatistic:update', '2', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete 鏃ュ簱瀛樼粺璁�', '', '1', 'manager:stockStatistic:remove', '3', '1', '1');
-
--- locale menu name
-stockStatistic: 'StockStatistic',
-
--- locale field
-stockStatistic: {
-    id: "id",
-    dayTime: "dayTime",
-    taskType: "taskType",
-    taskStatus: "taskStatus",
-    maktx: "maktx",
-    matnrCode: "matnrCode",
-    count: "count",
-    batch: "batch",
-    anfme: "anfme",
-    unit: "unit",
-},
-
--- ResourceContent
-import stockStatistic from './stockStatistic';
-
-case 'stockStatistic':
-    return stockStatistic;

--
Gitblit v1.9.1