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