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

---
 src/main/java/com/ruoyi/stock/controller/StockInRecordController.java     |   10 -----
 src/main/resources/mapper/stock/StockOutRecordMapper.xml                  |    3 +
 src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java                |   18 +++++++++
 src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java |   33 ++++++++++++----
 src/main/resources/mapper/stock/StockInRecordMapper.xml                   |    3 +
 src/main/java/com/ruoyi/stock/controller/StockInventoryController.java    |    4 ++
 src/main/java/com/ruoyi/stock/service/StockInRecordService.java           |    1 
 src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java  |   33 ++++++++++++----
 8 files changed, 79 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/controller/StockInRecordController.java b/src/main/java/com/ruoyi/stock/controller/StockInRecordController.java
index 4428405..c56c923 100644
--- a/src/main/java/com/ruoyi/stock/controller/StockInRecordController.java
+++ b/src/main/java/com/ruoyi/stock/controller/StockInRecordController.java
@@ -30,17 +30,7 @@
         return AjaxResult.success(result);
     }
 
-    @PostMapping("")
-    @Log(title = "鍏ュ簱绠$悊-鏂板鍏ュ簱", businessType = BusinessType.INSERT)
-    public AjaxResult add(@RequestBody StockInRecordDto stockInRecordDto) {
-        return AjaxResult.success(stockInRecordService.add(stockInRecordDto));
-    }
 
-    @PutMapping("/{id}")
-    @Log(title = "鍏ュ簱绠$悊-鏇存柊鍏ュ簱", businessType = BusinessType.UPDATE)
-    public AjaxResult update(@PathVariable("id") Long id, @RequestBody StockInRecordDto stockInRecordDto) {
-        return AjaxResult.success(stockInRecordService.update(id, stockInRecordDto));
-    }
 
     @DeleteMapping("")
     @Log(title = "鍏ュ簱绠$悊-鍒犻櫎鍏ュ簱", businessType = BusinessType.DELETE)
diff --git a/src/main/java/com/ruoyi/stock/controller/StockInventoryController.java b/src/main/java/com/ruoyi/stock/controller/StockInventoryController.java
index 0993470..4806638 100644
--- a/src/main/java/com/ruoyi/stock/controller/StockInventoryController.java
+++ b/src/main/java/com/ruoyi/stock/controller/StockInventoryController.java
@@ -40,6 +40,8 @@
     @PostMapping("/addstockInventory")
     @ApiOperation("鏂板搴撳瓨")
     public R addstockInventory(StockInventoryDto stockInventoryDto) {
+        stockInventoryDto.setRecordType("鍚堟牸鑷畾涔夊叆搴�");
+        stockInventoryDto.setRecordId(0L);
         return R.ok(stockInventoryService.addstockInventory(stockInventoryDto));
     }
 
@@ -47,6 +49,8 @@
     @PostMapping("/subtractStockInventory")
     @ApiOperation("鎵e噺搴撳瓨")
     public R subtractStockInventory(StockInventoryDto stockInventoryDto) {
+        stockInventoryDto.setRecordType("鍚堟牸鑷畾涔夊嚭搴撳簱");
+        stockInventoryDto.setRecordId(0L);
         return R.ok(stockInventoryService.subtractStockInventory(stockInventoryDto));
     }
 }
diff --git a/src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java b/src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java
new file mode 100644
index 0000000..e496352
--- /dev/null
+++ b/src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.stock.dto;
+
+import com.ruoyi.stock.pojo.StockUninventory;
+import lombok.Data;
+
+@Data
+public class StockUninventoryDto  extends StockUninventory {
+    private String productName;
+    private String model;
+    private String unit;
+
+
+    //鍏ュ簱绫诲瀷
+    private String recordType;
+
+    //鍏ュ簱绫诲瀷瀵瑰簲鐨刬d
+    private Long recordId;
+}
diff --git a/src/main/java/com/ruoyi/stock/service/StockInRecordService.java b/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
index 19ad7ea..affb300 100644
--- a/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
+++ b/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
@@ -16,4 +16,5 @@
     int update(Long id, StockInRecordDto stockInRecordDto);
 
     int batchDelete(List<Long> ids);
+
 }
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
index e360c95..ad80bd5 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -10,10 +10,13 @@
 import com.ruoyi.staff.pojo.StaffOnJob;
 import com.ruoyi.stock.dto.StockInRecordDto;
 import com.ruoyi.stock.dto.StockInventoryDto;
+import com.ruoyi.stock.dto.StockUninventoryDto;
 import com.ruoyi.stock.mapper.StockInRecordMapper;
 import com.ruoyi.stock.mapper.StockInventoryMapper;
+import com.ruoyi.stock.mapper.StockUninventoryMapper;
 import com.ruoyi.stock.pojo.StockInRecord;
 import com.ruoyi.stock.pojo.StockInventory;
+import com.ruoyi.stock.pojo.StockUninventory;
 import com.ruoyi.stock.service.StockInRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -27,6 +30,8 @@
     private StockInRecordMapper stockInRecordMapper;
     @Autowired
     private StockInventoryMapper stockInventoryMapper;
+    @Autowired
+    private StockUninventoryMapper stockUninventoryMapper;
 
     @Override
     public IPage<StockInRecordDto> listPage(Page page, StockInRecordDto stockInRecordDto) {
@@ -63,14 +68,26 @@
     public int batchDelete(List<Long> ids) {
         for (Long id : ids) {
             StockInRecord stockInRecord = stockInRecordMapper.selectById(id);
-            StockInventory stockInventory = stockInventoryMapper.selectOne(new LambdaQueryWrapper<StockInventory>().eq(StockInventory::getProductModelId, id));
-            if (stockInventory == null) {
-                throw new BaseException("璇ュ叆搴撹褰曚笅娌℃湁瀵瑰簲鐨勪骇鍝�,鏃犳硶鍒犻櫎!!!");
-            }else {
-                StockInventoryDto stockInRecordDto = new StockInventoryDto();
-                stockInRecordDto.setProductModelId(stockInventory.getProductModelId());
-                stockInRecordDto.setQualitity(stockInRecord.getStockInNum());
-                stockInventoryMapper.updateSubtractStockInventory(stockInRecordDto);
+            if (stockInRecord.getType().equals("0")) {
+                StockInventory stockInventory = stockInventoryMapper.selectOne(new LambdaQueryWrapper<StockInventory>().eq(StockInventory::getProductModelId, stockInRecord.getProductModelId()));
+                if (stockInventory == null) {
+                    throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
+                }else {
+                    StockInventoryDto stockInRecordDto = new StockInventoryDto();
+                    stockInRecordDto.setProductModelId(stockInventory.getProductModelId());
+                    stockInRecordDto.setQualitity(stockInRecord.getStockInNum());
+                    stockInventoryMapper.updateAddStockInventory(stockInRecordDto);
+                }
+            }else if (stockInRecord.getType().equals("1")) {
+                StockUninventory stockUninventory = stockUninventoryMapper.selectOne(new LambdaQueryWrapper<StockUninventory>().eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId()));
+                if (stockUninventory == null) {
+                    throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
+                }else {
+                    StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
+                    stockUninventoryDto.setProductModelId(stockUninventory.getProductModelId());
+                    stockUninventoryDto.setQualitity(stockInRecord.getStockInNum());
+                    stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
+                }
             }
         }
         return stockInRecordMapper.deleteBatchIds(ids);
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
index d405413..420e6e2 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
@@ -9,11 +9,14 @@
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.dto.StockOutRecordDto;
+import com.ruoyi.stock.dto.StockUninventoryDto;
 import com.ruoyi.stock.mapper.StockInventoryMapper;
 import com.ruoyi.stock.mapper.StockOutRecordMapper;
+import com.ruoyi.stock.mapper.StockUninventoryMapper;
 import com.ruoyi.stock.pojo.StockInRecord;
 import com.ruoyi.stock.pojo.StockInventory;
 import com.ruoyi.stock.pojo.StockOutRecord;
+import com.ruoyi.stock.pojo.StockUninventory;
 import com.ruoyi.stock.service.StockOutRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -34,6 +37,8 @@
     private StockOutRecordMapper stockOutRecordMapper;
     @Autowired
     private StockInventoryMapper stockInventoryMapper;
+    @Autowired
+    private StockUninventoryMapper stockUninventoryMapper;
 
     @Override
     public IPage<StockOutRecordDto> listPage(Page page, StockOutRecordDto stockOutRecordDto) {
@@ -66,14 +71,26 @@
     public int batchDelete(List<Long> ids) {
         for (Long id : ids) {
             StockOutRecord stockOutRecord = stockOutRecordMapper.selectById(id);
-            StockInventory stockInventory = stockInventoryMapper.selectOne(new LambdaQueryWrapper<StockInventory>().eq(StockInventory::getProductModelId, id));
-            if (stockInventory == null) {
-                throw new BaseException("璇ュ叆搴撹褰曚笅娌℃湁瀵瑰簲鐨勪骇鍝�,鏃犳硶鍒犻櫎!!!");
-            }else {
-                StockInventoryDto stockInRecordDto = new StockInventoryDto();
-                stockInRecordDto.setProductModelId(stockInventory.getProductModelId());
-                stockInRecordDto.setQualitity(stockOutRecord.getStockOutNum());
-                stockInventoryMapper.updateAddStockInventory(stockInRecordDto);
+            if (stockOutRecord.getType().equals("0")) {
+                StockInventory stockInventory = stockInventoryMapper.selectOne(new LambdaQueryWrapper<StockInventory>().eq(StockInventory::getProductModelId, stockOutRecord.getProductModelId()));
+                if (stockInventory == null) {
+                    throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
+                }else {
+                    StockInventoryDto stockInRecordDto = new StockInventoryDto();
+                    stockInRecordDto.setProductModelId(stockInventory.getProductModelId());
+                    stockInRecordDto.setQualitity(stockOutRecord.getStockOutNum());
+                    stockInventoryMapper.updateAddStockInventory(stockInRecordDto);
+                }
+            }else if (stockOutRecord.getType().equals("1")) {
+                StockUninventory stockUninventory = stockUninventoryMapper.selectOne(new LambdaQueryWrapper<StockUninventory>().eq(StockUninventory::getProductModelId, stockOutRecord.getProductModelId()));
+                if (stockUninventory == null) {
+                    throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
+                }else {
+                    StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
+                    stockUninventoryDto.setProductModelId(stockUninventory.getProductModelId());
+                    stockUninventoryDto.setQualitity(stockOutRecord.getStockOutNum());
+                    stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
+                }
             }
         }
         return stockOutRecordMapper.deleteBatchIds(ids);
diff --git a/src/main/resources/mapper/stock/StockInRecordMapper.xml b/src/main/resources/mapper/stock/StockInRecordMapper.xml
index 3c7c402..91f08df 100644
--- a/src/main/resources/mapper/stock/StockInRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -20,6 +20,9 @@
             <if test="params.productName != null and params.productName != ''">
                 and p.product_name like concat('%',#{params.productName},'%')
             </if>
+            <if test="params.type != null and params.type != ''">
+                and sir.type = #{params.type}
+            </if>
         </where>
         order by sir.id desc
     </select>
diff --git a/src/main/resources/mapper/stock/StockOutRecordMapper.xml b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
index df49648..d4f2961 100644
--- a/src/main/resources/mapper/stock/StockOutRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
@@ -35,6 +35,9 @@
             <if test="params.productName != null and params.productName != ''">
                 and p.product_name like concat('%',#{param.productName},'%')
             </if>
+            <if test="params.type != null and params.type != ''">
+                and sor.type = #{params.type}
+            </if>
         </where>
         order by sor.id desc
     </select>

--
Gitblit v1.9.3