From f553a88e4eee070c24182e4c036db355becda35a Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 13 三月 2026 09:48:56 +0800
Subject: [PATCH] fix:循环依赖

---
 src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java |   57 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 44 insertions(+), 13 deletions(-)

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 ab630bb..b315964 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -22,7 +22,7 @@
 import com.ruoyi.stock.service.StockInRecordService;
 import com.ruoyi.stock.service.StockOutRecordService;
 import com.ruoyi.stock.service.StockUninventoryService;
-import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -40,12 +40,15 @@
  * @since 2026-01-22 10:17:45
  */
 @Service
-@AllArgsConstructor
 public class StockUninventoryServiceImpl extends ServiceImpl<StockUninventoryMapper, StockUninventory> implements StockUninventoryService {
 
+    @Autowired
     private StockUninventoryMapper stockUninventoryMapper;
+    @Autowired
     private StockOutRecordService stockOutRecordService;
+    @Autowired
     private StockInRecordService stockInRecordService;
+    @Autowired
     private ApproveProcessServiceImpl approveProcessService;
 
     @Override
@@ -63,14 +66,15 @@
         stockInRecordDto.setStockInNum(stockUninventoryDto.getQualitity());
         stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
         stockInRecordDto.setRemark(stockUninventoryDto.getRemark());
+        stockInRecordDto.setApproveStatus(0);
         stockInRecordDto.setType("1");
-        int add = stockInRecordService.add(stockInRecordDto);
+        Long id = stockInRecordService.add(stockInRecordDto);
 
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (add > 0){
+        if (id != null) {
             try {
-                addApproveByPurchase(loginUser,stockInRecordDto);
-            }catch (Exception e){
+                addApproveByPurchase(loginUser, stockInRecordDto,id);
+            } catch (Exception e) {
                 e.printStackTrace();
             }
         }
@@ -78,7 +82,7 @@
         return 1;
     }
 
-    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception {
+    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception {
         ApproveProcessVO approveProcessVO = new ApproveProcessVO();
         approveProcessVO.setApproveType(9);
         approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
@@ -88,12 +92,39 @@
         approveProcessVO.setApproveTime(LocalDate.now().toString());
         approveProcessVO.setInventoryReview(false);
         approveProcessVO.setStorageType("涓嶅悎鏍煎叆搴�");
-        approveProcessVO.setRecordId(stockInRecordDto.getId());
+        approveProcessVO.setRecordId(id);
         approveProcessService.addApprove(approveProcessVO);
+    }
+
+    @Override
+    public Integer addStockUninventoryNoReview(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);
+            newStockUnInventory.setRemark(stockUninventoryDto.getRemark());
+            stockUninventoryMapper.insert(newStockUnInventory);
+        }else {
+            stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
+        }
+        return 1;
     }
 
     /**
      * 鏇存柊鎴栧垱寤洪潪鑹搧搴撳瓨淇℃伅
+     *
      * @param stockInRecord 闈炶壇鍝佸簱瀛楧TO瀵硅薄
      */
     public void updateOrCreateStockUninventory(StockInRecord stockInRecord) {
@@ -142,7 +173,7 @@
         StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
         if (ObjectUtils.isEmpty(oldStockInventory)) {
             throw new RuntimeException("浜у搧搴撳瓨涓嶅瓨鍦�");
-        }else {
+        } else {
             stockUninventoryMapper.updateSubtractStockUnInventory(stockUninventoryDto);
         }
         return 1;
@@ -152,18 +183,18 @@
     public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
         List<StockUnInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto);
         ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class);
-        util.exportExcel(response,list, "涓嶅悎鏍煎簱瀛樹俊鎭�");
+        util.exportExcel(response, list, "涓嶅悎鏍煎簱瀛樹俊鎭�");
     }
 
     @Override
     public Boolean frozenStock(StockInventoryDto stockInventoryDto) {
         StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
-        if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
+        if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity()) < 0) {
             throw new RuntimeException("鍐荤粨鏁伴噺涓嶈兘瓒呰繃搴撳瓨鏁伴噺");
         }
         if (ObjectUtils.isEmpty(stockUninventory.getLockedQuantity())) {
             stockUninventory.setLockedQuantity(stockInventoryDto.getLockedQuantity());
-        }else {
+        } else {
             stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().add(stockInventoryDto.getLockedQuantity()));
         }
         return this.updateById(stockUninventory);
@@ -172,7 +203,7 @@
     @Override
     public Boolean thawStock(StockInventoryDto stockInventoryDto) {
         StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
-        if (stockUninventory.getLockedQuantity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
+        if (stockUninventory.getLockedQuantity().compareTo(stockInventoryDto.getLockedQuantity()) < 0) {
             throw new RuntimeException("瑙e喕鏁伴噺涓嶈兘瓒呰繃鍐荤粨鏁伴噺");
         }
         stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().subtract(stockInventoryDto.getLockedQuantity()));

--
Gitblit v1.9.3