liyong
2026-05-15 76c84d95506998f546e6f3ebbf70414c0dd9da9d
refactor(stock): 优化库存记录服务中的仓库信息处理逻辑

- 修正 StockInRecordServiceImpl 中的参数名错误,将 warehouseInfoId 改为 warehouseInfoId1
- 移除在审批流程中对仓库信息ID的重复设置操作
- 统一使用库存记录对象自身的仓库信息ID而不是外部传入的参数
- 删除 StockOutRecordServiceImpl 中未使用的 StockInRecord 导入和无用代码
- 注释掉 StockUninventoryServiceImpl 中的库存处理逻辑以避免重复操作
- 在出库记录创建时正确传递仓库信息ID参数
已修改3个文件
42 ■■■■ 文件已修改
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -163,7 +163,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int batchApprove(List<Long> ids, Integer approvalStatus,Long warehouseInfoId) {
    public int batchApprove(List<Long> ids, Integer approvalStatus,Long warehouseInfoId1) {
        if (CollectionUtils.isEmpty(ids)) {
            throw new BaseException("请选择至少一条数据");
        }
@@ -179,7 +179,6 @@
                throw new BaseException("只有待审批状态的记录才能审批,入库批次:" + stockInRecord.getInboundBatches());
            }
            stockInRecord.setApprovalStatus(approvalStatus);
            stockInRecord.setWarehouseInfoId(warehouseInfoId);
            stockInRecordMapper.updateById(stockInRecord);
            // 审批通过时,库存增加
            if (ReviewStatusEnum.APPROVED.getCode().equals(approvalStatus)) {
@@ -188,7 +187,7 @@
                    StockInventory stockInventory = getStockInventory(
                            stockInRecord.getProductModelId(),
                            stockInRecord.getBatchNo(),
                            warehouseInfoId
                            stockInRecord.getWarehouseInfoId()
                    );
                    if (!ObjectUtils.isEmpty(stockInventory)) {
                        if (stockInventory.getLocked().equals( true)&&!stockInRecord.getRecordType().equals(StockInQualifiedRecordTypeEnum.INVENTORY_CHECK_STOCK_IN.getCode())) {
@@ -198,7 +197,7 @@
                    StockInventoryDto stockInventoryDto = new StockInventoryDto();
                    stockInventoryDto.setProductModelId(stockInRecord.getProductModelId());
                    stockInventoryDto.setBatchNo(stockInRecord.getBatchNo());
                    stockInventoryDto.setWarehouseInfoId(warehouseInfoId);
                    stockInventoryDto.setWarehouseInfoId(stockInRecord.getWarehouseInfoId());
                    stockInventoryDto.setQualitity(stockInRecord.getStockInNum());
                    stockInventoryDto.setRemark(stockInRecord.getRemark());
                    if (stockInventory == null) {
@@ -207,7 +206,7 @@
                            setQualitity(stockInRecord.getStockInNum());
                            setBatchNo(stockInRecord.getBatchNo());
                            setRemark(stockInRecord.getRemark());
                            setWarehouseInfoId(warehouseInfoId);
                            setWarehouseInfoId(stockInRecord.getWarehouseInfoId());
                            setVersion(1);
                        }});
                    } else {
@@ -227,6 +226,7 @@
                            setQualitity(stockInRecord.getStockInNum());
                            setBatchNo(stockInRecord.getBatchNo());
                            setRemark(stockInRecord.getRemark());
                            setWarehouseInfoId(stockInRecord.getWarehouseInfoId());
                            setVersion(1);
                        }});
                    } else {
src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
@@ -20,7 +20,6 @@
import com.ruoyi.stock.mapper.StockInventoryMapper;
import com.ruoyi.stock.mapper.StockOutRecordMapper;
import com.ruoyi.stock.mapper.StockUninventoryMapper;
import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.pojo.StockInventory;
import com.ruoyi.stock.pojo.StockOutRecord;
import com.ruoyi.stock.pojo.StockUninventory;
@@ -60,8 +59,6 @@
        if (StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode().equals(stockOutRecordDto.getRecordType())){
            stockOutRecordDto.setApprovalStatus(3);
        }
        StockInRecord stockInRecord = new StockInRecord();
        BeanUtils.copyProperties(stockOutRecordDto, stockInRecord);
        stockOutRecordMapper.insert(stockOutRecordDto);
        return stockOutRecordDto.getId();
    }
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -80,20 +80,20 @@
        stockInRecordService.add(stockInRecordDto);
        //再进行新增库存数量库存
        //先查询库存表中的产品是否存在,不存在新增,存在更新
        StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(wrapper);
        if (ObjectUtils.isEmpty(oldStockUnInventory)) {
            StockUninventory newStockUnInventory = new StockUninventory();
            newStockUnInventory.setProductModelId(stockUninventoryDto.getProductModelId());
            newStockUnInventory.setQualitity(stockUninventoryDto.getQualitity());
            newStockUnInventory.setLockedQuantity(stockUninventoryDto.getLockedQuantity());
            newStockUnInventory.setBatchNo(stockUninventoryDto.getBatchNo());
            newStockUnInventory.setWarehouseInfoId(stockUninventoryDto.getWarehouseInfoId());
            newStockUnInventory.setVersion(1);
            newStockUnInventory.setRemark(stockUninventoryDto.getRemark());
            stockUninventoryMapper.insert(newStockUnInventory);
        }else {
            stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
        }
//        StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(wrapper);
//        if (ObjectUtils.isEmpty(oldStockUnInventory)) {
//            StockUninventory newStockUnInventory = new StockUninventory();
//            newStockUnInventory.setProductModelId(stockUninventoryDto.getProductModelId());
//            newStockUnInventory.setQualitity(stockUninventoryDto.getQualitity());
//            newStockUnInventory.setLockedQuantity(stockUninventoryDto.getLockedQuantity());
//            newStockUnInventory.setBatchNo(stockUninventoryDto.getBatchNo());
//            newStockUnInventory.setWarehouseInfoId(stockUninventoryDto.getWarehouseInfoId());
//            newStockUnInventory.setVersion(1);
//            newStockUnInventory.setRemark(stockUninventoryDto.getRemark());
//            stockUninventoryMapper.insert(newStockUnInventory);
//        }else {
//            stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
//        }
        return 1;
    }
@@ -168,6 +168,7 @@
        stockOutRecordDto.setRecordId(stockUninventoryDto.getRecordId());
        stockOutRecordDto.setRecordType(stockUninventoryDto.getRecordType());
        stockOutRecordDto.setStockOutNum(stockUninventoryDto.getQualitity());
        stockOutRecordDto.setWarehouseInfoId(stockUninventoryDto.getWarehouseInfoId());
        stockOutRecordDto.setBatchNo(stockUninventoryDto.getBatchNo());
        stockOutRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
        stockOutRecordDto.setType("1");