From 29ccd9919082e0157f57989ae83b303f314bad6b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 08 六月 2026 16:01:55 +0800
Subject: [PATCH] feat(financial): 新增凭证分录科目明细字段

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index 2842878..7e9ad95 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -137,7 +137,15 @@
             }
             stockInventoryDto.setRecordId(qualityInspect.getId());
             stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
-            stockInventoryDto.setQualitity(qualityInspect.getQualifiedQuantity());
+            // 鍏ュ簱鏁伴噺 = 鍚堟牸鏁伴噺 * 鍏ュ簱姣斾緥 / 100锛屽叆搴撴瘮渚嬮粯璁�100%
+            BigDecimal stockInRatio = qualityInspect.getStockInRatio();
+            if (stockInRatio == null || stockInRatio.compareTo(BigDecimal.ZERO) <= 0) {
+                stockInRatio = new BigDecimal("100.00");
+            }
+            BigDecimal actualStockInQuantity = qualityInspect.getQualifiedQuantity()
+                    .multiply(stockInRatio)
+                    .divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
+            stockInventoryDto.setQualitity(actualStockInQuantity);
             if (qualityInspect.getCheckTime() != null) {
                 LocalDate stockCreateDate = DateUtils.toLocalDate(qualityInspect.getCheckTime()).plusDays(1);
                 stockInventoryDto.setCreateTime(LocalDateTime.of(stockCreateDate, java.time.LocalTime.MIDNIGHT));
@@ -294,7 +302,15 @@
             }
             stockInventoryDto.setRecordId(qualityInspect.getId());
             stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
-            stockInventoryDto.setQualitity(qualified);
+            // 鍏ュ簱鏁伴噺 = 鍚堟牸鏁伴噺 * 鍏ュ簱姣斾緥 / 100锛屽叆搴撴瘮渚嬮粯璁�100%
+            BigDecimal stockInRatio = qualityInspect.getStockInRatio();
+            if (stockInRatio == null || stockInRatio.compareTo(BigDecimal.ZERO) <= 0) {
+                stockInRatio = new BigDecimal("100.00");
+            }
+            BigDecimal actualStockInQuantity = qualified
+                    .multiply(stockInRatio)
+                    .divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
+            stockInventoryDto.setQualitity(actualStockInQuantity);
             if (qualityInspect.getCheckTime() != null) {
                 LocalDate stockCreateDate = DateUtils.toLocalDate(qualityInspect.getCheckTime()).plusDays(1);
                 stockInventoryDto.setCreateTime(LocalDateTime.of(stockCreateDate, java.time.LocalTime.MIDNIGHT));

--
Gitblit v1.9.3