From 830bb157b5e46a6c041d5f0c0a883a22e37cb0f7 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 10:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/devlop-phyz-spring3.5' into devlop-phyz-spring3.5

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java |    3 +
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java          |    2 
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Warehouse.java                  |    4 +
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Customer.java                   |    2 
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Supplier.java                   |    4 +
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Material.java                   |    4 +
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CompaniesParam.java  |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java    |    3 +
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/phyz/impl/ErpReportServiceImpl.java |    6 +
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java    |  126 ++++++++++++++++++++++++++++++++++--------
 10 files changed, 127 insertions(+), 30 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
index 1c01de7..8ca9934 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
@@ -123,7 +123,7 @@
         if ("200".equals(resultMsg)){
             return  CommonResponse.ok(resultMsg);
         }
-        return CommonResponse.ok();
+        return CommonResponse.error(resultMsg);
     }
 
     @ApiOperation("鍏�/鍑哄簱浠诲姟閫氱煡鍗�")
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Customer.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Customer.java
index 10efefb..07ef78c 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Customer.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Customer.java
@@ -34,7 +34,7 @@
     private String email;
     // 鍦板潃
     private String address;
-    // 鎿嶄綔绫诲瀷锛�1 鏂板锛�2 淇敼锛�3绂佺敤锛�4 鍙嶇鐢紱
+    // 鎿嶄綔绫诲瀷锛�0锛氭柊澧炪�佹洿鏂般�佽В绂侊紙鍙璋冪敤浜嗘洿鏂帮紝灏变唬琛ㄩ潪绂佺敤浜嗭級  1锛氱鐢�
     @JsonProperty("operateType")
     private Integer operateType;
 }
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Material.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Material.java
index cdd5b2d..e1e6d35 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Material.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Material.java
@@ -1,5 +1,6 @@
 package com.vincent.rsf.openApi.entity.phyz;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
@@ -49,7 +50,8 @@
     private String useOrgName;
     // 鐗╂枡灞炴�э紝澶栬喘绛�
     private String erpClsID;
-    // 鎿嶄綔绫诲瀷锛�1 鏂板锛�2 淇敼锛�3绂佺敤锛�4 鍙嶇鐢紱
+    // 鎿嶄綔绫诲瀷锛�0锛氭柊澧炪�佹洿鏂般�佽В绂侊紙鍙璋冪敤浜嗘洿鏂帮紝灏变唬琛ㄩ潪绂佺敤浜嗭級  1锛氱鐢�
+    @JSONField(name = "OperateType", alternateNames = {"operateType"})
     @JsonProperty("operateType")
     private Integer operateType;
 }
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Supplier.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Supplier.java
index 5e11910..2301a4d 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Supplier.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Supplier.java
@@ -1,5 +1,6 @@
 package com.vincent.rsf.openApi.entity.phyz;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
@@ -34,7 +35,8 @@
     private String email;
     // 鍦板潃
     private String address;
-    // 鎿嶄綔绫诲瀷锛�1 鏂板锛�2 淇敼锛�3绂佺敤锛�4 鍙嶇鐢紱
+    // 鎿嶄綔绫诲瀷锛�0锛氭柊澧炪�佹洿鏂般�佽В绂侊紙鍙璋冪敤浜嗘洿鏂帮紝灏变唬琛ㄩ潪绂佺敤浜嗭級  1锛氱鐢�
+    @JSONField(name = "OperateType", alternateNames = {"operateType"})
     @JsonProperty("operateType")
     private Integer operateType;
 }
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Warehouse.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Warehouse.java
index 36e9e02..91a8167 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Warehouse.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Warehouse.java
@@ -1,5 +1,6 @@
 package com.vincent.rsf.openApi.entity.phyz;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
@@ -27,7 +28,8 @@
     private String useOrgId;
     // 浣跨敤缁勭粐鍚嶇О
     private String useOrgName;
-    // 鎿嶄綔绫诲瀷锛�1 鏂板锛�2 淇敼锛�3绂佺敤锛�4 鍙嶇鐢紱
+    // 鎿嶄綔绫诲瀷锛�0锛氭柊澧炪�佹洿鏂般�佽В绂侊紙鍙璋冪敤浜嗘洿鏂帮紝灏变唬琛ㄩ潪绂佺敤浜嗭級  1锛氱鐢�
+    @JSONField(name = "OperateType", alternateNames = {"operateType"})
     @JsonProperty("operateType")
     private Integer operateType;
 }
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/phyz/impl/ErpReportServiceImpl.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/phyz/impl/ErpReportServiceImpl.java
index 24f913e..a7dc524 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/phyz/impl/ErpReportServiceImpl.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/phyz/impl/ErpReportServiceImpl.java
@@ -126,6 +126,7 @@
             map.put("spec", material.getSpec());
             map.put("describle", material.getDescribe());
             map.put("unit", material.getUnit());
+            map.put("operateType", material.getOperateType());
             mappedList.add(map);
         }
         return mappedList;
@@ -250,6 +251,7 @@
             map.put("type", null);
             map.put("longitude", null);
             map.put("latitude", null);
+            map.put("operateType", warehouse.getOperateType());
             mappedList.add(map);
         }
         return mappedList;
@@ -277,7 +279,7 @@
             map.put("nameEn", null);
             map.put("breifCode", customer.getCustomerNickName());
             // server 绔被鍨嬭浆鎹娇鐢ㄤ腑鏂囨弿杩�
-            map.put("type", customer.getType());
+            map.put("type", "瀹㈡埛");
             map.put("contact", customer.getContact());
             map.put("tel", customer.getTelephone());
             map.put("email", customer.getEmail());
@@ -286,6 +288,7 @@
             map.put("province", null);
             map.put("address", customer.getAddress());
             map.put("code", customer.getCustomerId());
+            map.put("operateType", customer.getOperateType());
             mappedList.add(map);
         }
         return mappedList;
@@ -314,6 +317,7 @@
             map.put("province", null);
             map.put("address", supplier.getAddress());
             map.put("code", supplier.getSupplierId());
+            map.put("operateType", supplier.getOperateType());
             mappedList.add(map);
         }
         return mappedList;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java
index 3418282..cccf9bc 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java
@@ -51,6 +51,9 @@
     @ApiModelProperty("鏉″舰鐮�")
     private String barcode;
 
+    @ApiModelProperty("鎿嶄綔绫诲瀷锛�0鏂板/鏇存柊/瑙g(鍚敤)锛�1绂佺敤")
+    private Integer operateType;
+
 
 }
 
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
index 733651e..2ca9325 100644
--- 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
@@ -50,5 +50,8 @@
     @ApiModelProperty("浼佷笟缂栫爜")
     private String code;
 
+    @ApiModelProperty("鎿嶄綔绫诲瀷锛�0鏂板/鏇存柊/瑙g(鍚敤)锛�1绂佺敤")
+    private Integer operateType;
+
 }
 
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
index fef5d8d..71db348 100644
--- 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
@@ -33,5 +33,8 @@
     @ApiModelProperty("绾害")
     private String latitude;
 
+    @ApiModelProperty("鎿嶄綔绫诲瀷锛�0鏂板/鏇存柊/瑙g(鍚敤)锛�1绂佺敤")
+    private Integer operateType;
+
 }
 
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 68ce40f..2f739e4 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
@@ -207,7 +207,6 @@
     @Override
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public void syncMatnrs(List<BaseMatParms> matnrs) {
-        List<Matnr> syncMatnrs = new ArrayList<>();
         if (!matnrs.isEmpty()) {
             matnrs.forEach(matnr -> {
                 Matnr mat = new Matnr();
@@ -222,12 +221,23 @@
                         mat.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
                     }
                 }
-                syncMatnrs.add(mat);
-            });
+                Matnr exist = matnrService.getOne(new LambdaQueryWrapper<Matnr>()
+                        .eq(Matnr::getCode, matnr.getMatnr())
+                        .last("limit 1"));
 
-            if (!matnrService.saveOrUpdateBatch(syncMatnrs)) {
-                throw new CoolException("鐗╂枡淇℃伅淇濆瓨鎴愬姛锛侊紒");
-            }
+                mat.setStatus(Objects.isNull(matnr.getOperateType()) ? 1 : (matnr.getOperateType() == 1 ? 0 : 1));
+                if (!Objects.isNull(exist)) {
+                    mat.setId(exist.getId());
+                    if (!matnrService.saveOrUpdate(mat)) {
+                        throw new CoolException("鐗╂枡淇℃伅鏇存柊澶辫触锛侊紒");
+                    }
+                } else {
+                    mat.setId(null);
+                    if (!matnrService.save(mat)) {
+                        throw new CoolException("鐗╂枡淇℃伅淇濆瓨澶辫触锛侊紒");
+                    }
+                }
+            });
         }
     }
 
@@ -307,7 +317,8 @@
     @Override
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public R syncMatGroups(List<SyncMatGroupsParams> matGroupsParams) {
-        List<MatnrGroup> syncMatGroups = new ArrayList<>();
+        final int[] insertCount = {0};
+        final int[] updateCount = {0};
         matGroupsParams.forEach(matGroupsParam -> {
             MatnrGroup matnrGroup = new MatnrGroup();
             BeanUtils.copyProperties(matGroupsParam, matnrGroup);
@@ -320,12 +331,36 @@
             if (Objects.isNull(matGroupsParam.getParCode())) {
                 throw new CoolException("涓婄骇鐗╂枡鍒嗙粍缂栫爜涓嶈兘涓虹┖锛侊紒");
             }
-            syncMatGroups.add(matnrGroup);
+
+            // 骞傜瓑鍚屾锛氫紭鍏堟寜缂栫爜鍖归厤锛屾壘涓嶅埌鍐嶆寜鍚嶇О鍖归厤
+            MatnrGroup one = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
+                    .eq(MatnrGroup::getCode, matGroupsParam.getCode())
+                    .last("limit 1"));
+            if (Objects.isNull(one)) {
+                one = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
+                        .eq(MatnrGroup::getName, matGroupsParam.getName())
+                        .last("limit 1"));
+            }
+
+            if (!Objects.isNull(one)) {
+                matnrGroup.setId(one.getId());
+                if (!matnrGroupService.saveOrUpdate(matnrGroup)) {
+                    throw new CoolException("鐗╂枡鍒嗙粍鏇存柊澶辫触锛侊紒");
+                }
+                updateCount[0]++;
+            } else {
+                matnrGroup.setId(null);
+                if (!matnrGroupService.save(matnrGroup)) {
+                    throw new CoolException("鐗╂枡鍒嗙粍淇濆瓨澶辫触锛侊紒");
+                }
+                insertCount[0]++;
+            }
         });
-        if (!matnrGroupService.saveBatch(syncMatGroups)) {
-            throw new CoolException("鐗╂枡鍒嗙粍淇濆瓨澶辫触锛侊紒");
-        }
-        return R.ok();
+        Map<String, Object> result = new HashMap<>();
+        result.put("total", matGroupsParams.size());
+        result.put("insertCount", insertCount[0]);
+        result.put("updateCount", updateCount[0]);
+        return R.ok(result);
     }
 
     /**
@@ -337,23 +372,45 @@
     @Override
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public R syncWarehouseAreas(List<LocAreasParams> areasParams) {
+        final int[] insertCount = {0};
+        final int[] updateCount = {0};
         areasParams.forEach(param -> {
             WarehouseAreas locArea = new WarehouseAreas();
             BeanUtils.copyProperties(param, locArea);
-            WarehouseAreas warehouseAreas = warehouseAreasService
-                    .getOne(new LambdaQueryWrapper<WarehouseAreas>()
-                            .eq(WarehouseAreas::getName, param.getName()));
+            // 骞傜瓑鍚屾锛氫紭鍏堟寜缂栫爜鍖归厤锛屾壘涓嶅埌鍐嶆寜鍚嶇О鍖归厤
+            WarehouseAreas warehouseAreas = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
+                    .eq(WarehouseAreas::getCode, param.getCode())
+                    .last("limit 1"));
+            if (Objects.isNull(warehouseAreas)) {
+                warehouseAreas = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
+                        .eq(WarehouseAreas::getName, param.getName())
+                        .last("limit 1"));
+            }
             if (!Objects.isNull(warehouseAreas)) {
                 locArea.setWarehouseId(warehouseAreas.getId());
             }
             locArea.setName(param.getName())
-                    .setCode(param.getCode())
-                    .setId(null);
-            if (!warehouseAreasService.save(locArea)) {
-                throw new CoolException("搴撳尯淇濆瓨澶辫触锛侊紒");
+                    .setCode(param.getCode());
+
+            if (!Objects.isNull(warehouseAreas)) {
+                locArea.setId(warehouseAreas.getId());
+                if (!warehouseAreasService.saveOrUpdate(locArea)) {
+                    throw new CoolException("搴撳尯鏇存柊澶辫触锛侊紒");
+                }
+                updateCount[0]++;
+            } else {
+                locArea.setId(null);
+                if (!warehouseAreasService.save(locArea)) {
+                    throw new CoolException("搴撳尯淇濆瓨澶辫触锛侊紒");
+                }
+                insertCount[0]++;
             }
         });
-        return R.ok();
+        Map<String, Object> result = new HashMap<>();
+        result.put("total", areasParams.size());
+        result.put("insertCount", insertCount[0]);
+        result.put("updateCount", updateCount[0]);
+        return R.ok(result);
     }
 
     /**
@@ -365,15 +422,35 @@
     @Override
     @Transactional(timeout = 60, rollbackFor = Exception.class)
     public R syncWarehouse(List<WarehouseParams> warehouses) {
+        final int[] insertCount = {0};
+        final int[] updateCount = {0};
         warehouses.forEach(warehouse -> {
             Warehouse ware = new Warehouse();
             BeanUtils.copyProperties(warehouse, ware);
-            ware.setId(null);
-            if (!warehouseService.save(ware)) {
-                throw new CoolException("浠撳簱鍚屾淇濆瓨澶辫触锛侊紒");
+            // 骞傜瓑鍚屾锛氭寜浠撳簱鍚嶇О鍖归厤
+            Warehouse one = warehouseService.getOne(new LambdaQueryWrapper<Warehouse>()
+                    .eq(Warehouse::getName, warehouse.getName())
+                    .last("limit 1"));
+            ware.setStatus(Objects.isNull(warehouse.getOperateType()) ? 1 : (warehouse.getOperateType() == 1 ? 0 : 1));
+            if (!Objects.isNull(one)) {
+                ware.setId(one.getId());
+                if (!warehouseService.saveOrUpdate(ware)) {
+                    throw new CoolException("浠撳簱鍚屾鏇存柊澶辫触锛侊紒");
+                }
+                updateCount[0]++;
+            } else {
+                ware.setId(null);
+                if (!warehouseService.save(ware)) {
+                    throw new CoolException("浠撳簱鍚屾淇濆瓨澶辫触锛侊紒");
+                }
+                insertCount[0]++;
             }
         });
-        return R.ok();
+        Map<String, Object> result = new HashMap<>();
+        result.put("total", warehouses.size());
+        result.put("insertCount", insertCount[0]);
+        result.put("updateCount", updateCount[0]);
+        return R.ok(result);
     }
 
     /**
@@ -406,6 +483,7 @@
             }
 
             companys.setType(CompanysType.getCustomVal(param.getType()));
+            companys.setStatus(Objects.isNull(param.getOperateType()) ? 1 : (param.getOperateType() == 1 ? 0 : 1));
             if (!Objects.isNull(one)) {
                 companys.setId(one.getId());
                 // 宸插瓨鍦ㄥ垯鏇存柊锛屼笉閲嶅鎶ラ敊

--
Gitblit v1.9.1