lishenao
16 小时以前 5c1a58d067512df6099f9cc95f577c9991128163
src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
@@ -1,45 +1,128 @@
package com.ruoyi.inventory.service.impl;
import com.ruoyi.inventory.domain.StockIn;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.common.utils.poi.ExcelUtil;
import com.ruoyi.inventory.dto.StockinDto;
import com.ruoyi.inventory.excel.StockInExcelDto;
import com.ruoyi.inventory.mapper.StockManagementMapper;
import com.ruoyi.inventory.pojo.StockIn;
import com.ruoyi.inventory.mapper.StockInMapper;
import com.ruoyi.inventory.pojo.StockManagement;
import com.ruoyi.inventory.service.StockInService;
import com.ruoyi.purchase.dto.PurchaseLedgerDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Service
public class StockInServiceImpl implements StockInService {
public class StockInServiceImpl extends ServiceImpl<StockInMapper,StockIn> implements StockInService {
    @Autowired
    private StockInMapper stockInMapper;
    @Autowired
    private StockManagementMapper stockManagementMapper;
    @Override//添加库存入库信息
    public int addStockIn(StockIn stockIn) {
        int i = stockInMapper.insertSelective(stockIn);
        return i;
//    新增方法
    /**
     * 新增库存入库信息
     * @param stockIn
     */
    @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);
        }
    @Override//列出所有库存入库信息
    public List<StockIn> listStockIns() {
        List<StockIn> stockIns = stockInMapper.selectList();
        return stockIns;
        else {
            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());
            stockManagementMapper.insert(stockManagement);
        }
    }
    @Override//根据id获取库存入库信息
    public StockIn getStockInById(Long id) {
        StockIn stockIn = stockInMapper.selectByPrimaryKey(id);
        StockIn stockIn = stockInMapper.selectById(id);
        return stockIn;
    }
    @Override//更新库存入库信息
    @Transactional(rollbackFor = Exception.class)
    public int updateStockIn(StockIn stockIn) {
        int i = stockInMapper.updateByPrimaryKeySelective(stockIn);
        return i;
        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);
        }
        return stockInMapper.updateById(stockIn);
    }
    @Override//删除库存入库信息
    public int deleteStockIn(Long id) {
        int i = stockInMapper.deleteByPrimaryKey(id);
        return i;
    @Override
    public int delStockin(List<Integer> ids) {
        LambdaQueryWrapper<StockIn> delWrapper = new LambdaQueryWrapper<>();
        delWrapper.in(StockIn::getId, ids);
        return stockInMapper.delete(delWrapper);
    }
    @Override
    public IPage<StockIn> selectStockInPage(Page page, StockinDto stockinDto) {
        System.out.println(stockinDto);
        IPage<StockIn> stockinDtoIPage = stockInMapper.selectStockInWithProductInfo(page, stockinDto);
        System.out.println(stockinDtoIPage.getRecords());
        return stockInMapper.selectStockInWithProductInfo(page, stockinDto);
    }
    @Override
    public void stockinExport(HttpServletResponse response, StockinDto stockinDto) {
        List<StockInExcelDto> stockInExcelDtoList = stockInMapper.stockinExportList(stockinDto);
        ExcelUtil<StockInExcelDto> util = new ExcelUtil<StockInExcelDto>(StockInExcelDto.class);
        util.exportExcel(response, stockInExcelDtoList, "供应商导出");
    }
}