package com.ruoyi.procurementrecord.utils;
|
|
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
|
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
|
import com.ruoyi.stock.dto.StockInRecordDto;
|
import com.ruoyi.stock.dto.StockInventoryDto;
|
import com.ruoyi.stock.dto.StockUninventoryDto;
|
import com.ruoyi.stock.service.StockInventoryService;
|
import com.ruoyi.stock.service.StockUninventoryService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.stereotype.Component;
|
|
import java.math.BigDecimal;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
@Component
|
@RequiredArgsConstructor
|
public class StockUtils {
|
private final ProcurementRecordOutMapper procurementRecordOutMapper;
|
private final ProcurementRecordMapper procurementRecordMapper;
|
private final StockUninventoryService stockUninventoryService;
|
private final StockInventoryService stockInventoryService;
|
|
// 获取商品入库数量,出库数量,剩余库存
|
public Map<String, BigDecimal> getStockQuantity(Long productModelId) {
|
// 入库数量
|
BigDecimal sumQuantity = procurementRecordMapper.getSumQuantity(productModelId);
|
// 出库数量
|
BigDecimal outQuantity = procurementRecordOutMapper.getSumQuantity(productModelId);
|
// 剩余库存
|
BigDecimal stockQuantity = outQuantity.compareTo(sumQuantity) > 0 ? BigDecimal.ZERO : sumQuantity.subtract(outQuantity);
|
Map<String, BigDecimal> stockMap = new HashMap<>();
|
stockMap.put("inboundNum", sumQuantity);
|
stockMap.put("outboundNum", outQuantity);
|
stockMap.put("stockQuantity", stockQuantity);
|
return stockMap;
|
}
|
|
/**
|
* 不合格入库
|
* @param productModelId
|
* @param quantity
|
* @param recordType
|
* @param recordId
|
*/
|
public void addUnStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) {
|
StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
|
stockUninventoryDto.setRecordId(recordId);
|
stockUninventoryDto.setRecordType(recordType);
|
stockUninventoryDto.setQualitity(quantity);
|
stockUninventoryDto.setProductModelId(productModelId);
|
stockUninventoryService.addStockUninventory(stockUninventoryDto);
|
}
|
|
/**
|
* 不合格出库
|
* @param productModelId
|
* @param quantity
|
* @param recordType
|
* @param recordId
|
*/
|
public void subtractUnStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) {
|
StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
|
stockUninventoryDto.setRecordId(recordId);
|
stockUninventoryDto.setRecordType(recordType);
|
stockUninventoryDto.setQualitity(quantity);
|
stockUninventoryDto.setProductModelId(productModelId);
|
stockUninventoryService.subtractStockUninventory(stockUninventoryDto);
|
}
|
|
/**
|
* 合格入库
|
* @param productModelId
|
* @param quantity
|
* @param recordType
|
* @param recordId
|
*/
|
public void addStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) {
|
StockInventoryDto stockInventoryDto = new StockInventoryDto();
|
stockInventoryDto.setRecordId(recordId);
|
stockInventoryDto.setRecordType(recordType);
|
stockInventoryDto.setQualitity(quantity);
|
stockInventoryDto.setProductModelId(productModelId);
|
stockInventoryService.addstockInventory(stockInventoryDto);
|
}
|
|
/**
|
* 合格出库
|
* @param productModelId
|
* @param quantity
|
* @param recordType
|
* @param recordId
|
*/
|
public void substractStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) {
|
StockInventoryDto stockInventoryDto = new StockInventoryDto();
|
stockInventoryDto.setRecordId(recordId);
|
stockInventoryDto.setRecordType(recordType);
|
stockInventoryDto.setQualitity(quantity);
|
stockInventoryDto.setProductModelId(productModelId);
|
stockInventoryService.subtractStockInventory(stockInventoryDto);
|
}
|
}
|