From f2bcea370ece83a7f4ae38b9e5a942639065d2a2 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 11:38:13 +0800
Subject: [PATCH] feat(sales): 库存

---
 src/main/java/com/ruoyi/stock/service/StockInventoryService.java            |    3 +
 src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java           |    5 ++
 src/main/java/com/ruoyi/CodeGenerator.java                                  |    6 +-
 src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java |    1 
 src/main/resources/mapper/stock/StockInventoryMapper.xml                    |    2 +
 src/main/resources/application-dev.yml                                      |   10 ++--
 src/main/resources/mapper/stock/StockUninventoryMapper.xml                  |    2 +
 src/main/java/com/ruoyi/stock/controller/StockInventoryController.java      |    9 ++++
 src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java   |   31 +++++++++++++++
 9 files changed, 61 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/CodeGenerator.java b/src/main/java/com/ruoyi/CodeGenerator.java
index cca67a2..f4efe04 100644
--- a/src/main/java/com/ruoyi/CodeGenerator.java
+++ b/src/main/java/com/ruoyi/CodeGenerator.java
@@ -19,11 +19,11 @@
 // 婕旂ず渚嬪瓙锛屾墽琛� main 鏂规硶鎺у埗鍙拌緭鍏ユā鍧楄〃鍚嶅洖杞﹁嚜鍔ㄧ敓鎴愬搴旈」鐩洰褰曚腑
 public class CodeGenerator {
 
-    public static String database_url = "jdbc:mysql://127.0.0.1:3306/product-inventory-management-new";
+    public static String database_url = "jdbc:mysql://1.15.17.182:9999/product-inventory-management-new";
     public static String database_username = "root";
-    public static String database_password= "123456";
+    public static String database_password= "xd@123456..";
     public static String author = "鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃";
-    public static String model = "account"; // 妯″潡
+    public static String model = "stock"; // 妯″潡
     public static String setParent = "com.ruoyi."+ model; // 鍖呰矾寰�
     public static String tablePrefix = ""; // 璁剧疆杩囨护琛ㄥ墠缂�
     public static void main(String[] args) {
diff --git a/src/main/java/com/ruoyi/stock/controller/StockInventoryController.java b/src/main/java/com/ruoyi/stock/controller/StockInventoryController.java
index 8447edb..8e17fee 100644
--- a/src/main/java/com/ruoyi/stock/controller/StockInventoryController.java
+++ b/src/main/java/com/ruoyi/stock/controller/StockInventoryController.java
@@ -14,6 +14,7 @@
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -54,4 +55,12 @@
         stockInventoryDto.setRecordId(0L);
         return R.ok(stockInventoryService.subtractStockInventory(stockInventoryDto));
     }
+
+
+    @GetMapping("importStockInventory")
+    @ApiOperation("瀵煎叆搴撳瓨")
+    public R importStockInventory(MultipartFile  file) {
+        return R.ok(stockInventoryService.importStockInventory(file));
+
+    }
 }
diff --git a/src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java b/src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java
new file mode 100644
index 0000000..c917d30
--- /dev/null
+++ b/src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java
@@ -0,0 +1,5 @@
+package com.ruoyi.stock.execl;
+
+public class StockInventoryExportData {
+
+}
diff --git a/src/main/java/com/ruoyi/stock/service/StockInventoryService.java b/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
index bc523e4..0dc849c 100644
--- a/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
+++ b/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
@@ -6,6 +6,7 @@
 import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.pojo.StockInventory;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -22,4 +23,6 @@
     Boolean addstockInventory(StockInventoryDto stockInventoryDto);
 
     Boolean subtractStockInventory(StockInventoryDto stockInventoryDto);
+
+    Boolean importStockInventory(MultipartFile file);
 }
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 2c29759..15bc09e 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -4,10 +4,15 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.excel.SupplierManageExcelDto;
+import com.ruoyi.basic.pojo.SupplierManage;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.stock.dto.StockInRecordDto;
 import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.dto.StockOutRecordDto;
+import com.ruoyi.stock.execl.StockInventoryExportData;
 import com.ruoyi.stock.pojo.StockInRecord;
 import com.ruoyi.stock.pojo.StockInventory;
 import com.ruoyi.stock.mapper.StockInventoryMapper;
@@ -16,9 +21,15 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.stock.service.StockOutRecordService;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -51,6 +62,7 @@
         stockInRecordDto.setRecordType(stockInventoryDto.getRecordType());
         stockInRecordDto.setStockInNum(stockInventoryDto.getQualitity());
         stockInRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
+        stockInRecordDto.setType("0");
         stockInRecordService.add(stockInRecordDto);
         //鍐嶈繘琛屾柊澧炲簱瀛樻暟閲忓簱瀛�
         //鍏堟煡璇㈠簱瀛樿〃涓殑浜у搧鏄惁瀛樺湪锛屼笉瀛樺湪鏂板锛屽瓨鍦ㄦ洿鏂�
@@ -77,6 +89,7 @@
         stockOutRecordDto.setRecordType(stockInventoryDto.getRecordType());
         stockOutRecordDto.setStockOutNum(stockInventoryDto.getQualitity());
         stockOutRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
+        stockOutRecordDto.setType("0");
         stockOutRecordService.add(stockOutRecordDto);
         StockInventory oldStockInventory = stockInventoryMapper.selectOne(new QueryWrapper<StockInventory>().lambda().eq(StockInventory::getProductModelId, stockInventoryDto.getProductModelId()));
         if (ObjectUtils.isEmpty(oldStockInventory)) {
@@ -86,4 +99,22 @@
         }
         return true;
     }
+
+    @Override
+    public Boolean importStockInventory(MultipartFile file) {
+        try {
+            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 娣诲姞鍏ュ簱璁板綍
+            });
+
+            this.saveOrUpdateBatch(stockInventories);
+            return true;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return false;
+    }
 }
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
index f0755f0..bd51ef2 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -75,6 +75,7 @@
         stockOutRecordDto.setRecordType(stockUninventoryDto.getRecordType());
         stockOutRecordDto.setStockOutNum(stockUninventoryDto.getQualitity());
         stockOutRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
+        stockOutRecordDto.setType("1");
         stockOutRecordService.add(stockOutRecordDto);
         StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
         if (ObjectUtils.isEmpty(oldStockInventory)) {
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 86f7ec9..6c28583 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -63,9 +63,9 @@
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        url: jdbc:mysql://localhost:3306/product-inventory-management-new?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://1.15.17.182:9999/product-inventory-management-new?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: 123456
+        password: xd@123456..
       # 浠庡簱鏁版嵁婧�
       slave:
         # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
@@ -143,7 +143,7 @@
     database: 0
     # 瀵嗙爜
     #    password: root2022!
-    password:
+    password: 123456
 
     # 杩炴帴瓒呮椂鏃堕棿
     timeout: 10s
@@ -198,8 +198,8 @@
   typeAliasesPackage: com.ruoyi.**.pojo
   # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
   mapperLocations: classpath*:mapper/**/*Mapper.xml
-  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-  configLocation: classpath:mybatis/mybatis-config.xml
+  configuration:
+     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
   global-config:
     enable-sql-runner: true
     db-config:
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 3681d69..705eea3 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -22,6 +22,7 @@
            <if test="ew.version != null">
                version = version + 1,
             </if>
+            update_time = now()
         </set>
         where product_model_id = #{ew.productModelId}
     </update>
@@ -34,6 +35,7 @@
             <if test="ew.version != null">
                 version = version + 1,
             </if>
+            update_time = now()
         </set>
         where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
     </update>
diff --git a/src/main/resources/mapper/stock/StockUninventoryMapper.xml b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
index 22dcc3d..c76ff2d 100644
--- a/src/main/resources/mapper/stock/StockUninventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -20,6 +20,7 @@
             <if test="ew.version != null">
                 version = version + 1,
             </if>
+            update_time = now()
         </set>
         where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
     </update>
@@ -32,6 +33,7 @@
             <if test="ew.version != null">
                 version = version + 1,
             </if>
+            update_time = now()
         </set>
         where product_model_id = #{ew.productModelId}
     </update>

--
Gitblit v1.9.3