Browse Source

提升确认上架速度。

yujia 7 years ago
parent
commit
ce87ef1cc2

+ 9 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductDao.java

@@ -29,6 +29,15 @@ public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaReposi
     @Query(value = "select p from Product p where p.enUU =:enuu and p.prodNum =:prodNum")
     List<Product> getProductByEnUUAndProdNum(@Param("enuu") Long enUU, @Param("prodNum") String prodNum);
 
+
+    /**
+     * 根据编号获取物料信息。
+     * @param prodNums  物料编号list
+     * @return 返回物料信息。
+     */
+    @Query(value = "select p from Product p where p.prodNum in (:prodNums)")
+    List<Product> findProductsByProdNums(@Param("prodNum") List<String> prodNums);
+
     /**
      * 通过uu查询非标准器件进行存储
      *

+ 7 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java

@@ -322,4 +322,11 @@ public interface ProductService {
      * @return
      */
     Page<V_ProductPrivate> getPageProducts(PageParams params, String keyword);
+
+    /**
+     * 根据编号获取物料信息。
+     * @param prodNums  物料编号list
+     * @return 返回物料信息。
+     */
+    List<Product> findProductsByProdNums(List<String> prodNums);
 }

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

@@ -2212,5 +2212,20 @@ public class ProductServiceImpl implements ProductService {
         List<V_ProductPrivate> productList = v_productPrivateDao.findAll(idList);
         return new PageImpl<V_ProductPrivate>(productList, info, ids.getTotalElement());
     }
+
+    /**
+     * 根据编号获取物料信息。
+     *
+     * @param prodNums 物料编号list
+     * @return 返回物料信息。
+     */
+    @Override
+    public List<Product> findProductsByProdNums(List<String> prodNums) {
+        if (CollectionUtils.isNotEmpty(prodNums)) {
+            return productDao.findProductsByProdNums(prodNums);
+        } else {
+            return new ArrayList<>();
+        }
+    }
 }
 

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

@@ -1813,14 +1813,18 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			thickCopperProId = propertyDao.findIdByLabelCn(THICKCOPPER);
 			thickProId = propertyDao.findIdByLabelCn(THICK);
 		}
-		String importNum = createNumberService.getTimeNumber("trade$product_import_num", 8, releaseProductByBatchList.size());
+        long l = System.currentTimeMillis();
+        String importNum = createNumberService.getTimeNumber("trade$product_import_num", 8, releaseProductByBatchList.size());
 		if (StringUtils.isEmpty(importNum)) {
 			throw new IllegalOperatorException("生成批次号失败");
 		}
 		String time = importNum.substring(IntegerConstant.NO_SHORT, (IntegerConstant.TIME_LENGTH));
 		Integer num = Integer.valueOf(importNum.substring(IntegerConstant.TIME_LENGTH));
 		String prodNum = null;
-		for (ReleaseProductByBatch releaseProductByBatch : releaseProductByBatchList) {
+        long l1 = System.currentTimeMillis();
+        System.err.println("打印l1-----------l" + (l1 - l));
+        List<String> proNums = new ArrayList<>();
+        for (ReleaseProductByBatch releaseProductByBatch : releaseProductByBatchList) {
 		    if (releaseProductByBatch.getReleaseCode().equals(ReleaseStatus.failure.value()) ||
                     releaseProductByBatch.getReleaseCode().equals(ReleaseStatus.success.value())) {
 				if (releaseProductByBatch.getProductid() == null) {
@@ -1830,6 +1834,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 					prodNum = "PNUM" + time + CreateNumberServiceImpl.formatIntToStr(++num, 8);
 					product.setProdNum(prodNum);
 					releaseProductByBatch.setProductNum(prodNum);
+                    proNums.add(prodNum);
 					products.add(product);
 				} else {
 					//对于已经存在于物料库的信息,如果规格信息已存在,则做更新,如果是
@@ -1864,9 +1869,12 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 
             }
 		}
+        long l2 = System.currentTimeMillis();
+        System.err.println("打印l2 ----------- l1" + (l2 - l1));
 		List<ReleaseProductByBatch> reList = new ArrayList<>();
 		if (products.size() != 0) {
-			List<Product> productes = productDao.save(products);
+            List<Product> productes = productDao.save(products);
+			//List<Product> productes = productService.findProductsByProdNums(proNums);
 			for (Product producte : productes) {
 				ProductPrivate productPrivate = new ProductPrivate();
 				productPrivate.setB2cEnabled(IntegerConstant.YES_SHORT);
@@ -1884,12 +1892,19 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 				}
 			}
 		}
+
+        long l3 = System.currentTimeMillis();
+        System.err.println("打印l3 ----------- l2" + (l3 - l2));
 		if (CollectionUtils.isNotEmpty(reList)) {
 			releaseProductByBatchDao.save(reList);
 		}
+        long l4 = System.currentTimeMillis();
+        System.err.println("打印l4 ----------- l3" + (l4 - l3));
 		if (CollectionUtils.isNotEmpty(productPrivates)) {
-			productPrivateService.saveProductPrivate(productPrivates);
+            commonDao.save(productPrivates, ProductPrivate.class);
 		}
+        long l5 = System.currentTimeMillis();
+        System.err.println("打印l5 ----------- l4" + (l5 - l4));
 		if (reIds.size() > 0) {
 			map.put("reIds", reIds);
 		}