From 6bbac4845106ca8648900b1d9af758c84275ffee Mon Sep 17 00:00:00 2001 From: lishenao <3065849776@qq.com> Date: 星期五, 04 七月 2025 18:09:49 +0800 Subject: [PATCH] 批量添加入库的方法 --- src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java | 132 +++++++++++++++++++++++++++---------------- 1 files changed, 83 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java index 8c035f8..2dd9605 100644 --- a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java +++ b/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; // 鏂板鏂规硶 @@ -37,31 +46,64 @@ */ @Override @Transactional(rollbackFor = Exception.class) +// public void saveStockin(StockIn stockIn) { - stockInMapper.insert(stockIn); - StockManagement stockManagement = new StockManagement(); -// 杩涜鍒ゆ柇鏄惁瀛樺湪鐩稿悓鐨勪骇鍝乮d鍜屼緵搴斿晢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()); + stockManagementMapper.insert(stockManagement); + }else { + throw new RuntimeException("閲囪喘璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝佺殑閲囪喘璁板綍"); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void batchSaveStockin(List<StockIn> stockInList) { + if (stockInList == null || stockInList.isEmpty()) { + throw new RuntimeException("鍏ュ簱鍒楄〃涓嶈兘涓虹┖"); + } + Date currentTime = new Date(); + for (StockIn stockIn : stockInList) { + // 鏍规嵁浜у搧id鏌ヨ閲囪喘璁板綍琛� + ProductRecordDto productRecordDto = productRecordMapper.selectProductRecordById(stockIn.getProductrecordId()); + if (productRecordDto == null) { + throw new RuntimeException("閲囪喘璁板綍琛ㄤ腑娌℃湁浜у搧ID涓�" + stockIn.getProductrecordId() + "鐨勯噰璐褰�"); + } + // 璁剧疆鍏ュ簱鏃堕棿鍜屾壒娆$爜 + stockIn.setInboundTime(currentTime); + String batchCode = "RK" + System.currentTimeMillis() + "-" + stockIn.getProductrecordId(); + stockIn.setInboundBatch(batchCode); + stockIn.setSupplierId(productRecordDto.getSupplierId()); + // 娣诲姞鍏ュ簱璁板綍 + stockInMapper.insert(stockIn); + // 鍦ㄥ簱瀛樼鐞嗚〃涓坊鍔犲簱瀛樼鐞嗚褰� + StockManagement stockManagement = new StockManagement(); + stockManagement.setProductrecordId(productRecordDto.getId()); stockManagement.setStockQuantity(stockIn.getInboundQuantity()); - stockManagement.setInboundPerson(stockIn.getInboundPerson()); - stockManagement.setSupplierId(stockIn.getSupplierId()); - stockManagement.setTenantId(stockIn.getTenantId()); - stockManagement.setBoundTime(new Date()); + stockManagement.setInboundTime(stockIn.getInboundTime()); + stockManagement.setInboundBatch(stockIn.getInboundBatch()); + stockManagement.setUserId(stockIn.getUserId()); + stockManagement.setSupplierId(productRecordDto.getSupplierId()); + stockManagement.setBoundTime(stockIn.getInboundTime()); stockManagementMapper.insert(stockManagement); } } @@ -72,37 +114,21 @@ return stockIn; } - @Override//鏇存柊搴撳瓨鍏ュ簱淇℃伅 + @Override @Transactional(rollbackFor = Exception.class) - public int updateStockIn(StockIn stockIn) { - StockIn stockIn1 = stockInMapper.selectById(stockIn.getId()); -// 杩涜鍒ゆ柇鏄惁瀛樺湪鐩稿悓鐨勪骇鍝乮d鍜屼緵搴斿晢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) { @@ -125,4 +151,12 @@ ExcelUtil<StockInExcelDto> util = new ExcelUtil<StockInExcelDto>(StockInExcelDto.class); util.exportExcel(response, stockInExcelDtoList, "渚涘簲鍟嗗鍑�"); } + + @Override + public int addstockin(List<StockIn> stockIns) { + for (StockIn stockIn : stockIns) { + saveStockin(stockIn); + } + return 1; + } } -- Gitblit v1.9.3