lishenao
23 小时以前 fbc53e77f994f15c3ebcd4fa07dfd23671c0ce26
src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.SupplierManageMapper;
import com.ruoyi.basic.pojo.SupplierManage;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.inventory.dto.StockinDto;
import com.ruoyi.inventory.excel.StockInExcelDto;
@@ -12,7 +14,10 @@
import com.ruoyi.inventory.mapper.StockInMapper;
import com.ruoyi.inventory.pojo.StockManagement;
import com.ruoyi.inventory.service.StockInService;
import com.ruoyi.purchase.dto.ProductRecordDto;
import com.ruoyi.purchase.dto.PurchaseLedgerDto;
import com.ruoyi.purchase.mapper.ProductRecordMapper;
import com.ruoyi.purchase.pojo.ProductRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -28,6 +33,10 @@
    private StockInMapper stockInMapper;
    @Autowired
    private StockManagementMapper stockManagementMapper;
    @Autowired
    private ProductRecordMapper productRecordMapper;
    @Autowired
    private SupplierManageMapper supplierManageMapper;
//    新增方法
@@ -38,31 +47,29 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveStockin(StockIn stockIn) {
        stockInMapper.insert(stockIn);
        StockManagement stockManagement = new StockManagement();
//        进行判断是否存在相同的产品id和供应商id
        LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(StockManagement::getProductId, stockIn.getProductId());
        queryWrapper.eq(StockManagement::getSupplierId, stockIn.getSupplierId());
        StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper);
        if (stockManagement1!= null) {
            stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() + stockIn.getInboundQuantity());
            stockManagement1.setInboundTime(stockIn.getInboundTime());
            stockManagement1.setBoundTime(new Date());
            stockManagement1.setInboundPerson(stockIn.getInboundPerson());
            System.out.println(stockManagement1+"22");
            stockManagementMapper.updateById(stockManagement1);
        }
        else {
            stockManagement.setProductId(stockIn.getProductId());
//需要先判断采购记录表中是否有该产品的采购记录
//        根据产品id查询采购记录表
        ProductRecordDto productRecordDto = productRecordMapper.selectProductRecordById(stockIn.getProductrecordId());
        if (productRecordDto != null) {
//            添加入库记录和库存管理记录
            stockIn.setInboundTime(new Date());
//            自动生成批次码
            String batchCode = "RK" + System.currentTimeMillis();
            stockIn.setInboundBatch(batchCode);
            stockIn.setSupplierId(productRecordDto.getSupplierId());
            stockInMapper.insert(stockIn);
//          在库存管理表中添加库存管理记录
            StockManagement stockManagement = new StockManagement();
            stockManagement.setProductrecordId(productRecordDto.getId());
            stockManagement.setStockQuantity(stockIn.getInboundQuantity());
            stockManagement.setInboundTime(stockIn.getInboundTime());
            stockManagement.setInboundBatch(stockIn.getInboundBatch());
            stockManagement.setUserId(stockIn.getUserId());
            stockManagement.setSupplierId(productRecordDto.getSupplierId());
            stockManagement.setBoundTime(stockIn.getInboundTime());
            stockManagement.setStockQuantity(stockIn.getInboundQuantity());
            stockManagement.setInboundPerson(stockIn.getInboundPerson());
            stockManagement.setSupplierId(stockIn.getSupplierId());
            stockManagement.setTenantId(stockIn.getTenantId());
            stockManagement.setBoundTime(new Date());
            stockManagementMapper.insert(stockManagement);
        }else {
            throw new RuntimeException("采购记录表中没有该产品的采购记录");
        }
    }
@@ -72,38 +79,22 @@
        return stockIn;
    }
    @Override//更新库存入库信息
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int updateStockIn(StockIn stockIn) {
        StockIn stockIn1 = stockInMapper.selectById(stockIn.getId());
//        进行判断是否存在相同的产品id和供应商id
        LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(StockManagement::getProductId, stockIn.getProductId());
        queryWrapper.eq(StockManagement::getSupplierId, stockIn.getSupplierId());
        StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper);
        if (stockManagement1!= null) {
            stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() - stockIn1.getInboundQuantity() + stockIn.getInboundQuantity());
            stockManagement1.setInboundTime(stockIn.getInboundTime());
            stockManagement1.setBoundTime(new Date());
            stockManagement1.setInboundPerson(stockIn.getInboundPerson());
            System.out.println(stockManagement1 + "22");
            stockManagementMapper.updateById(stockManagement1);
        }        else {
            StockManagement stockManagement = new StockManagement();
            stockManagement.setProductId(stockIn.getProductId());
            stockManagement.setStockQuantity(stockIn.getInboundQuantity());
            stockManagement.setBoundTime(stockIn.getInboundTime());
            stockManagement.setStockQuantity(stockIn.getInboundQuantity());
            stockManagement.setInboundPerson(stockIn.getInboundPerson());
            stockManagement.setSupplierId(stockIn.getSupplierId());
            stockManagement.setTenantId(stockIn.getTenantId());
            stockManagement.setBoundTime(new Date());
            System.out.println(stockManagement + "33");
            stockManagementMapper.insert(stockManagement);
    public void updateStockIn(StockIn stockIn) {
//        需要先判断采购记录表中是否有该产品的采购记录
        LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>();
        queryWrapper1.eq(ProductRecord::getId, stockIn.getProductrecordId());
        ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1);
        if (productRecord!= null) {
            stockIn.setInboundTime(stockIn.getInboundTime());
            stockInMapper.updateById(stockIn);
        }    else {
            throw new RuntimeException("采购记录表中没有该产品的采购记录");
        }
        return stockInMapper.updateById(stockIn);
    }
    @Override
    public int delStockin(List<Integer> ids) {
        LambdaQueryWrapper<StockIn> delWrapper = new LambdaQueryWrapper<>();