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/procurementrecord/utils/StockUtils.java |  110 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 74 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index a42e43b..7f6ef39 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -1,56 +1,47 @@
 package com.ruoyi.procurementrecord.utils;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
 import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
-import com.ruoyi.stock.dto.StockInRecordDto;
 import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.dto.StockUninventoryDto;
 import com.ruoyi.stock.pojo.StockInRecord;
+import com.ruoyi.stock.pojo.StockOutRecord;
 import com.ruoyi.stock.service.StockInRecordService;
 import com.ruoyi.stock.service.StockInventoryService;
+import com.ruoyi.stock.service.StockOutRecordService;
 import com.ruoyi.stock.service.StockUninventoryService;
-import com.ruoyi.stock.service.impl.StockInRecordServiceImpl;
-import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
 import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
 
 @Component
-@RequiredArgsConstructor
 public class StockUtils {
-    private final ProcurementRecordOutMapper procurementRecordOutMapper;
-    private final ProcurementRecordMapper procurementRecordMapper;
-    private final StockUninventoryService stockUninventoryService;
-    private final StockInventoryService stockInventoryService;
-    private final StockInRecordService stockInRecordService;
-
-    // 鑾峰彇鍟嗗搧鍏ュ簱鏁伴噺,鍑哄簱鏁伴噺,鍓╀綑搴撳瓨
-//    public Map<String, BigDecimal> getStockQuantity(Long productModelId) {
-//        // 鍏ュ簱鏁伴噺
-//        BigDecimal sumQuantity = procurementRecordMapper.getSumQuantity(productModelId);
-//        // 鍑哄簱鏁伴噺
-//        BigDecimal outQuantity = procurementRecordOutMapper.getSumQuantity(productModelId);
-//        // 鍓╀綑搴撳瓨
-//        BigDecimal stockQuantity = outQuantity.compareTo(sumQuantity) > 0 ? BigDecimal.ZERO : sumQuantity.subtract(outQuantity);
-//        Map<String, BigDecimal> stockMap = new HashMap<>();
-//        stockMap.put("inboundNum", sumQuantity);
-//        stockMap.put("outboundNum", outQuantity);
-//        stockMap.put("stockQuantity", stockQuantity);
-//        return stockMap;
-//    }
+    @Autowired
+    private ProcurementRecordOutMapper procurementRecordOutMapper;
+    @Autowired
+    private ProcurementRecordMapper procurementRecordMapper;
+    @Autowired
+    private StockUninventoryService stockUninventoryService;
+    @Autowired
+    private StockInventoryService stockInventoryService;
+    @Autowired
+    private StockInRecordService stockInRecordService;
+    @Autowired
+    private StockOutRecordService stockOutRecordService;
 
     /**
-     * 涓嶅悎鏍煎叆搴�
+     * 涓嶅悎鏍煎叆搴擄紙瀹℃牳锛�
+     *
      * @param productModelId
      * @param quantity
      * @param recordType
      * @param recordId
      */
-    public void addUnStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) {
+    public void addUnStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId) {
         StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
         stockUninventoryDto.setRecordId(recordId);
         stockUninventoryDto.setRecordType(String.valueOf(recordType));
@@ -60,13 +51,31 @@
     }
 
     /**
-     * 涓嶅悎鏍煎嚭搴�
+     * 涓嶅悎鏍煎叆搴擄紙涓嶅鏍革級
+     *
      * @param productModelId
      * @param quantity
      * @param recordType
      * @param recordId
      */
-    public void subtractUnStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
+    public void addUnStockNoReview(Long productModelId, BigDecimal quantity, String recordType, Long recordId) {
+        StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
+        stockUninventoryDto.setRecordId(recordId);
+        stockUninventoryDto.setRecordType(String.valueOf(recordType));
+        stockUninventoryDto.setQualitity(quantity);
+        stockUninventoryDto.setProductModelId(productModelId);
+        stockUninventoryService.addStockUninventoryNoReview(stockUninventoryDto);
+    }
+
+    /**
+     * 涓嶅悎鏍煎嚭搴�
+     *
+     * @param productModelId
+     * @param quantity
+     * @param recordType
+     * @param recordId
+     */
+    public void subtractUnStock(Long productModelId, BigDecimal quantity, Integer recordType, Long recordId) {
         StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
         stockUninventoryDto.setRecordId(recordId);
         stockUninventoryDto.setRecordType(String.valueOf(recordType));
@@ -76,13 +85,14 @@
     }
 
     /**
-     * 鍚堟牸鍏ュ簱
+     * 鍚堟牸鍏ュ簱锛堝鏍革級
+     *
      * @param productModelId
      * @param quantity
      * @param recordType
      * @param recordId
      */
-    public void addStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) {
+    public void addStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId) {
         StockInventoryDto stockInventoryDto = new StockInventoryDto();
         stockInventoryDto.setRecordId(recordId);
         stockInventoryDto.setRecordType(String.valueOf(recordType));
@@ -92,13 +102,31 @@
     }
 
     /**
-     * 鍚堟牸鍑哄簱
+     * 鍚堟牸鍏ュ簱锛堜笉瀹℃牳锛�
+     *
      * @param productModelId
      * @param quantity
      * @param recordType
      * @param recordId
      */
-    public void substractStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId) {
+    public void addStockNoReview(Long productModelId, BigDecimal quantity, String recordType, Long recordId) {
+        StockInventoryDto stockInventoryDto = new StockInventoryDto();
+        stockInventoryDto.setRecordId(recordId);
+        stockInventoryDto.setRecordType(String.valueOf(recordType));
+        stockInventoryDto.setQualitity(quantity);
+        stockInventoryDto.setProductModelId(productModelId);
+        stockInventoryService.addstockInventoryNoReview(stockInventoryDto);
+    }
+
+    /**
+     * 鍚堟牸鍑哄簱
+     *
+     * @param productModelId
+     * @param quantity
+     * @param recordType
+     * @param recordId
+     */
+    public void substractStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId) {
         StockInventoryDto stockInventoryDto = new StockInventoryDto();
         stockInventoryDto.setRecordId(recordId);
         stockInventoryDto.setRecordType(String.valueOf(recordType));
@@ -108,11 +136,21 @@
     }
 
     //涓嶅悎鏍煎簱瀛樺垹闄�
-    public void deleteStockRecord(Long recordId, String recordType) {
+    public void deleteStockInRecord(Long recordId, String recordType) {
         StockInRecord one = stockInRecordService.getOne(new QueryWrapper<StockInRecord>()
                 .lambda().eq(StockInRecord::getRecordId, recordId)
                 .eq(StockInRecord::getRecordType, recordType));
+        if (ObjectUtils.isNotEmpty(one)) {
+            stockInRecordService.batchDelete(Collections.singletonList(one.getId()));
+        }
+    }
 
-        stockInRecordService.batchDelete(Collections.singletonList(one.getId()));
+    public void deleteStockOutRecord(Long recordId, String recordType) {
+        StockOutRecord one = stockOutRecordService.getOne(new QueryWrapper<StockOutRecord>()
+                .lambda().eq(StockOutRecord::getRecordId, recordId)
+                .eq(StockOutRecord::getRecordType, recordType));
+        if (ObjectUtils.isNotEmpty(one)) {
+            stockOutRecordService.batchDelete(Collections.singletonList(one.getId()));
+        }
     }
 }

--
Gitblit v1.9.3