From 5c1a58d067512df6099f9cc95f577c9991128163 Mon Sep 17 00:00:00 2001 From: lishenao <3065849776@qq.com> Date: 星期一, 30 六月 2025 15:16:09 +0800 Subject: [PATCH] 入库管理,出库管理,库存管理后端接口 --- src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java | 79 +++++++++++++++++++++++++++++++++------ 1 files changed, 67 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java index ff084b9..e7dfd58 100644 --- a/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java +++ b/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java @@ -1,46 +1,101 @@ 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.ruoyi.basic.excel.SupplierManageExcelDto; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.inventory.dto.StockoutDto; +import com.ruoyi.inventory.excel.StockOutExcelDto; +import com.ruoyi.inventory.mapper.StockManagementMapper; import com.ruoyi.inventory.mapper.StockOutMapper; +import com.ruoyi.inventory.pojo.StockManagement; import com.ruoyi.inventory.pojo.StockOut; import com.ruoyi.inventory.service.StockOutService; import lombok.AllArgsConstructor; 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.Date; import java.util.List; @Service public class StockOutServiceImpl implements StockOutService { @Autowired private StockOutMapper stockOutMapper; + @Autowired + private StockManagementMapper stockManagementMapper; + + @Override - public List<StockOut> getStockOuts() { - List<StockOut> stockOuts = stockOutMapper.selectAll(); - return stockOuts; + public int delStockOut(List<Integer> ids) { + return stockOutMapper.deleteBatchIds(ids); } @Override public StockOut getStockOutById(Long id) { - StockOut stockOut = stockOutMapper.selectByPrimaryKey(id); + StockOut stockOut = stockOutMapper.selectById(id); return stockOut; } @Override - public int addStockOut(StockOut stockOut) { - int i = stockOutMapper.insertSelective(stockOut); - return i; + @Transactional(rollbackFor = Exception.class) + public void saveStockout(StockOut stockOut) { +// 杩涜鍒ゆ柇鏄惁瀛樺湪鐩稿悓鐨勪骇鍝乮d鍜屼緵搴斿晢id + LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StockManagement::getProductId, stockOut.getProductId()); + queryWrapper.eq(StockManagement::getSupplierId, stockOut.getSupplierId()); + StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper); + if (stockManagement1!= null) { +// 鍒ゆ柇搴撳瓨鏁伴噺鏄惁澶т簬鍑哄簱鏁伴噺 + if (stockManagement1.getStockQuantity() < stockOut.getInboundQuantity()) { + throw new RuntimeException("搴撳瓨鏁伴噺涓嶈冻"); + } + stockOutMapper.insert(stockOut); + stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() - stockOut.getInboundQuantity()); + stockManagement1.setInboundTime(new Date()); + stockManagementMapper.updateById(stockManagement1); + } + else { + throw new RuntimeException("搴撳瓨涓嶅瓨鍦�"); + } } @Override public int updateStockOut(StockOut stockOut) { - int i = stockOutMapper.updateByPrimaryKeySelective(stockOut); - return i; +// 闇�瑕佽繘琛屽垽鏂湪搴撳瓨涓槸鍚﹀瓨鍦ㄨ浜у搧锛屽鏋滃瓨鍦紝灏辫繘琛屼慨鏀癸紝鍚﹀垯灏辨姏鍑哄紓甯� + StockOut stockOut1 = stockOutMapper.selectById(stockOut.getId()); + LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StockManagement::getProductId, stockOut.getProductId()); + StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper); + if (stockManagement1!= null) { +// 鍒ゆ柇搴撳瓨鏁伴噺鏄惁澶т簬鍑哄簱鏁伴噺 + if (stockManagement1.getStockQuantity()+stockOut1.getInboundQuantity() < stockOut.getInboundQuantity()) { + throw new RuntimeException("搴撳瓨鏁伴噺涓嶈冻"); + } + stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() + stockOut1.getInboundQuantity() - stockOut.getInboundQuantity()); + stockManagement1.setInboundTime(stockOut.getInboundTime()); + stockManagement1.setBoundTime(new Date()); + System.out.println(stockManagement1 + "22"); + stockManagementMapper.updateById(stockManagement1); + } else { + throw new RuntimeException("搴撳瓨涓嶅瓨鍦�"); + } + return stockOutMapper.updateById(stockOut); } @Override - public int deleteStockOut(Long id) { - int i = stockOutMapper.deleteByPrimaryKey(id); - return i; + public IPage<StockoutDto> selectStockOutPage(Page page, StockoutDto stockoutDto) { + return stockOutMapper.selectStockOutBypage(page, stockoutDto); + } + + @Override + public void stockoutExport(HttpServletResponse response, StockoutDto stockoutDto) { + List<StockOutExcelDto> stockoutList = stockOutMapper.stockoutExportList(stockoutDto); + ExcelUtil<StockOutExcelDto> util = new ExcelUtil<StockOutExcelDto>(StockOutExcelDto.class); + util.exportExcel(response, stockoutList, "渚涘簲鍟嗗鍑�"); } } -- Gitblit v1.9.3