|
@@ -1,6 +1,7 @@
|
|
|
package com.fjhx.service.stock.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -19,16 +20,16 @@ import com.fjhx.utils.Assert;
|
|
|
import com.fjhx.utils.UserClientUtil;
|
|
|
import com.fjhx.utils.wrapperUtil.IWrapper;
|
|
|
import com.fjhx.utils.wrapperUtil.KeywordData;
|
|
|
+import org.springblade.core.tool.api.R;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -98,6 +99,52 @@ public class StockCombinationServiceImpl extends ServiceImpl<StockCombinationMap
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public void addBatch(List<StockCombination> stockCombinations){
|
|
|
+ for (StockCombination stockCombination : stockCombinations){
|
|
|
+ add(stockCombination);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public void split(StockCombination stockCombination) {
|
|
|
+ // 查询组合包涵产品id以和所需数量
|
|
|
+ List<ProductCombination> productCombinationList = getCombinationListByProductId(stockCombination.getProductId());
|
|
|
+ List<StockChangeDetailsDto> stockChangeDetailsDtoList = new ArrayList<>();
|
|
|
+ for(ProductCombination productCombination:productCombinationList){
|
|
|
+ //设置包含产品id和数量(赋值变更明细)
|
|
|
+ StockChangeDetailsDto stockChangeDetailsDto = new StockChangeDetailsDto();
|
|
|
+ stockChangeDetailsDto.setGoodsId(productCombination.getLinkProductId());
|
|
|
+ //计算要入库的数量 包含产品所需的数量*要拆分组合的数量
|
|
|
+ stockChangeDetailsDto.setChangeQuantity(productCombination.getLinkQuantity().multiply(BigDecimal.valueOf(stockCombination.getCombinationQuantity())));
|
|
|
+ stockChangeDetailsDtoList.add(stockChangeDetailsDto);
|
|
|
+ }
|
|
|
+ //将包含产品入库
|
|
|
+ // 赋值库存变更参数
|
|
|
+ StockChangeDto stockChangeDto0 = new StockChangeDto();
|
|
|
+ stockChangeDto0.setDefaultBusinessId(IdWorker.getId());
|
|
|
+ stockChangeDto0.setDefaultWarehouseId(stockCombination.getSourceWarehouseId());
|
|
|
+ stockChangeDto0.setTypeEnum(InTypeEnum.COMBINATION);
|
|
|
+ stockChangeDto0.setChangeDetailsList(stockChangeDetailsDtoList);
|
|
|
+ // 保存变更明细
|
|
|
+ stockService.changeQuantity(stockChangeDto0);
|
|
|
+
|
|
|
+ //将产品组合出库
|
|
|
+ StockChangeDetailsDto stockChangeDetailsDto = new StockChangeDetailsDto();
|
|
|
+ stockChangeDetailsDto.setGoodsId(stockCombination.getProductId());
|
|
|
+ stockChangeDetailsDto.setChangeQuantity(BigDecimal.valueOf(stockCombination.getCombinationQuantity()));
|
|
|
+ // 赋值库存变更参数
|
|
|
+ StockChangeDto stockChangeDto = new StockChangeDto();
|
|
|
+ stockChangeDto.setDefaultBusinessId(IdWorker.getId());
|
|
|
+ stockChangeDto.setDefaultWarehouseId(stockCombination.getCombinationWarehouseId());
|
|
|
+ stockChangeDto.setTypeEnum(OutTypeEnum.COMBINATION);
|
|
|
+ stockChangeDto.setChangeDetailsList(Collections.singletonList(stockChangeDetailsDto));
|
|
|
+ // 保存变更明细
|
|
|
+ stockService.changeQuantity(stockChangeDto);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public int getQuantityByWarehouseId(GetQuantityByWarehouseIdDto dto) {
|
|
|
|