package com.ruoyi.inventory.service.impl; 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 extends ServiceImpl implements StockInService { @Autowired private StockInMapper stockInMapper; @Autowired private StockManagementMapper stockManagementMapper; // 新增方法 /** * 新增库存入库信息 * @param stockIn */ @Override @Transactional(rollbackFor = Exception.class) public void saveStockin(StockIn stockIn) { stockInMapper.insert(stockIn); StockManagement stockManagement = new StockManagement(); // 进行判断是否存在相同的产品id和供应商id LambdaQueryWrapper 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()); 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.selectById(id); return stockIn; } @Override//更新库存入库信息 @Transactional(rollbackFor = Exception.class) public int updateStockIn(StockIn stockIn) { StockIn stockIn1 = stockInMapper.selectById(stockIn.getId()); // 进行判断是否存在相同的产品id和供应商id LambdaQueryWrapper 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 delStockin(List ids) { LambdaQueryWrapper delWrapper = new LambdaQueryWrapper<>(); delWrapper.in(StockIn::getId, ids); return stockInMapper.delete(delWrapper); } @Override public IPage selectStockInPage(Page page, StockinDto stockinDto) { System.out.println(stockinDto); IPage stockinDtoIPage = stockInMapper.selectStockInWithProductInfo(page, stockinDto); System.out.println(stockinDtoIPage.getRecords()); return stockInMapper.selectStockInWithProductInfo(page, stockinDto); } @Override public void stockinExport(HttpServletResponse response, StockinDto stockinDto) { List stockInExcelDtoList = stockInMapper.stockinExportList(stockinDto); ExcelUtil util = new ExcelUtil(StockInExcelDto.class); util.exportExcel(response, stockInExcelDtoList, "供应商导出"); } }