src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -1,7 +1,9 @@
package com.ruoyi.stock.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
@@ -9,8 +11,11 @@
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.EnumUtil;
import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.production.mapper.ProductOrderMapper;
import com.ruoyi.production.pojo.ProductOrder;
import com.ruoyi.stock.dto.StockInRecordDto;
import com.ruoyi.stock.dto.StockInventoryDto;
import com.ruoyi.stock.dto.StockUninventoryDto;
@@ -36,6 +41,8 @@
    private StockInRecordMapper stockInRecordMapper;
    private StockInventoryMapper stockInventoryMapper;
    private StockUninventoryMapper stockUninventoryMapper;
    private ProductOrderMapper productOrderMapper;
    @Override
    public IPage<StockInRecordDto> listPage(Page page, StockInRecordDto stockInRecordDto) {
@@ -90,6 +97,7 @@
                    StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
                    stockUninventoryDto.setProductModelId(stockUninventory.getProductModelId());
                    stockUninventoryDto.setQualitity(stockInRecord.getStockInNum());
                    stockUninventoryDto.setStockLocation(stockInRecord.getStockLocation());
                    stockUninventoryMapper.updateSubtractStockUnInventory(stockUninventoryDto);
                }
            }
@@ -110,4 +118,41 @@
        ExcelUtil<StockInRecordExportData> util = new ExcelUtil<>(StockInRecordExportData.class);
        util.exportExcel(response,list, "入库记录信息");
    }
    @Override
    public Object productionApprove(StockInRecordDto stockInRecordDto) {
        //再进行新增库存数量库存
        //先查询库存表中的产品是否存在,不存在新增,存在更新
        StockInventory oldStockInventory = stockInventoryMapper.selectOne(new QueryWrapper<StockInventory>()
                .lambda()
                .eq(StockInventory::getProductModelId, stockInRecordDto.getProductModelId())
                .eq(StockInventory::getStockLocation, stockInRecordDto.getStockLocation()));
        StockInventory newStockInventory = new StockInventory();
        newStockInventory.setProductModelId(stockInRecordDto.getProductModelId());
        newStockInventory.setQualitity(stockInRecordDto.getActualStockInNum());
        newStockInventory.setVersion(1);
        newStockInventory.setRemark(stockInRecordDto.getRemark());
        newStockInventory.setStockLocation(stockInRecordDto.getStockLocation());
        if (ObjectUtils.isEmpty(oldStockInventory)) {
            stockInventoryMapper.insert(newStockInventory);
        }else {
            StockInventoryDto oldStockInventoryDto = new StockInventoryDto();
            BeanUtils.copyProperties(oldStockInventory, oldStockInventoryDto);
            stockInventoryMapper.updateAddStockInventory(oldStockInventoryDto);
        }
        stockInRecordDto.setStatus(2);
        stockInRecordDto.setStockInNum(stockInRecordDto.getActualStockInNum() == null ? stockInRecordDto.getWaitAuditNum() : stockInRecordDto.getActualStockInNum());
        stockInRecordMapper.updateById(stockInRecordDto);
        ProductOrder productOrder = productOrderMapper.selectById(stockInRecordDto.getRecordId());
        if(productOrder != null){
            if(StringUtils.isNotEmpty(stockInRecordDto.getReason())){
                productOrder.setReason(stockInRecordDto.getReason());
            }
            if(stockInRecordDto.getActualStockInNum() != null){
                productOrder.setActualStockInNum(stockInRecordDto.getActualStockInNum());
            }
            productOrderMapper.updateById(productOrder);
        }
        return true;
    }
}