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 |  153 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 135 insertions(+), 18 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 c215d2a..2dd9605 100644
--- a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
+++ b/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
@@ -1,45 +1,162 @@
 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.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;
+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.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;
 
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
+
 @Service
-public class StockInServiceImpl implements StockInService {
+public class StockInServiceImpl extends ServiceImpl<StockInMapper,StockIn> implements StockInService {
     @Autowired
     private StockInMapper stockInMapper;
+    @Autowired
+    private StockManagementMapper stockManagementMapper;
+    @Autowired
+    private ProductRecordMapper productRecordMapper;
+    @Autowired
+    private SupplierManageMapper supplierManageMapper;
 
-    @Override//娣诲姞搴撳瓨鍏ュ簱淇℃伅
-    public int addStockIn(StockIn stockIn) {
-        int i = stockInMapper.insertSelective(stockIn);
-        return i;
+
+//    鏂板鏂规硶
+    /**
+     * 鏂板搴撳瓨鍏ュ簱淇℃伅
+     * @param stockIn
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+//
+    public void saveStockin(StockIn stockIn) {
+//闇�瑕佸厛鍒ゆ柇閲囪喘璁板綍琛ㄤ腑鏄惁鏈夎浜у搧鐨勯噰璐褰�
+//        鏍规嵁浜у搧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//鍒楀嚭鎵�鏈夊簱瀛樺叆搴撲俊鎭�
-    public List<StockIn> listStockIns() {
-        List<StockIn> stockIns = stockInMapper.selectList();
-        return stockIns;
+    @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);
+        }
     }
 
     @Override//鏍规嵁id鑾峰彇搴撳瓨鍏ュ簱淇℃伅
     public StockIn getStockInById(Long id) {
-        StockIn stockIn = stockInMapper.selectByPrimaryKey(id);
+        StockIn stockIn = stockInMapper.selectById(id);
         return stockIn;
     }
 
-    @Override//鏇存柊搴撳瓨鍏ュ簱淇℃伅
-    public int updateStockIn(StockIn stockIn) {
-        int i = stockInMapper.updateByPrimaryKeySelective(stockIn);
-        return i;
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    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("閲囪喘璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝佺殑閲囪喘璁板綍");
+        }
     }
 
-    @Override//鍒犻櫎搴撳瓨鍏ュ簱淇℃伅
-    public int deleteStockIn(Long id) {
-        int i = stockInMapper.deleteByPrimaryKey(id);
-        return i;
+
+    @Override
+    public int delStockin(List<Integer> ids) {
+        LambdaQueryWrapper<StockIn> delWrapper = new LambdaQueryWrapper<>();
+        delWrapper.in(StockIn::getId, ids);
+        return stockInMapper.delete(delWrapper);
     }
 
+    @Override
+    public IPage<StockIn> selectStockInPage(Page page, StockinDto stockinDto) {
+        System.out.println(stockinDto);
+        IPage<StockIn> stockinDtoIPage = stockInMapper.selectStockInWithProductInfo(page, stockinDto);
+        System.out.println(stockinDtoIPage.getRecords());
+        return stockInMapper.selectStockInWithProductInfo(page, stockinDto);
+    }
+
+    @Override
+    public void stockinExport(HttpServletResponse response, StockinDto stockinDto) {
+        List<StockInExcelDto> stockInExcelDtoList = stockInMapper.stockinExportList(stockinDto);
+        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