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