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/manager/entity/Companys.java                  |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CompaniesParam.java |   53 +++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java    |   41 +++++++++++--
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java            |    8 ++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java   |   34 +++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/ReceiveMsgController.java  |    9 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CompanysType.java               |   15 +++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java   |    2 
 8 files changed, 155 insertions(+), 9 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java
index 87a657c..41392fb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java
@@ -18,7 +18,7 @@
 
 @RestController
 @RequestMapping("/base")
-@Api(tags = "鍩虹淇℃伅鍚屾")
+@Api(tags = "鍩虹淇℃伅")
 public class BaseInfoController {
 
     @Autowired
@@ -30,7 +30,7 @@
      * @description: 鐗╂枡淇℃伅鍚屾
      * @version 1.0
      */
-    @ApiOperation(value = "鍩虹鐗╂枡淇℃伅鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    @ApiOperation(value = "鍩虹鐗╂枡淇℃伅鍚屾")
     @PostMapping("/sync/base/matnrs")
     public R syncMatnrs(@RequestBody List<BaseMatParms> matnrs) {
         if (Objects.isNull(matnrs)) {
@@ -47,7 +47,7 @@
      * @version 1.0
      */
     @PostMapping("/sync/locs")
-    @ApiOperation(value = "搴撲綅淇℃伅鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    @ApiOperation(value = "搴撲綅淇℃伅鍚屾")
     public R syncLocs(@RequestBody List<SyncLocsParams> locs) {
         if (locs.isEmpty()) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
@@ -62,7 +62,7 @@
      * @version 1.0
      */
     @PostMapping("/sync/matGroups")
-    @ApiOperation(value = "鐗╂枡鍒嗙粍淇℃伅鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    @ApiOperation(value = "鐗╂枡鍒嗙粍淇℃伅鍚屾")
     public R syncMatGroup(@RequestBody List<SyncMatGroupsParams> matGroupsParams) {
         if (matGroupsParams.isEmpty()) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
@@ -70,7 +70,13 @@
         return receiveMsgService.syncMatGroups(matGroupsParams);
     }
 
-    @ApiOperation(value = "搴撳尯鏁版嵁鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 搴撳尯鏁版嵁鍚屾
+     * @version 1.0
+     */
+    @ApiOperation(value = "搴撳尯鏁版嵁鍚屾")
     @PostMapping("/sync/warehouse/areas")
     public R syncLocAreas(@RequestBody List<LocAreasParams> areasParams) {
         if (areasParams.isEmpty()) {
@@ -80,7 +86,13 @@
     }
 
 
-    @ApiOperation(value = "搴撳尯鏁版嵁鍚屾", tags = "鍩虹淇℃伅鍚屾")
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 浠撳簱淇℃伅鍚屾
+     * @version 1.0
+     */
+    @ApiOperation(value = "浠撳簱鏁版嵁鍚屾")
     @PostMapping("/sync/warehouse")
     public R syncWarehouse(@RequestBody List<WarehouseParams> warehouseParams) {
         if (warehouseParams.isEmpty()) {
@@ -88,4 +100,21 @@
         }
         return receiveMsgService.syncWarehouse(warehouseParams);
     }
+
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 浠撳簱淇℃伅鍚屾
+     * @version 1.0
+     */
+    @ApiOperation(value = "浼佷笟淇℃伅鍚屾")
+    @PostMapping("/sync/companies")
+    public R syncCompanys(@RequestBody List<CompaniesParam> companyParams) {
+        if (companyParams.isEmpty()) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return receiveMsgService.syncCompanies(companyParams);
+    }
+
+
 }
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 a8b019f..2823aca 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
@@ -32,7 +32,7 @@
  */
 @RestController
 @RequestMapping("/erp")
-@Api(tags = "鏌ヨ")
+@Api(tags = "缁煎悎鏌ヨ")
 public class ReceiveMsgController extends BaseController {
 
     @Autowired
@@ -40,7 +40,12 @@
     @Autowired
     private MatnrGroupService matnrGroupService;
 
-
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 鐗╂枡鍒嗙被鍒楄〃鏌ヨ
+     * @version 1.0
+     */
     @ApiOperation(value = "鏌ヨ鍒嗙被淇℃伅")
     @PostMapping("/query/matnr/group")
     public R syncMatGroup() {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
index 2644760..b4321e1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
@@ -20,7 +20,7 @@
 
 @RestController
 @RequestMapping("/order")
-@Api(tags = "鍗曟嵁鍚屾")
+@Api(tags = "鍗曟嵁")
 public class SyncOrderController {
 
     @Autowired
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CompaniesParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CompaniesParam.java
new file mode 100644
index 0000000..60a154c
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CompaniesParam.java
@@ -0,0 +1,53 @@
+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 = "CompaniesParam", description = "鍚屾浼佷笟淇℃伅鍙傛暟")
+public class CompaniesParam implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("浼佷笟鍚嶇О")
+    private String name;
+
+    @ApiModelProperty("浼佷笟鍚嶇О锛堣嫳鏂囧悕锛�")
+    private String nameEn;
+
+    @ApiModelProperty("浼佷笟鍔╄鐮�")
+    private String breifCode;
+
+    @ApiModelProperty("浼佷笟绫诲瀷")
+    private String type;
+
+    @ApiModelProperty("鑱旂郴浜�")
+    private String contact;
+
+    @ApiModelProperty("鑱旂郴鐢佃瘽")
+    private String tel;
+
+    @ApiModelProperty("閭")
+    private String email;
+
+    @ApiModelProperty("閭紪")
+    private String pcode;
+
+    @ApiModelProperty("鍩庡競")
+    private String city;
+
+    @ApiModelProperty("鐪佷唤")
+    private String province;
+
+    @ApiModelProperty("鍦板潃")
+    private String address;
+
+    @ApiModelProperty("浼佷笟缂栫爜")
+    private String code;
+
+}
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 4b05789..c3bf1ad 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
@@ -81,4 +81,12 @@
      * @version 1.0
      */
     R syncWarehouse(List<WarehouseParams> warehouses);
+
+    /**
+     * @author Ryan
+     * @date 2025/8/19
+     * @description: 鍚屾浼佷笟淇℃伅
+     * @version 1.0
+     */
+    R syncCompanies(List<CompaniesParam> companyParams);
 }
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 f8c7c5d..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,6 +12,7 @@
 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;
@@ -69,6 +70,8 @@
     private WarehouseAreasService warehouseAreasService;
     @Autowired
     private WarehouseService warehouseService;
+    @Autowired
+    private CompanysService companysService;
 
     /**
      * @author Ryan
@@ -320,4 +323,35 @@
         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();
+    }
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Companys.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Companys.java
index c8804ed..b5ab94c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Companys.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Companys.java
@@ -9,6 +9,7 @@
 import com.vincent.rsf.server.system.constant.DictTypeCode;
 import com.vincent.rsf.server.system.entity.DictData;
 import com.vincent.rsf.server.system.service.DictDataService;
+import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -28,6 +29,7 @@
 import java.util.Date;
 
 @Data
+@Accessors(chain = true)
 @TableName("man_companys")
 public class Companys implements Serializable {
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CompanysType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CompanysType.java
index e84eafa..2ecb66f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CompanysType.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CompanysType.java
@@ -22,4 +22,19 @@
     public String val;
 
     public String desc;
+
+
+    public static String getCustomVal(String desc) {
+        if (desc.equals(CompanysType.COMPANYS_TYPE_SHIPPER.desc)) {
+            return CompanysType.COMPANYS_TYPE_SHIPPER.val;
+        } else if (desc.equals(CompanysType.COMPANYS_TYPE_CUSTOMER.desc)) {
+            return CompanysType.COMPANYS_TYPE_CUSTOMER.val;
+        } else if (desc.equals(CompanysType.COMPANYS_TYPE_SUPPLIER.desc)) {
+            return CompanysType.COMPANYS_TYPE_SUPPLIER.val;
+        }
+        return null;
+    }
+
+
+
 }

--
Gitblit v1.9.1