From 9ca45195f78b74e9181cbbe7e82eb683ee49fabf Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 30 十月 2026 17:54:15 +0800
Subject: [PATCH] 质量管理模块:指标按产品/类别/工序维护与绑定、不合格处理方式、检验提交入库判定

---
 src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java |   68 ++++++++++++++++++++++++++++++++--
 1 files changed, 64 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
index b1a5a1b..32933af 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
@@ -2,11 +2,11 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.quality.pojo.QualityTestStandard;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.quality.pojo.QualityUnqualified;
-import com.ruoyi.quality.service.IQualityTestStandardService;
 import com.ruoyi.quality.service.IQualityUnqualifiedService;
 import org.springframework.util.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -31,7 +31,17 @@
      */
     @PostMapping("/add")
     public AjaxResult add(@RequestBody QualityUnqualified qualityUnqualified) {
-        return AjaxResult.success(qualityUnqualifiedService.save(qualityUnqualified));
+        if (qualityUnqualified != null && qualityUnqualified.getInspectState() == null) {
+            qualityUnqualified.setInspectState(0);
+        }
+        String validationMessage = validateUnqualified(qualityUnqualified, false);
+        if (validationMessage != null) {
+            return AjaxResult.error(validationMessage);
+        }
+        if (!qualityUnqualifiedService.save(qualityUnqualified)) {
+            throw new ServiceException("鏂板涓嶅悎鏍艰褰曞け璐�");
+        }
+        return AjaxResult.success(true);
     }
 
     /**
@@ -64,7 +74,17 @@
      */
     @PostMapping("/update")
     public AjaxResult update(@RequestBody QualityUnqualified qualityUnqualified) {
-        return AjaxResult.success(qualityUnqualifiedService.updateById(qualityUnqualified));
+        String validationMessage = validateUnqualified(qualityUnqualified, true);
+        if (validationMessage != null) {
+            return AjaxResult.error(validationMessage);
+        }
+        if (qualityUnqualifiedService.getById(qualityUnqualified.getId()) == null) {
+            return AjaxResult.error("涓嶅悎鏍艰褰曚笉瀛樺湪");
+        }
+        if (!qualityUnqualifiedService.updateById(qualityUnqualified)) {
+            throw new ServiceException("淇敼涓嶅悎鏍艰褰曞け璐�");
+        }
+        return AjaxResult.success(true);
     }
 
     /**
@@ -88,5 +108,45 @@
         qualityUnqualifiedService.qualityUnqualifiedExport(response, qualityUnqualified);
     }
 
+    private String validateUnqualified(QualityUnqualified record, boolean requireId) {
+        if (record == null) {
+            return "涓嶅悎鏍兼暟鎹笉鑳戒负绌�";
+        }
+        if (requireId && record.getId() == null) {
+            return "涓嶅悎鏍艰褰旾D涓嶈兘涓虹┖";
+        }
+        if (record.getInspectType() == null || record.getInspectType() < 0 || record.getInspectType() > 2) {
+            return "妫�楠岀被鍒笉姝g‘";
+        }
+        if (record.getInspectState() == null
+                || (record.getInspectState() != 0 && record.getInspectState() != 1)) {
+            return "澶勭悊鐘舵�佷笉姝g‘";
+        }
+        if (record.getProductId() == null) {
+            return "璇烽�夋嫨浜у搧";
+        }
+        if (record.getQuantity() == null || record.getQuantity().signum() <= 0) {
+            return "涓嶅悎鏍兼暟閲忓繀椤诲ぇ浜�0";
+        }
+        if (StringUtils.isBlank(record.getDefectivePhenomena())) {
+            return "璇峰~鍐欎笉鍚堟牸鍘熷洜鎴栫幇璞�";
+        }
+        if (Integer.valueOf(1).equals(record.getInspectState())) {
+            if (StringUtils.isBlank(record.getDealType())) {
+                return "璇烽�夋嫨澶勭悊鏂瑰紡";
+            }
+            if (StringUtils.isBlank(record.getDealResult())) {
+                return "璇峰~鍐欏鐞嗙粨鏋�";
+            }
+            if (StringUtils.isBlank(record.getDealName())) {
+                return "璇峰~鍐欏鐞嗕汉";
+            }
+            if (record.getDealTime() == null) {
+                return "璇烽�夋嫨澶勭悊鏃ユ湡";
+            }
+        }
+        return null;
+    }
+
 
 }

--
Gitblit v1.9.3