Procházet zdrojové kódy

Merge remote-tracking branch 'origin/zx_saas_goods' into zx_saas_goods

zouxuan před 1 rokem
rodič
revize
d49841cc58

+ 12 - 2
mec-application/src/main/java/com/ym/mec/web/controller/GoodsController.java

@@ -26,6 +26,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -49,8 +51,16 @@ public class GoodsController extends BaseController {
     @ApiOperation(value = "新增商品(教材、辅件)")
     @PostMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('goods/add')")
-    public Object add(@RequestBody GoodsWrapper.Goods goods){
-        goodsService.addGoods(goods,sysUserService.getUserId());
+    public Object add(@RequestBody GoodsWrapper.Goods goods) {
+        goodsService.addGoods(Collections.singletonList(goods), sysUserService.getUserId());
+        return succeed();
+    }
+
+    @ApiOperation(value = "新增商品(教材、辅件)")
+    @PostMapping("/addBatch")
+    @PreAuthorize("@pcs.hasPermissions('goods/addBatch')")
+    public Object addBatch(@RequestBody List<GoodsWrapper.Goods> goodsList) {
+        goodsService.addGoods(goodsList, sysUserService.getUserId());
         return succeed();
     }
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/GoodsService.java

@@ -25,7 +25,7 @@ public interface GoodsService extends BaseService<Integer, Goods> {
 
     List<Goods> exportGoods(GoodsQueryInfo queryInfo);
 
-    void addGoods(GoodsWrapper.Goods goods, Integer operatorId);
+    void addGoods(List<GoodsWrapper.Goods> goodsList, Integer operatorId);
 
 //    void addGoodsProcurement(GoodsProcurement goodsProcurement);
 

+ 36 - 29
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -200,39 +200,46 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void addGoods(GoodsWrapper.Goods goods, Integer operatorId) {
-		if(StringUtils.isBlank(goods.getSn())){
-			throw new BizException("请指定商品货号");
-		}
-		Goods existsGood = goodsDao.lockBySn(goods.getSn());
-		if(Objects.nonNull(existsGood)){
+	public void addGoods(List<GoodsWrapper.Goods> goodsList, Integer operatorId) {
+		List<String> snList = goodsList.stream().map(GoodsWrapper.Goods::getSn).distinct().collect(Collectors.toList());
+		List<Goods> bySns = goodsDao.findBySns(snList);
+		if (!CollectionUtils.isEmpty(bySns)) {
 			throw new BizException("商品货号重复");
 		}
-		List<GoodsWrapper.GoodsSub> goodsSubList = goods.getGoodsSubList();
-		//获取最小的库存数
-		String skuIds = goodsSubList.stream().map(e -> e.getSku().toString()).collect(Collectors.joining(","));
-		PmsProductQueryParamDto paramDto = new PmsProductQueryParamDto();
-		paramDto.setSkuStockIds(skuIds);
+		for (GoodsWrapper.Goods goods : goodsList) {
+			if (StringUtils.isBlank(goods.getSn())) {
+				throw new BizException("请指定商品货号");
+			}
+			Goods existsGood = goodsDao.lockBySn(goods.getSn());
+			if (Objects.nonNull(existsGood)) {
+				throw new BizException("商品货号重复");
+			}
+			List<GoodsWrapper.GoodsSub> goodsSubList = goods.getGoodsSubList();
+			//获取最小的库存数
+			String skuIds = goodsSubList.stream().map(e -> e.getSku().toString()).collect(Collectors.joining(","));
+			PmsProductQueryParamDto paramDto = new PmsProductQueryParamDto();
+			paramDto.setSkuStockIds(skuIds);
 //		paramDto.setPublishStatus(1);
-		paramDto.setPageSize(1000);
-		paramDto.setPageNum(1);
-		paramDto.setJson(JSON.toJSONString(paramDto));
-		List<PmsProductDto> productList = mallFeignService.getProductList(paramDto).getRows();
-		if(CollectionUtils.isEmpty(productList)){
-			throw new BizException("子商品不存在");
+			paramDto.setPageSize(1000);
+			paramDto.setPageNum(1);
+			paramDto.setJson(JSON.toJSONString(paramDto));
+			List<PmsProductDto> productList = mallFeignService.getProductList(paramDto).getRows();
+			if (CollectionUtils.isEmpty(productList)) {
+				throw new BizException("子商品不存在");
+			}
+			//获取最小库存数量
+			Integer stock = productList.stream().map(PmsProductDto::getStock).min(Integer::compareTo).get();
+			goods.setStockCount(stock);
+			goods.setSellCount(0);
+			Goods goodsRecord = JSON.parseObject(JSON.toJSONString(goods), Goods.class);
+			goodsRecord.setStatus(YesOrNoEnum.NO);
+			BigDecimal organCostPrice = goodsSubList.stream().map(GoodsWrapper.GoodsSub::getGoodsPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+			goodsRecord.setOrganCostPrice(organCostPrice);
+			goodsDao.insert(goodsRecord);
+			List<GoodsSub> goodsSubs = JSON.parseArray(JSON.toJSONString(goodsSubList), GoodsSub.class);
+			goodsSubs.forEach(next -> next.setGoodsId(goodsRecord.getId()));
+			goodsSubService.saveBatch(goodsSubs);
 		}
-		//获取最小库存数量
-		Integer stock = productList.stream().map(PmsProductDto::getStock).min(Integer::compareTo).get();
-		goods.setStockCount(stock);
-		goods.setSellCount(0);
-		Goods goodsRecord = JSON.parseObject(JSON.toJSONString(goods), Goods.class);
-		goodsRecord.setStatus(YesOrNoEnum.NO);
-		BigDecimal organCostPrice = goodsSubList.stream().map(GoodsWrapper.GoodsSub::getGoodsPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-		goodsRecord.setOrganCostPrice(organCostPrice);
-		goodsDao.insert(goodsRecord);
-		List<GoodsSub> goodsSubs = JSON.parseArray(JSON.toJSONString(goodsSubList), GoodsSub.class);
-		goodsSubs.forEach(next -> next.setGoodsId(goodsRecord.getId()));
-		goodsSubService.saveBatch(goodsSubs);
 	}
 
 	/*@Override

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -1111,7 +1111,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                     for (int i = 0; i < goodsDtoList.size(); i++) {
                         ComplementGoodsDto goodsDto = goodsDtoList.get(i);
                         OrderCreate.OrderItem orderItemCreate = new OrderCreate.OrderItem();
-                        orderItemCreate.setProductQuantity(1);
+                        orderItemCreate.setProductQuantity(e.getNum());
                         orderItemCreate.setProductSkuId(goodsDto.getSkuStockId().longValue());
                         //如果是最后一件商品
                         if (i == goodsDtoList.size() - 1) {