Browse Source

物料更新逻辑改为规格同步,非标器件类目信息同步

wangyc 7 years ago
parent
commit
4781d0e5cc
1 changed files with 20 additions and 30 deletions
  1. 20 30
      src/main/java/com/uas/ps/product/service/impl/ProductServiceImpl.java

+ 20 - 30
src/main/java/com/uas/ps/product/service/impl/ProductServiceImpl.java

@@ -131,9 +131,13 @@ public class ProductServiceImpl implements ProductService {
             product.setSpec(productInfo.getSpec());
         }
         String newkind = productInfo.getKind();
-        if ((product.getStandard() == Constant.NO) && !StringUtils.isEmpty(newkind)) {
-            product.setKind(newkind);
-            product.setTitle(newkind);
+        if (!StringUtils.isEmpty(newkind)) {
+            if (Constant.YES == product.getStandard()) {
+                product.setTitle(newkind);
+            } else {
+                product.setKind(newkind);
+                product.setTitle(newkind);
+            }
         }
         return productDao.save(product);
     }
@@ -171,16 +175,11 @@ public class ProductServiceImpl implements ProductService {
                 products.add(prod.convert());
             } else { // 物料库上已经存在的物料,修改
                 Product product = prod.convert();
-                // 如果已存在物料类目不为空,erp上传的类目就不覆盖
+                // 如果已存在物料类目不为空且为标准物料,erp上传的类目就不覆盖kind属性
                 Product existProduct = prodResult.get(0);
-                if (!StringUtils.isEmpty(existProduct.getKind())) {
-                    product.setTitle(existProduct.getKind());
+                if (!StringUtils.isEmpty(existProduct.getKind()) && Constant.YES == existProduct.getStandard()) {
                     product.setKind(existProduct.getKind());
                 }
-                // 如果已存在物料规格不为空,erp上传的规格就不用覆盖
-                if (!StringUtils.isEmpty(existProduct.getSpec())) {
-                    product.setSpec(existProduct.getSpec());
-                }
                 product.setId(existProduct.getId());
                 product.setCode(existProduct.getCode());
                 products.add(product);
@@ -201,16 +200,11 @@ public class ProductServiceImpl implements ProductService {
             return (prod.convert());
         } else { // 物料库上已经存在的物料,修改
             Product product = prod.convert();
-            // 如果已存在物料类目不为空,erp上传的类目就不覆盖
+            // 如果已存在物料类目不为空且为标准物料,erp上传的类目就不覆盖kind属性
             Product existProduct = prodResult.get(0);
-            if (!StringUtils.isEmpty(existProduct.getKind())) {
-                product.setTitle(existProduct.getKind());
+            if (!StringUtils.isEmpty(existProduct.getKind()) && Constant.YES == existProduct.getStandard()) {
                 product.setKind(existProduct.getKind());
             }
-            // 如果已存在物料规格不为空,erp上传的规格就不用覆盖
-            if (!StringUtils.isEmpty(existProduct.getSpec())) {
-                product.setSpec(existProduct.getSpec());
-            }
             product.setId(prodResult.get(0).getId());
             product.setCode(prodResult.get(0).getCode());
             return product;
@@ -312,7 +306,7 @@ public class ProductServiceImpl implements ProductService {
     public List<Product> updateB2bProdInfo(List<Product> productInfo) {
         List<Product> saveList = new ArrayList<>();
         for (Product product : productInfo) {
-            List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(),product.getCode());
+            List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(), product.getCode());
             if (!CollectionUtils.isEmpty(products) && null == product.getId()) {
                 Product existedProd = products.get(0);
                 existedProd.setTitle(product.getTitle());
@@ -320,9 +314,9 @@ public class ProductServiceImpl implements ProductService {
                 if (!StringUtils.isEmpty(product.getSpec())) {
                     existedProd.setSpec(product.getSpec());
                 }
-                if (!StringUtils.isEmpty(product.getTitle())) {
+                // 如果物料已存在,新上传物料存在类目且原物料为非标,则更新kind属性
+                if (!StringUtils.isEmpty(product.getTitle()) && Constant.NO == existedProd.getStandard()) {
                     existedProd.setKind(product.getTitle());
-                    existedProd.setTitle(product.getTitle());
                 }
                 existedProd.setCmpCode(product.getCmpCode());
                 existedProd.setUnit(product.getUnit());
@@ -625,15 +619,12 @@ public class ProductServiceImpl implements ProductService {
                 newList.add(product);
             } else {
                 Product existProduct = productDao.findOne(product.getId());
-                // 如果物料已存在,且新上传物料存在类目、规格信息时,更新已存在物料字段
-                if (product != null) {
-                    if (StringUtils.isEmpty(product.getTitle()) && !StringUtils.isEmpty(existProduct.getKind())) {
-                        product.setTitle(existProduct.getKind());
-                        product.setTitle(existProduct.getKind());
-                    }
-
-                    if (StringUtils.isEmpty(product.getSpec()) && !StringUtils.isEmpty(existProduct.getSpec())) {
-                        product.setSpec(existProduct.getSpec());
+                // 如果物料已存在并为标准物料时,kind属性不更新
+                if (existProduct != null) {
+                    if (StringUtils.isEmpty(product.getTitle())) {
+                        if (Constant.YES == existProduct.getStandard()) {
+                            product.setKind(existProduct.getKind());
+                        }
                     }
                     updateList.add(product);
                     ids.add(product.getId());
@@ -860,7 +851,6 @@ public class ProductServiceImpl implements ProductService {
         product.setKind(component.getKind().getNameCn());
         product.setKindEn(component.getKind().getNameEn());
         product.setKindId(component.getKindid());
-        product.setTitle(component.getKind().getNameCn());
         product.setStandard(ProductConstant.STANDARD);
     }