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         |   43 +++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java |    2 ++
 src/main/java/com/ruoyi/inventory/controller/StockInController.java            |   10 ++++++++++
 src/main/java/com/ruoyi/inventory/service/StockInService.java                  |    2 ++
 4 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/inventory/controller/StockInController.java b/src/main/java/com/ruoyi/inventory/controller/StockInController.java
index 57e1baa..5af7315 100644
--- a/src/main/java/com/ruoyi/inventory/controller/StockInController.java
+++ b/src/main/java/com/ruoyi/inventory/controller/StockInController.java
@@ -46,6 +46,11 @@
         stockInService.saveStockin(stockIn);
         return AjaxResult.success();
     }
+    @PostMapping("/addstockinList")
+    public AjaxResult addstockinList(@RequestBody List<StockIn> stockInList) {
+        stockInService.addstockin(stockInList);
+        return AjaxResult.success();
+    }
 
     @GetMapping("/{id}")// 鏍规嵁ID鑾峰彇鍏ュ簱璁板綍
     public AjaxResult getStockInById(@PathVariable Long id) {
@@ -72,4 +77,9 @@
     public void export(HttpServletResponse response, StockinDto stockinDto) {
         stockInService.stockinExport(response, stockinDto);
     }
+    @PostMapping("/batchSave")
+    public AjaxResult batchSaveStockin(@RequestBody List<StockIn> stockInList) {
+        stockInService.batchSaveStockin(stockInList);
+        return AjaxResult.success();
+    }
 }
diff --git a/src/main/java/com/ruoyi/inventory/service/StockInService.java b/src/main/java/com/ruoyi/inventory/service/StockInService.java
index cb6312e..93a595a 100644
--- a/src/main/java/com/ruoyi/inventory/service/StockInService.java
+++ b/src/main/java/com/ruoyi/inventory/service/StockInService.java
@@ -25,4 +25,6 @@
 //    PageInfo<StockinProcuct> getStockInPage(Integer pageNum, Integer pageSize, StockInQueryDTO query);
     IPage<StockIn> selectStockInPage(Page page, StockinDto stockinDto);
     void stockinExport(HttpServletResponse response, StockinDto stockinDto);
+    int addstockin (List<StockIn> stockIns);
+    void batchSaveStockin(List<StockIn> stockInList);
 }
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 6ad5d02..2dd9605 100644
--- a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
+++ b/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
@@ -46,6 +46,7 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
+//
     public void saveStockin(StockIn stockIn) {
 //闇�瑕佸厛鍒ゆ柇閲囪喘璁板綍琛ㄤ腑鏄惁鏈夎浜у搧鐨勯噰璐褰�
 //        鏍规嵁浜у搧id鏌ヨ閲囪喘璁板綍琛�
@@ -57,6 +58,7 @@
             String batchCode = "RK" + System.currentTimeMillis();
             stockIn.setInboundBatch(batchCode);
             stockIn.setSupplierId(productRecordDto.getSupplierId());
+
             stockInMapper.insert(stockIn);
 //          鍦ㄥ簱瀛樼鐞嗚〃涓坊鍔犲簱瀛樼鐞嗚褰�
             StockManagement stockManagement = new StockManagement();
@@ -70,6 +72,39 @@
             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.setInboundTime(stockIn.getInboundTime());
+            stockManagement.setInboundBatch(stockIn.getInboundBatch());
+            stockManagement.setUserId(stockIn.getUserId());
+            stockManagement.setSupplierId(productRecordDto.getSupplierId());
+            stockManagement.setBoundTime(stockIn.getInboundTime());
+            stockManagementMapper.insert(stockManagement);
         }
     }
 
@@ -116,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;
+    }
 }
diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java
index b5dc014..8f4c462 100644
--- a/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java
+++ b/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java
@@ -19,6 +19,7 @@
 import com.ruoyi.purchase.pojo.ProductRecord;
 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;
@@ -61,6 +62,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int stockout(StockManagement stockManagement) {
 //        鍦ㄥ墠绔叾瀹炲氨绌夸簡3涓暟锛屾暟閲忥紝鍑哄簱浜猴紝鏃堕棿锛屽彧闇�瑕佽繘琛屽垽鏂紝搴撳瓨鏁伴噺鏄惁瓒冲鍗冲彲,鏈変笁绉嶆儏鍐�
         StockOut stockOut = new StockOut();

--
Gitblit v1.9.3