|
@@ -4,11 +4,14 @@ 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.IService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.base.BaseEntity;
|
|
|
import com.fjhx.entity.product.ProductCombination;
|
|
|
import com.fjhx.entity.product.ProductInfo;
|
|
|
import com.fjhx.entity.stock.Stock;
|
|
|
import com.fjhx.entity.stock.StockCombination;
|
|
|
+import com.fjhx.entity.stock.StockSplit;
|
|
|
import com.fjhx.enums.stock.InTypeEnum;
|
|
|
import com.fjhx.enums.stock.OutTypeEnum;
|
|
|
import com.fjhx.mapper.stock.StockCombinationMapper;
|
|
@@ -16,10 +19,12 @@ import com.fjhx.params.stock.*;
|
|
|
import com.fjhx.service.product.ProductCombinationService;
|
|
|
import com.fjhx.service.stock.StockCombinationService;
|
|
|
import com.fjhx.service.stock.StockService;
|
|
|
+import com.fjhx.service.stock.StockSplitService;
|
|
|
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.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -49,6 +54,9 @@ public class StockCombinationServiceImpl extends ServiceImpl<StockCombinationMap
|
|
|
@Autowired
|
|
|
private StockService stockService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private StockSplitService stockSplitService;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public Page<StockCombinationPageVo> getPage(StockCombinationPageDto dto) {
|
|
@@ -109,23 +117,23 @@ public class StockCombinationServiceImpl extends ServiceImpl<StockCombinationMap
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void split(StockCombination stockCombination) {
|
|
|
+ public void split(StockSplit stockSplit) {
|
|
|
// 查询组合包涵产品id以和所需数量
|
|
|
- List<ProductCombination> productCombinationList = getCombinationListByProductId(stockCombination.getProductId());
|
|
|
+ List<ProductCombination> productCombinationList = getCombinationListByProductId(stockSplit.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())));
|
|
|
+ stockChangeDetailsDto.setChangeQuantity(productCombination.getLinkQuantity().multiply(BigDecimal.valueOf(stockSplit.getSplitQuantity())));
|
|
|
stockChangeDetailsDtoList.add(stockChangeDetailsDto);
|
|
|
}
|
|
|
//将包含产品入库
|
|
|
// 赋值库存变更参数
|
|
|
StockChangeDto stockChangeDto0 = new StockChangeDto();
|
|
|
stockChangeDto0.setDefaultBusinessId(IdWorker.getId());
|
|
|
- stockChangeDto0.setDefaultWarehouseId(stockCombination.getSourceWarehouseId());
|
|
|
+ stockChangeDto0.setDefaultWarehouseId(stockSplit.getSourceWarehouseId());
|
|
|
stockChangeDto0.setTypeEnum(InTypeEnum.COMBINATION);
|
|
|
stockChangeDto0.setChangeDetailsList(stockChangeDetailsDtoList);
|
|
|
// 保存变更明细
|
|
@@ -133,16 +141,19 @@ public class StockCombinationServiceImpl extends ServiceImpl<StockCombinationMap
|
|
|
|
|
|
//将产品组合出库
|
|
|
StockChangeDetailsDto stockChangeDetailsDto = new StockChangeDetailsDto();
|
|
|
- stockChangeDetailsDto.setGoodsId(stockCombination.getProductId());
|
|
|
- stockChangeDetailsDto.setChangeQuantity(BigDecimal.valueOf(stockCombination.getCombinationQuantity()));
|
|
|
+ stockChangeDetailsDto.setGoodsId(stockSplit.getProductId());
|
|
|
+ stockChangeDetailsDto.setChangeQuantity(BigDecimal.valueOf(stockSplit.getSplitQuantity()));
|
|
|
// 赋值库存变更参数
|
|
|
StockChangeDto stockChangeDto = new StockChangeDto();
|
|
|
stockChangeDto.setDefaultBusinessId(IdWorker.getId());
|
|
|
- stockChangeDto.setDefaultWarehouseId(stockCombination.getCombinationWarehouseId());
|
|
|
+ stockChangeDto.setDefaultWarehouseId(stockSplit.getSourceWarehouseId());
|
|
|
stockChangeDto.setTypeEnum(OutTypeEnum.COMBINATION);
|
|
|
stockChangeDto.setChangeDetailsList(Collections.singletonList(stockChangeDetailsDto));
|
|
|
// 保存变更明细
|
|
|
stockService.changeQuantity(stockChangeDto);
|
|
|
+
|
|
|
+ //--------添加拆分记录-------------------------------------------
|
|
|
+ stockSplitService.save(stockSplit);
|
|
|
}
|
|
|
|
|
|
@Override
|