From 32b536caa833c1861c6f273d78d7202206445b74 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 15:22:01 +0800
Subject: [PATCH] feat(stock): 库存导入接口开发

---
 src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java |   31 +++++++++++++++++++++++--------
 1 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index d30e7bc..3beaf09 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -6,9 +6,13 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.basic.excel.SupplierManageExcelDto;
 import com.ruoyi.basic.pojo.SupplierManage;
+import com.ruoyi.common.enums.StockQualifiedRecordTypeEnum;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.procurementrecord.utils.StockUtils;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import com.ruoyi.stock.dto.StockInRecordDto;
 import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.dto.StockOutRecordDto;
@@ -30,6 +34,8 @@
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -46,7 +52,8 @@
     private  StockInventoryMapper stockInventoryMapper;
     private StockInRecordService stockInRecordService;
     private StockOutRecordService stockOutRecordService;
-
+    private SalesLedgerProductMapper salesLedgerProductMapper;
+    private StockUtils stockUtils;
     @Override
     public IPage<StockInventoryDto> pagestockInventory(Page page, StockInventoryDto stockInventoryDto) {
         return stockInventoryMapper.pagestockInventory(page, stockInventoryDto);
@@ -102,20 +109,28 @@
     }
 
     @Override
-    public Boolean importStockInventory(MultipartFile file) {
+    public R importStockInventory(MultipartFile file) {
         try {
+            final StringBuffer[] errorMsg = {new StringBuffer()};
+            //鏌ヨ鎵�鏈夌殑浜у搧
+            List<SalesLedgerProduct> salesLedgerProducts =salesLedgerProductMapper.selectProduct();
+
             ExcelUtil<StockInventoryExportData> util = new ExcelUtil<StockInventoryExportData>(StockInventoryExportData.class);
             List<StockInventoryExportData> list = util.importExcel(file.getInputStream());
-            ArrayList<StockInventory> stockInventories = new ArrayList<>();
             list.stream().forEach(dto -> {
-               // TODO: 2026/1/21 娣诲姞鍏ュ簱璁板綍
+                salesLedgerProducts.stream().forEach(item->{
+                    if (item.getProductCategory().equals(dto.getProductName())&&item.getSpecificationModel().equals(dto.getModel())) {
+                            //鏇存柊搴撳瓨
+                            stockUtils.addStock(item.getId(),dto.getQualitity(), StockQualifiedRecordTypeEnum.CUSTOMIZATION_STOCK_IN.getCode(),0L);
+                    }else {
+                        errorMsg[0] = errorMsg[0].append("浜у搧鍚嶇О锛�"+dto.getProductName()+"瑙勬牸锛�"+dto.getModel()+"涓嶅瓨鍦�").append("\n");
+                    }
+                });
             });
-
-            this.saveOrUpdateBatch(stockInventories);
-            return true;
+            return R.ok(errorMsg[0]);
         }catch (Exception e){
             e.printStackTrace();
         }
-        return false;
+        return R.fail();
     }
 }

--
Gitblit v1.9.3