Browse Source

Merge branch 'dev-mysql' of ssh://10.10.100.21/source/platform-b2c into dev-mysql

yujia 8 years ago
parent
commit
b32997d94a

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductPrivateDao.java

@@ -10,7 +10,7 @@ import java.util.List;
 
 public interface ProductPrivateDao  extends JpaRepository<ProductPrivate, Long>, JpaSpecificationExecutor<ProductPrivate> {
 
-    public ProductPrivate findByPrId(Long prId);
+    public List<ProductPrivate> findByPrId(Long prId);
 
 
     /**

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/model/ProductPrivate.java

@@ -17,7 +17,7 @@ public class ProductPrivate {
     /**
      * 物料主键
      */
-    @Column(name = "pr_id", unique = true)
+    @Column(name = "pr_id")
     private Long prId;
 
     /**

+ 9 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/ReleaseProductByBatchService.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2c.prod.commodity.service;
 
+import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
 import com.uas.platform.b2c.prod.commodity.model.ReleaseProductByBatch;
 import com.uas.platform.core.model.PageInfo;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -94,4 +95,12 @@ public interface ReleaseProductByBatchService {
      */
     public List<ReleaseProductByBatch> findFailureReleaseProductByBatch(String batch);
 
+
+    /**
+     * 查找私有字段根据pr_id
+     * @param prId
+     * @return
+     */
+    public ProductPrivate findByPrId(Long prId);
+
 }

+ 7 - 4
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -135,6 +135,9 @@ public class GoodsServiceImpl implements GoodsService {
     @Autowired
     private CreateNumberService createNumberService;
 
+    @Autowired
+    private ReleaseProductByBatchService releaseProductByBatchService;
+
     @Autowired
     private ComponentDao componentDao;
 
@@ -1419,7 +1422,7 @@ public class GoodsServiceImpl implements GoodsService {
         if(persistGoods.getProductid() != null) {
             Product product = productDao.findOne(persistGoods.getProductid());
             if(product != null) {
-                ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                 if (productPrivate == null) {
                     productPrivate = new ProductPrivate();
                 }
@@ -2904,7 +2907,7 @@ public class GoodsServiceImpl implements GoodsService {
         if(goods.getProductid() != null) {
             Product product = productDao.findOne(goods.getProductid());
             if(product != null) {
-                ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                 if (productPrivate == null) {
                     productPrivate = new ProductPrivate();
                 }
@@ -2974,7 +2977,7 @@ public class GoodsServiceImpl implements GoodsService {
             if (goods.getProductid() != null) {
                 Product product = productDao.findOne(goods.getProductid());
                 if (product != null) {
-                    ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                    ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                     if (productPrivate == null) {
                         productPrivate = new ProductPrivate();
                     }
@@ -3077,7 +3080,7 @@ public class GoodsServiceImpl implements GoodsService {
                 }
                 goodsDao.save(tagEmptyGoods);
                 goodsDao.save(goods);
-                ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                 if (productPrivate == null) {
                     productPrivate = new ProductPrivate();
                 }

+ 19 - 13
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -15,10 +15,7 @@ import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
 import com.uas.platform.b2c.prod.commodity.dao.*;
 import com.uas.platform.b2c.prod.commodity.model.*;
-import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
-import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import com.uas.platform.b2c.prod.commodity.service.ProductService;
-import com.uas.platform.b2c.prod.commodity.service.UASBatchPutOnPropertyService;
+import com.uas.platform.b2c.prod.commodity.service.*;
 import com.uas.platform.b2c.prod.commodity.type.ProductConstant;
 import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
 import com.uas.platform.b2c.prod.product.brand.modal.Brand;
@@ -126,6 +123,9 @@ public class ProductServiceImpl implements ProductService {
     @Autowired
     private ProductModifyHistoryDao productModifyHistoryDao;
 
+    @Autowired
+    private ReleaseProductByBatchService releaseProductByBatchService;
+
     @Autowired
     private GoodsHistoryService goodsHistoryService;
 
@@ -242,7 +242,7 @@ public class ProductServiceImpl implements ProductService {
                 }
             }
             // 拿私有物料信息
-            ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+            ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
             if (null != productPrivate) {
                 product.setB2cEnabled(productPrivate.getB2cEnabled());
                 product.setBatchCount(productPrivate.getBatchCount());
@@ -414,7 +414,7 @@ public class ProductServiceImpl implements ProductService {
                     if (CollectionUtils.isNotEmpty(goodses)) {
                         goodsService.deleteGoods(goodses);
                     }
-                    ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                    ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                     if (productPrivate == null) {
                         productPrivate = new ProductPrivate();
                     }
@@ -440,6 +440,7 @@ public class ProductServiceImpl implements ProductService {
         List<ProductPerson> personList = new ArrayList<>();
         Integer fail = 0;
         Integer success = 0;
+        Integer isHave = 0;
         Long uu = SystemSession.getUser().getEnterprise().getUu();
         if(ProductConstant.STANDARD.equals(type)) {
             standard = IntegerConstant.YES_SHORT;
@@ -491,13 +492,18 @@ public class ProductServiceImpl implements ProductService {
                     productMatchResultDao.delete(productMatchResultSet);
                     goodsService.deleteGoods(goodses);
                     //productDao.delete(product.getId());
-                    ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                    ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
+                    if (productPrivate.getB2cEnabled().equals(IntegerConstant.NO_SHORT)) {
+                        fail++;
+                        isHave++;
+                    } else {
+                        success++;
+                    }
                     productPrivate.setB2cEnabled(IntegerConstant.NO_SHORT);
                     productPrivateDao.save(productPrivate);
                     if (!StringUtils.isEmpty(product.getCmpUuId())) {
                         uuids.add(product.getCmpUuId());
                     }
-                    success++;
                 }else {
                     fail++;
                 }
@@ -515,7 +521,7 @@ public class ProductServiceImpl implements ProductService {
             if(success != 0) {
                 message += ",";
             }
-            message += "删除失败" + fail + "条,原因:该产品可能已经被其他单据引用,无法删除";
+            message += "删除失败" + (fail-isHave) + "条,原因:该产品可能已经被其他单据或个人物料库引用,无法删除";
         }
         //如果是全部都不能删除,才能设置失败的状态码
         if((products.size() != 0) && (products.size() ==  fail.intValue())) {
@@ -880,7 +886,7 @@ public class ProductServiceImpl implements ProductService {
         if (standardProduct == null) {
             standardProduct = afterProduct;
         } else {
-            ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+            ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
             if (productPrivate == null) {
                 productPrivate = new ProductPrivate();
             }
@@ -908,7 +914,7 @@ public class ProductServiceImpl implements ProductService {
         }
         goodsHistoryDao.save(goodsHistoryList);
         Product beforeProduct = productDao.findOne(beforeId);
-        ProductPrivate productPrivate = productPrivateDao.findByPrId(beforeProduct.getId());
+        ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(beforeProduct.getId());
         if (productPrivate == null) {
             productPrivate = new ProductPrivate();
         }
@@ -981,7 +987,7 @@ public class ProductServiceImpl implements ProductService {
             }
         }
         goodsDao.save(saveList);
-        ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+        ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
         if (productPrivate == null) {
             productPrivate = new ProductPrivate();
         }
@@ -1130,7 +1136,7 @@ public class ProductServiceImpl implements ProductService {
                         product.setKinden(matchResult.getKinden());
                         product.setKindid(matchResult.getKindid());
                         List<Product> products = productDao.findProductByPcmpcodeAndPbrandenAndEnUUAndStandard(product.getPcmpcode(), product.getPbranden(), product.getEnUU(), IntegerConstant.YES_SHORT);
-                        ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                        ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                         if (productPrivate == null) {
                             productPrivate = new ProductPrivate();
                         }

+ 13 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java

@@ -1052,7 +1052,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			productIds = JSON.parseArray(result, Long.class);
 			List<ProductPrivate> productPrivates = new ArrayList<>();
 			for (Long prId : productIds) {
-				ProductPrivate productPrivate = productPrivateDao.findByPrId(prId);
+				ProductPrivate productPrivate = findByPrId(prId);
 				if (null == productPrivate) {
 					productPrivate = new ProductPrivate();
 					productPrivate.setPrId(prId);
@@ -1174,7 +1174,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
             // 默认为b2c Enable开启
             List<ProductPrivate> productPrivates = new ArrayList<>();
             for (Long prId : productIds) {
-                ProductPrivate productPrivate = productPrivateDao.findByPrId(prId);
+                ProductPrivate productPrivate = findByPrId(prId);
                 if (null == productPrivate) {
                     productPrivate = new ProductPrivate();
 					productPrivate.setPrId(prId);
@@ -1208,4 +1208,15 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 //		});
 		return null;
 	}
+
+	@Override
+	public ProductPrivate findByPrId(Long prId) {
+		List<ProductPrivate> productPrivates = productPrivateDao.findByPrId(prId);
+		if (!CollectionUtils.isEmpty(productPrivates)) {
+			ProductPrivate productPrivate = productPrivates.get(0);
+			return productPrivate;
+		} else {
+			return null;
+		}
+	}
 }

+ 3 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/util/GoodsUtil.java

@@ -104,6 +104,9 @@ public class GoodsUtil {
 	 * @return
 	 */
 	public static Boolean compareWithQtyPrice(List<GoodsQtyPrice> qtyPriceList, List<GoodsQtyPrice> targetList, String currency) {
+		if (CollectionUtils.isEmpty(qtyPriceList) || CollectionUtils.isEmpty(targetList)) {
+			return false;
+		}
 		if (qtyPriceList.size() != targetList.size()) {
 			return false;
 		}