Forráskód Böngészése

根据上架的信息,更新在售产品的规格字段

yujia 8 éve
szülő
commit
3b02d053ee

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

@@ -514,6 +514,15 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
 	@Query(value = "select g from Goods g where g.productid =:productId order by g.id desc")
 	List<Goods> findByProductId(@Param("productId") Long id);
 
+    /**
+     * 根据productId 获取goods
+     *
+     * @param ids the id 来源id 的信息
+     * @return list
+     */
+    @Query(value = "select g from Goods g where g.productid in (:ids)")
+    List<Goods> findByProductIds(@Param("ids") List<Long> ids);
+
     /**
      * 根据productId 获取goods,按照时间降序排列
      *

+ 8 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/V_ProductPrivateDao.java

@@ -43,4 +43,12 @@ public interface V_ProductPrivateDao extends JpaRepository<V_ProductPrivate, Lon
             "pp.pr_enuu=:enuu and pp.pr_pcmpcode is not null and pp.pr_pbranden is not null and pp.pr_b2cenabled = :enabled", nativeQuery = true)
     Integer getCountByEnuuAndEnabled(@Param("enuu") Long enuu, @Param("enabled") Integer enabled);
 
+
+    /**
+     * 获取指定id列表并且规格信息不为空的产品
+     * @param idList
+     * @return
+     */
+    @Query(value = "select p from V_ProductPrivate p where id in :idList and p.spec is not null")
+    List<V_ProductPrivate> findProductInIdAndSpecIsNotNull(@Param("idList") List<Long> idList);
 }

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

@@ -45,6 +45,8 @@ public interface GoodsService {
      */
     Goods updateAvailableDays(Goods goods, GoodsHistory.OperateType operateType, Long... param);
 
+
+
     /**
      * 根据uuid查找货物信息
      *
@@ -736,4 +738,13 @@ public interface GoodsService {
      * @return
      */
     Page<Goods> findGoods(PageParams params, String branduuid, String kindid, String keyword);
+
+
+    /**
+     * 更新货物的有效期
+     *
+     * @param privateList the operate type 操作的记录
+     * @param goodses       the param
+     */
+    void updateSpecByProducts(List<V_ProductPrivate> privateList, List<Goods> goodses);
 }

+ 3 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsHistoryServiceImpl.java

@@ -141,9 +141,9 @@ public class GoodsHistoryServiceImpl implements GoodsHistoryService {
 			goodsHistory.setOperateUU(SystemSession.getUser().getUserUU());
 		}
 		goodsHistory.setOperateType(type);
-		if(GoodsHistory.OperateType.Update.getPhrase().equals(type)) {
-			goodsHistory.setMessage(compareGoodsHistory(goodsHistory));
-		}
+//		if(GoodsHistory.OperateType.Update.getPhrase().equals(type)) {
+//			goodsHistory.setMessage(compareGoodsHistory(goodsHistory));
+//		}
 		return goodsHistory;
 	}
 

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

@@ -35,8 +35,7 @@ import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductStandardPutOnInfoDao;
-import com.uas.platform.b2c.prod.commodity.model.Goods;
-import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
+import com.uas.platform.b2c.prod.commodity.model.*;
 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.GoodsHistoryDao;
@@ -47,17 +46,8 @@ import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductStandardPutOnInfoDao;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
-import com.uas.platform.b2c.prod.commodity.model.GoodsFilter;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory.OperateType;
-import com.uas.platform.b2c.prod.commodity.model.GoodsInfo;
-import com.uas.platform.b2c.prod.commodity.model.GoodsPriceInfo;
-import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
-import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
-import com.uas.platform.b2c.prod.commodity.model.Product;
-import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
-import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
-import com.uas.platform.b2c.prod.commodity.model.ProductStandardPutOnInfo;
 import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
 import com.uas.platform.b2c.prod.commodity.service.GoodsPriceInfoService;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
@@ -65,11 +55,9 @@ import com.uas.platform.b2c.prod.commodity.service.ProductService;
 import com.uas.platform.b2c.prod.commodity.service.ProductStandardPutOnInfoService;
 import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
 import com.uas.platform.b2c.prod.commodity.model.GoodsInfo;
-import com.uas.platform.b2c.prod.commodity.model.GoodsModifyInfo;
 import com.uas.platform.b2c.prod.commodity.model.GoodsPriceInfo;
 import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
 import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
-import com.uas.platform.b2c.prod.commodity.model.ModifyInfo;
 import com.uas.platform.b2c.prod.commodity.model.Product;
 import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
 import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
@@ -201,6 +189,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import static com.uas.platform.core.persistence.criteria.PredicateUtils.like;
+import static org.apache.commons.jexl2.parser.ParserConstants.and;
 
 
 /**
@@ -4149,4 +4138,34 @@ public class GoodsServiceImpl implements GoodsService {
             info.expression(PredicateUtils.eq("reserve", 0, true));
         }
 	}
+
+    /**
+     * 更新货物的有效期
+     *
+     * @param privateList the operate type 操作的记录
+     * @param goodses     the param
+     */
+    @Override
+    public void updateSpecByProducts(List<V_ProductPrivate> privateList, List<Goods> goodses) {
+        List<Goods> goods = new ArrayList<>();
+        List<GoodsHistory> goodsHistories = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(privateList) && CollectionUtils.isNotEmpty(goodses)) {
+            for (V_ProductPrivate v_productPrivate : privateList) {
+                for (Goods goodse : goodses) {
+                    if (goodse.getProductid() != null && (goodse.getProductid().longValue() ==  v_productPrivate.getId().longValue()) && (!StringUtils.isEmpty(v_productPrivate.getSpec())) && (!v_productPrivate.getSpec().equals(goodse.getSpec()))) {
+                        goodse.setSpec(v_productPrivate.getSpec());
+                        goods.add(goodse);
+                        GoodsHistory history = goodsHistoryService.converTGoodsHist(goodse, OperateType.Update.getPhrase(), false);
+                        goodsHistories.add(history);
+                    }
+                }
+            }
+        }
+        if (CollectionUtils.isNotEmpty(goods)) {
+            goodsDao.save(goods);
+        }
+        if (CollectionUtils.isNotEmpty(goodsHistories)) {
+            goodsHistoryService.save(goodsHistories);
+        }
+    }
 }

+ 30 - 53
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.alibaba.fastjson.JSON;
 import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.service.EnterpriseService;
@@ -14,26 +12,9 @@ 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.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.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.GoodsService;
 import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
@@ -52,37 +33,11 @@ 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.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.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.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;
@@ -95,6 +50,22 @@ 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.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+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 {
 
@@ -149,6 +120,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 	@Autowired
 	private PcbPropertyvalueDao pcbPropertyvalueDao;
 
+	@Autowired
+	private V_ProductPrivateDao v_productPrivateDao;
+
 	private static final String SIZE = "尺寸";
 	private static final String COLOR = "颜色";
 	private static final String THICKCOPPER = "铜厚";
@@ -1616,7 +1590,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 		List<Long> productIds = null;
 		List<ProductPrivate> productPrivateList = null;
 		if (!CollectionUtils.isEmpty(releaseProductByBatchList)) {
-			Map<String, Object> map = convertProduct(releaseProductByBatchList,false, isPcb);
+			Map<String, Object> map = convertProduct(releaseProductByBatchList, false, isPcb);
 			List<com.uas.ps.entity.Product> products = (List<com.uas.ps.entity.Product>) map.get("products");
 			// TODO 什么接口
 			String result = restTemplate.postForEntity(productServiceIp + "/product/update", products, String.class).getBody();
@@ -1634,6 +1608,11 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			}
 			productPrivateList = productPrivateDao.save(productPrivates);
 
+			//根据更新的规格信息,更新在售产品的信息
+			List<V_ProductPrivate> v_productPrivates = v_productPrivateDao.findProductInIdAndSpecIsNotNull(productIds);
+			List<Goods> goodses = goodsDao.findByProductIds(productIds);
+			goodsService.updateSpecByProducts(v_productPrivates, goodses);
+
 			if (isPcb) {
 				List<PCB> pcbList = new ArrayList<>();
 				List<PCBPropertyValue> propertyValueList = new ArrayList<>();
@@ -1770,11 +1749,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
                 product.setStandard(releaseProductByBatch.getComponentUuId() == null ? (short)0 : (short)1);
                 product.setCmpUuid(releaseProductByBatch.getComponentUuId());
                 product.setCreateTime(new Date(System.currentTimeMillis()));
+				product.setSpec(releaseProductByBatch.getSpec());
                 // 产品导入默认可销售
                 product.setIsSale((short) 1);
-                if (isAPerson) {
-                    product.setSpec(releaseProductByBatch.getPackaging());
-                }
                 String batchCode = "PNUM" + createNumberService.getTimeNumber("trade$product_import_num", 8);
                 product.setCode(batchCode);