From 902ec017c2c6b01bacc67a0a65fbb5a53a951c1e Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 19 八月 2025 10:56:16 +0800
Subject: [PATCH] 企业信息同步

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java |   92 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 90 insertions(+), 2 deletions(-)

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..97b8ffd 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
@@ -12,8 +12,10 @@
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
 import com.vincent.rsf.server.manager.entity.*;
+import com.vincent.rsf.server.manager.enums.CompanysType;
 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 +66,12 @@
     private LocService locService;
     @Autowired
     private LocItemService locItemService;
+    @Autowired
+    private WarehouseAreasService warehouseAreasService;
+    @Autowired
+    private WarehouseService warehouseService;
+    @Autowired
+    private CompanysService companysService;
 
     /**
      * @author Ryan
@@ -222,7 +230,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 +252,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 +274,84 @@
         }
         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();
+    }
+
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 鍚屾浼佷笟淇℃伅
+     * @version 1.0
+     */
+    @Override
+    @Transactional(timeout = 60, rollbackFor = Exception.class)
+    public R syncCompanies(List<CompaniesParam> companyParams) {
+        companyParams.forEach(param -> {
+            Companys companys = new Companys();
+            BeanUtils.copyProperties(param, companys);
+            if (Objects.isNull(companys.getCode())) {
+                throw new CoolException("浼佷笟缂栫爜涓嶈兘涓虹┖锛侊紒");
+            }
+            Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getName, param.getName()));
+            if (Objects.isNull(one)) {
+                String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_COMPANYS_CODE, null);
+                companys.setCode(ruleCode);
+            } else {
+                throw new CoolException(one.getName() +  "锛屼紒涓氬悕閲嶅锛侊紒");
+            }
+            companys.setType(CompanysType.getCustomVal(param.getType()))
+                    .setId(null);
+            if (!companysService.save(companys)) {
+                throw new CoolException("浼佷笟淇濆瓨澶辫触锛侊紒");
+            }
+        });
+        return R.ok();
+    }
+
 }

--
Gitblit v1.9.1