From 466ee077797f7c145fee8462f14029255618aa6a Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 18 三月 2026 10:20:42 +0800
Subject: [PATCH] 不合格管理:取消隔离

---
 src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
index b012316..8934826 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -29,6 +29,7 @@
 import com.ruoyi.stock.service.StockUninventoryService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
@@ -170,19 +171,30 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean liftTheQuarantine(QualityUnqualified qualityUnqualified) {
-        if (qualityUnqualified.getDealResult().equals("闅旂")) {
+        QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId());
+        if (unqualified.getQuarantineLifted()) {
+            throw new RuntimeException("璇ヤ笉鍚堟牸鍝佸凡琚彇娑堥殧绂�");
+        }
+
+        if (unqualified.getDealResult() == null) {
+            throw new RuntimeException("璇ヤ笉鍚堟牸鍝佹湭琚鐞�");
+        }
+
+        if (!unqualified.getDealResult().equals("闅旂")) {
             throw new RuntimeException("璇ヤ笉鍚堟牸鍝佹湭琚殧绂�");
         }
 
         // 鍙栨秷闅旂 璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
-        QualityInspect qualityInspect = qualityInspectService.getById(qualityUnqualified.getInspectId());
+        QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId());
         if (qualityInspect.getInspectType().equals(2)) {
-            stockUtils.addStockNoReview(qualityInspect.getProductModelId(), qualityUnqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), qualityUnqualified.getId());
+            stockUtils.addStockNoReview(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.LIFT_THE_QUARANTINE.getCode(), unqualified.getId());
         } else {
-            stockUtils.addStock(qualityInspect.getProductModelId(), qualityUnqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), qualityUnqualified.getId());
+            stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.LIFT_THE_QUARANTINE.getCode(), unqualified.getId());
         }
-        return true;
+        unqualified.setQuarantineLifted(true);
+        return qualityUnqualifiedMapper.updateById(unqualified) > 0;
     }
 
     @Override

--
Gitblit v1.9.3