2026-06-09 a61d5a200f064ac52778713ce461161402b5b10f
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -18,6 +18,7 @@
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Collections;
@Component
@@ -88,11 +89,21 @@
     * @param recordId
     */
    public void addStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId) {
        addStock(productModelId, quantity, recordType, recordId, null);
    }
    /**
     * 合格入库
     * @param recordType
     * @param recordId
     */
    public void addStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId, LocalDateTime createTime) {
        StockInventoryDto stockInventoryDto = new StockInventoryDto();
        stockInventoryDto.setRecordId(recordId);
        stockInventoryDto.setRecordType(String.valueOf(recordType));
        stockInventoryDto.setQualitity(quantity);
        stockInventoryDto.setProductModelId(productModelId);
        stockInventoryDto.setCreateTime(createTime);
        stockInventoryService.addStockInRecordOnly(stockInventoryDto);
    }
@@ -104,12 +115,33 @@
     * @param recordId
     */
    public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
        addStockWithBatchNo(productModelId, quantity, recordType, recordId, batchNo, null, null);
    }
    /**
     * 合格入库带批次号
     * @param recordType
     * @param recordId
     */
    public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, LocalDateTime createTime) {
        addStockWithBatchNo(productModelId, quantity, recordType, recordId, batchNo, createTime, null);
    }
    /**
     * 合格入库带批次号(含仓库)
     * @param recordType
     * @param recordId
     * @param warehouse
     */
    public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, LocalDateTime createTime, String warehouse) {
        StockInventoryDto stockInventoryDto = new StockInventoryDto();
        stockInventoryDto.setRecordId(recordId);
        stockInventoryDto.setRecordType(String.valueOf(recordType));
        stockInventoryDto.setQualitity(quantity);
        stockInventoryDto.setProductModelId(productModelId);
        stockInventoryDto.setBatchNo(batchNo);
        stockInventoryDto.setCreateTime(createTime);
        stockInventoryDto.setWarehouse(warehouse);
        stockInventoryService.addStockInRecordOnly(stockInventoryDto);
    }
@@ -122,12 +154,27 @@
     * @param recordId
     */
    public void substractStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
        substractStock(productModelId, quantity, recordType, recordId, batchNo, null);
    }
    /**
     * 合格出库(带出库批号)
     *
     * @param productModelId
     * @param quantity
     * @param recordType
     * @param recordId
     * @param batchNo
     * @param outboundBatches 出库批号,如果为空则自动生成
     */
    public void substractStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String outboundBatches) {
        StockInventoryDto stockInventoryDto = new StockInventoryDto();
        stockInventoryDto.setRecordId(recordId);
        stockInventoryDto.setRecordType(String.valueOf(recordType));
        stockInventoryDto.setQualitity(quantity);
        stockInventoryDto.setProductModelId(productModelId);
        stockInventoryDto.setBatchNo(batchNo);
        stockInventoryDto.setOutboundBatches(outboundBatches);
        stockInventoryService.addStockOutRecordOnly(stockInventoryDto);
    }