From 5a6ac2ffb3815f1ef510144dd6e88c64ee96f973 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 23 一月 2026 09:53:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java    |   55 +++++++
 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/java/com/ruoyi/stock/mapper/StockUninventoryMapper.java            |   27 +++
 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 +++-
 src/main/java/com/ruoyi/stock/controller/StockInRecordController.java       |   10 -
 src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java |   85 ++++++++++++
 src/main/resources/mapper/stock/StockUninventoryMapper.xml                  |   52 +++++++
 src/main/java/com/ruoyi/stock/service/StockUninventoryService.java          |   24 +++
 src/main/java/com/ruoyi/stock/pojo/StockUninventory.java                    |   49 +++++++
 14 files changed, 371 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/controller/StockUninventoryController.java b/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java
new file mode 100644
index 0000000..2bed6de
--- /dev/null
+++ b/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java
@@ -0,0 +1,55 @@
+package com.ruoyi.stock.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.stock.dto.StockInventoryDto;
+import com.ruoyi.stock.dto.StockUninventoryDto;
+import com.ruoyi.stock.service.StockInventoryService;
+import com.ruoyi.stock.service.StockUninventoryService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 涓嶅悎鏍煎簱瀛樿〃 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-01-22 10:17:45
+ */
+@RestController
+@RequestMapping("/stockUninventory")
+public class StockUninventoryController {
+    @Autowired
+    private StockUninventoryService stockUninventoryService;
+
+    @GetMapping("/pagestockUninventory")
+    @ApiOperation("鍒嗛〉鏌ヨ搴撳瓨")
+    public R pagestockUninventory(Page page, StockUninventoryDto stockUninventoryDto) {
+        IPage<StockUninventoryDto> stockUninventoryDtoIPage = stockUninventoryService.pageStockUninventory(page, stockUninventoryDto);
+        return R.ok(stockUninventoryDtoIPage);
+    }
+
+    @PostMapping("/addstockUninventory")
+    @ApiOperation("鏂板搴撳瓨")
+    public R addstockUninventory(StockUninventoryDto stockUninventoryDto) {
+        stockUninventoryDto.setRecordType("涓嶅悎鏍艰嚜瀹氫箟鍏ュ簱");
+        stockUninventoryDto.setRecordId(0L);
+        return R.ok(stockUninventoryService.addStockUninventory(stockUninventoryDto));
+    }
+
+
+    @PostMapping("/subtractstockUninventory")
+    @ApiOperation("鎵e噺搴撳瓨")
+    public R subtractstockUninventory(StockUninventoryDto stockUninventoryDto) {
+        stockUninventoryDto.setRecordType("涓嶅悎鏍艰嚜瀹氫箟鍑哄簱");
+        stockUninventoryDto.setRecordId(0L);
+        return R.ok(stockUninventoryService.subtractStockUninventory(stockUninventoryDto));
+    }
+
+}
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/mapper/StockUninventoryMapper.java b/src/main/java/com/ruoyi/stock/mapper/StockUninventoryMapper.java
new file mode 100644
index 0000000..64ecc2c
--- /dev/null
+++ b/src/main/java/com/ruoyi/stock/mapper/StockUninventoryMapper.java
@@ -0,0 +1,27 @@
+package com.ruoyi.stock.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.stock.dto.StockUninventoryDto;
+import com.ruoyi.stock.pojo.StockUninventory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 涓嶅悎鏍煎簱瀛樿〃 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-01-22 10:17:45
+ */
+@Mapper
+public interface StockUninventoryMapper extends BaseMapper<StockUninventory> {
+
+    IPage<StockUninventoryDto> pageStockUninventory(Page page, @Param("ew") StockUninventoryDto stockUninventoryDto);
+
+    int updateSubtractStockUnInventory(StockUninventoryDto stockUninventoryDto);
+
+    int updateAddStockUnInventory(StockUninventoryDto stockUninventoryDto);
+}
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockUninventory.java b/src/main/java/com/ruoyi/stock/pojo/StockUninventory.java
new file mode 100644
index 0000000..4496101
--- /dev/null
+++ b/src/main/java/com/ruoyi/stock/pojo/StockUninventory.java
@@ -0,0 +1,49 @@
+package com.ruoyi.stock.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 涓嶅悎鏍煎簱瀛樿〃
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-01-22 10:17:45
+ */
+@Getter
+@Setter
+@TableName("stock_uninventory")
+@ApiModel(value = "StockUninventory瀵硅薄", description = "涓嶅悎鏍煎簱瀛樿〃")
+public class StockUninventory implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("涓婚敭id")
+    private Long id;
+
+    @ApiModelProperty("瑙勬牸id")
+    private Long productModelId;
+
+    @ApiModelProperty("鏁伴噺")
+    private BigDecimal qualitity;
+
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateTime;
+
+    @ApiModelProperty("鐗堟湰鍙�")
+    private Integer version;
+
+}
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/StockUninventoryService.java b/src/main/java/com/ruoyi/stock/service/StockUninventoryService.java
new file mode 100644
index 0000000..e4b8d83
--- /dev/null
+++ b/src/main/java/com/ruoyi/stock/service/StockUninventoryService.java
@@ -0,0 +1,24 @@
+package com.ruoyi.stock.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.stock.dto.StockUninventoryDto;
+import com.ruoyi.stock.pojo.StockUninventory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 涓嶅悎鏍煎簱瀛樿〃 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-01-22 10:17:45
+ */
+public interface StockUninventoryService extends IService<StockUninventory> {
+
+    IPage<StockUninventoryDto> pageStockUninventory(Page page, StockUninventoryDto stockUninventoryDto);
+
+    Integer addStockUninventory(StockUninventoryDto stockUninventoryDto);
+
+    Integer subtractStockUninventory(StockUninventoryDto stockUninventoryDto);
+}
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/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
new file mode 100644
index 0000000..06096c5
--- /dev/null
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -0,0 +1,85 @@
+package com.ruoyi.stock.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.stock.dto.StockInRecordDto;
+import com.ruoyi.stock.dto.StockOutRecordDto;
+import com.ruoyi.stock.dto.StockUninventoryDto;
+import com.ruoyi.stock.pojo.StockInventory;
+import com.ruoyi.stock.pojo.StockUninventory;
+import com.ruoyi.stock.mapper.StockUninventoryMapper;
+import com.ruoyi.stock.service.StockInRecordService;
+import com.ruoyi.stock.service.StockOutRecordService;
+import com.ruoyi.stock.service.StockUninventoryService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 涓嶅悎鏍煎簱瀛樿〃 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-01-22 10:17:45
+ */
+@Service
+public class StockUninventoryServiceImpl extends ServiceImpl<StockUninventoryMapper, StockUninventory> implements StockUninventoryService {
+
+    private StockUninventoryMapper stockUninventoryMapper;
+    private StockOutRecordService stockOutRecordService;
+    private StockInRecordService stockInRecordService;
+
+    @Override
+    public IPage<StockUninventoryDto> pageStockUninventory(Page page, StockUninventoryDto stockUninventoryDto) {
+        return stockUninventoryMapper.pageStockUninventory(page, stockUninventoryDto);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Integer addStockUninventory(StockUninventoryDto stockUninventoryDto) {
+        //鏂板鍏ュ簱璁板綍鍐嶆坊鍔犲簱瀛�
+        StockInRecordDto stockInRecordDto = new StockInRecordDto();
+        stockInRecordDto.setRecordId(stockUninventoryDto.getRecordId());
+        stockInRecordDto.setRecordType(stockUninventoryDto.getRecordType());
+        stockInRecordDto.setStockInNum(stockUninventoryDto.getQualitity());
+        stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
+        stockInRecordDto.setType("1");
+        stockInRecordService.add(stockInRecordDto);
+        //鍐嶈繘琛屾柊澧炲簱瀛樻暟閲忓簱瀛�
+        //鍏堟煡璇㈠簱瀛樿〃涓殑浜у搧鏄惁瀛樺湪锛屼笉瀛樺湪鏂板锛屽瓨鍦ㄦ洿鏂�
+        StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
+        if (ObjectUtils.isEmpty(oldStockUnInventory)) {
+            StockUninventory newStockUnInventory = new StockUninventory();
+            newStockUnInventory.setProductModelId(stockUninventoryDto.getProductModelId());
+            newStockUnInventory.setQualitity(stockUninventoryDto.getQualitity());
+            newStockUnInventory.setVersion(1);
+            stockUninventoryMapper.insert(newStockUnInventory);
+        }else {
+            stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
+        }
+        return 1;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Integer subtractStockUninventory(StockUninventoryDto stockUninventoryDto) {
+
+        //  鏂板鍑哄簱璁板綍
+        StockOutRecordDto stockOutRecordDto = new StockOutRecordDto();
+        stockOutRecordDto.setRecordId(stockUninventoryDto.getRecordId());
+        stockOutRecordDto.setRecordType(stockUninventoryDto.getRecordType());
+        stockOutRecordDto.setStockOutNum(stockUninventoryDto.getQualitity());
+        stockOutRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
+        stockOutRecordService.add(stockOutRecordDto);
+        StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
+        if (ObjectUtils.isEmpty(oldStockInventory)) {
+            throw new RuntimeException("浜у搧搴撳瓨涓嶅瓨鍦�");
+        }else {
+            stockUninventoryMapper.updateSubtractStockUnInventory(stockUninventoryDto);
+        }
+        return 1;
+    }
+}
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>
diff --git a/src/main/resources/mapper/stock/StockUninventoryMapper.xml b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
new file mode 100644
index 0000000..22dcc3d
--- /dev/null
+++ b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.stock.mapper.StockUninventoryMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.stock.pojo.StockUninventory">
+        <result column="id" property="id" />
+        <result column="product_model_id" property="productModelId" />
+        <result column="qualitity" property="qualitity" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="version" property="version" />
+    </resultMap>
+    <update id="updateSubtractStockUnInventory">
+        update stock_inventory
+        <set>
+            <if test="ew.qualitity != null">
+                qualitity = qualitity - #{ew.qualitity},
+            </if>
+            <if test="ew.version != null">
+                version = version + 1,
+            </if>
+        </set>
+        where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
+    </update>
+    <update id="updateAddStockUnInventory">
+        update stock_inventory
+        <set>
+            <if test="ew.qualitity != null">
+                qualitity = qualitity + #{ew.qualitity},
+            </if>
+            <if test="ew.version != null">
+                version = version + 1,
+            </if>
+        </set>
+        where product_model_id = #{ew.productModelId}
+    </update>
+    <select id="pageStockUninventory" resultType="com.ruoyi.stock.dto.StockUninventoryDto">
+        select su.*,
+               pm.model,
+               pm.unit,
+               p.product_name
+        from stock_uninventory su
+                 left join product_model pm on su.product_model_id = pm.id
+                 left join product p on pm.product_id = p.id
+        where 1 = 1
+        <if test="ew.productName != null and ew.productName !=''">
+            and p.product_name like concat('%',#{ew.productName},'%')
+        </if>
+    </select>
+
+</mapper>

--
Gitblit v1.9.3