Просмотр исходного кода

将批量上架生成历史库存的信息,放到java代码层上处理

yujia 7 лет назад
Родитель
Сommit
81a6e2a66b

+ 8 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/GoodsService.java

@@ -784,4 +784,12 @@ public interface GoodsService {
      * @return ap<Long, Integer>
      */
     Map<Long, Integer> batchGetCountByProductId(List<Long>  prIds);
+
+
+    /**
+     * 根据 batchid 获取本次上架的信息
+     * @param batchid 本批次上架标识
+     * @return  List<Goods>
+     */
+    List<Goods> findByBatchId(String batchid);
 }

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

@@ -4317,4 +4317,20 @@ public class GoodsServiceImpl implements GoodsService {
             return resultMap;
         }
     }
+
+    /**
+     * 根据 batchid 获取本次上架的信息
+     *
+     * @param batchid 本批次上架标识
+     * @return List<Goods>
+     */
+    @Override
+    public List<Goods> findByBatchId(String batchid) {
+        if (StringUtils.isEmpty(batchid)) {
+            return new ArrayList<>();
+        } else {
+            List<Goods> goodses = goodsDao.findByBatchid(batchid);
+            return goodses;
+        }
+    }
 }

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

@@ -1,7 +1,5 @@
 package com.uas.platform.b2c.prod.commodity.service.impl;
 
-import static com.uas.platform.b2c.core.utils.NumberUtil.fractionNumCeil;
-
 import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.base.dao.CommonDao;
 import com.uas.platform.b2c.core.config.SysConf;
@@ -13,31 +11,10 @@ import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.core.utils.RegexConstant;
 import com.uas.platform.b2c.core.utils.StringUtilB2C;
-import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
-import com.uas.platform.b2c.prod.commodity.constant.ErrorInfoConstant;
-import com.uas.platform.b2c.prod.commodity.constant.ModifyConstant;
-import com.uas.platform.b2c.prod.commodity.constant.ShortConstant;
-import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
-import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
-import com.uas.platform.b2c.prod.commodity.dao.PCBDao;
-import com.uas.platform.b2c.prod.commodity.dao.PcbPropertyvalueDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductPersonDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
-import com.uas.platform.b2c.prod.commodity.dao.ReleaseProductByBatchDao;
-import com.uas.platform.b2c.prod.commodity.dao.V_ProductPrivateDao;
-import com.uas.platform.b2c.prod.commodity.model.Goods;
-import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
-import com.uas.platform.b2c.prod.commodity.model.PCB;
-import com.uas.platform.b2c.prod.commodity.model.PCBPropertyValue;
-import com.uas.platform.b2c.prod.commodity.model.Product;
-import com.uas.platform.b2c.prod.commodity.model.ProductPerson;
-import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
-import com.uas.platform.b2c.prod.commodity.model.ReleaseProductByBatch;
-import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import com.uas.platform.b2c.prod.commodity.service.ProductPrivateService;
-import com.uas.platform.b2c.prod.commodity.service.ProductService;
-import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
+import com.uas.platform.b2c.prod.commodity.constant.*;
+import com.uas.platform.b2c.prod.commodity.dao.*;
+import com.uas.platform.b2c.prod.commodity.model.*;
+import com.uas.platform.b2c.prod.commodity.service.*;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
 import com.uas.platform.b2c.prod.commodity.util.SheetUtil;
 import com.uas.platform.b2c.prod.product.brand.dao.BrandInfoDao;
@@ -58,41 +35,12 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.persistence.criteria.CriterionExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
-import java.math.BigDecimal;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.map.HashedMap;
 import org.apache.log4j.Logger;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.DateUtil;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.dao.DataAccessException;
@@ -107,6 +55,25 @@ import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.math.BigDecimal;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static com.uas.platform.b2c.core.utils.NumberUtil.fractionNumCeil;
+
 @Service
 public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchService {
 
@@ -164,6 +131,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 	@Autowired
 	private  ProductService productService;
 
+    @Autowired
+    private GoodsHistoryService goodsHistoryService;
+
 	/**
 	 * 控制任务提交速度的线程池
 	 */
@@ -1779,7 +1749,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 		System.err.println("l9 -------------------l8 " + (l9 - l8));
 		ArrayList<Long> list = new ArrayList<>();
 		list.addAll((Set<Long>)map.get("prIds"));
-		afterPublishToGoodsDo(list, (Set<Long>)map.get("reIds"));
+		afterPublishToGoodsDo(list, (Set<Long>)map.get("reIds"), batch);
 		return StringUtilB2C.getStr(num);
 	}
 
@@ -1985,8 +1955,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 	/**
 	 * 批量发布之后,需要做的事情,内部使用线程,不需要让用户等结果
 	 */
-	public void afterPublishToGoodsDo(final List<Long> productIds, final Set<Long> reIds) {
-		if (CollectionUtils.isEmpty(productIds)) {
+	public void afterPublishToGoodsDo(final List<Long> productIds, final Set<Long> reIds, String batchid) {
+        final List<Goods> goodses = goodsService.findByBatchId(batchid);
+        if (CollectionUtils.isEmpty(productIds)) {
 			return ;
 		}
 		final Runnable afterPublishToGoodsRunnable = new Runnable() {
@@ -2012,7 +1983,16 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 					List<Goods> goodses = goodsDao.findByProductIds(prIds);
 					goodsService.updateSpecByProducts(products, goodses);
 				}
-			}
+
+                List<GoodsHistory> list = new ArrayList<>();
+                for (Goods goodse : goodses) {
+                    GoodsHistory goodsHistory = goodsHistoryService.converTGoodsHist(goodse, GoodsHistory.OperateType.Publish.getPhrase(), false);
+                    list.add(goodsHistory);
+                }
+                if (CollectionUtils.isNotEmpty(list)) {
+                    commonDao.save(list, GoodsHistory.class);
+                }
+            }
 		};
 		try {
 			executor.submitTask(afterPublishToGoodsRunnable);