From 5ac6ad0ec6e861d4d2275753d15d2ad7f870915a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 22 六月 2026 17:20:07 +0800
Subject: [PATCH] 6、明细记录中有删除操作的,需设置权限; 7、质量管理要设置检验规则;

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 insertions(+), 0 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 6bd4693..4a44166 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -17,6 +17,9 @@
 import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.procurementrecord.service.ProcurementRecordService;
 import com.ruoyi.procurementrecord.utils.StockUtils;
+import com.ruoyi.quality.dto.AutoJudgeAllResponse;
+import com.ruoyi.quality.dto.AutoJudgeRequest;
+import com.ruoyi.quality.dto.AutoJudgeResponse;
 import com.ruoyi.quality.dto.BatchQuickInspectRequest;
 import com.ruoyi.quality.dto.QualityInspectDto;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
@@ -26,6 +29,7 @@
 import com.ruoyi.quality.pojo.QualityInspectParam;
 import com.ruoyi.quality.pojo.QualityUnqualified;
 import com.ruoyi.quality.utils.QualityInspectTemplateExportHelper;
+import com.ruoyi.quality.utils.QualityJudgeUtil;
 import com.ruoyi.stock.pojo.StockInRecord;
 import com.ruoyi.stock.service.StockInRecordService;
 import com.ruoyi.quality.service.IQualityInspectParamService;
@@ -561,4 +565,91 @@
         return qualityInspectTemplateExportHelper.analyzeTemplate(templatePath);
     }
 
+    @Override
+    public AutoJudgeResponse autoJudge(AutoJudgeRequest request) {
+        QualityJudgeUtil.JudgeResult result = QualityJudgeUtil.judge(
+                request.getTestValue(),
+                request.getStandardValue(),
+                request.getMinValue(),
+                request.getMaxValue(),
+                request.getJudgeType()
+        );
+        return new AutoJudgeResponse(result.getQualified(), result.getMessage());
+    }
+
+    @Override
+    public AutoJudgeAllResponse autoJudgeAll(Long inspectId) {
+        List<QualityInspectParam> params = qualityInspectParamService.list(
+                Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, inspectId));
+
+        AutoJudgeAllResponse response = new AutoJudgeAllResponse();
+        List<AutoJudgeAllResponse.ParamJudgeResult> paramResults = new ArrayList<>();
+        boolean hasRequiredUnqualified = false;
+        boolean allTextDescription = true;
+        boolean hasRequiredParam = false;
+
+        for (QualityInspectParam param : params) {
+            AutoJudgeAllResponse.ParamJudgeResult paramResult = new AutoJudgeAllResponse.ParamJudgeResult();
+            paramResult.setParamId(param.getId());
+            paramResult.setParameterItem(param.getParameterItem());
+            paramResult.setIsRequired(param.getIsRequired() != null && param.getIsRequired() == 1);
+
+            if (paramResult.getIsRequired()) {
+                hasRequiredParam = true;
+            }
+
+            String judgeType = param.getJudgeType();
+            if (QualityJudgeUtil.JUDGE_TYPE_TEXT_DESCRIPTION.equals(judgeType)) {
+                paramResult.setIsQualified(null);
+                paramResult.setMessage("鏂囧瓧鎻忚堪绫诲瀷闇�鎵嬪姩鍒ゆ柇");
+            } else {
+                allTextDescription = false;
+                QualityJudgeUtil.JudgeResult result = QualityJudgeUtil.judge(
+                        param.getTestValue(),
+                        param.getStandardValue(),
+                        param.getMinValue(),
+                        param.getMaxValue(),
+                        judgeType
+                );
+                paramResult.setIsQualified(result.getQualified());
+                paramResult.setMessage(result.getMessage());
+
+                // 鏇存柊鍙傛暟椤圭殑鍒ゆ柇缁撴灉
+                if (result.getQualified() != null) {
+                    param.setIsQualified(result.getQualified() ? 1 : 0);
+                    qualityInspectParamService.updateById(param);
+                }
+
+                // 妫�鏌ュ繀瑕佸垽鏂弬鏁版槸鍚︿笉鍚堟牸
+                if (paramResult.getIsRequired() && Boolean.FALSE.equals(result.getQualified())) {
+                    hasRequiredUnqualified = true;
+                }
+            }
+            paramResults.add(paramResult);
+        }
+
+        response.setParamResults(paramResults);
+        response.setHasRequiredUnqualified(hasRequiredUnqualified);
+        response.setAllTextDescription(allTextDescription);
+
+        // 纭畾鏁翠綋鍒ゆ柇缁撴灉
+        if (allTextDescription) {
+            response.setAutoJudgeResult(null);
+        } else if (hasRequiredUnqualified) {
+            response.setAutoJudgeResult("涓嶅悎鏍�");
+        } else {
+            // 鎵�鏈夐渶瑕佽嚜鍔ㄥ垽鏂殑鍙傛暟椤归兘鍚堟牸锛屾暣浣撲负鍚堟牸
+            response.setAutoJudgeResult("鍚堟牸");
+        }
+
+        // 鏇存柊璐ㄦ涓昏〃鐨勮嚜鍔ㄥ垽鏂粨鏋�
+        QualityInspect inspect = qualityInspectMapper.selectById(inspectId);
+        if (inspect != null) {
+            inspect.setAutoJudgeResult(response.getAutoJudgeResult());
+            qualityInspectMapper.updateById(inspect);
+        }
+
+        return response;
+    }
+
 }

--
Gitblit v1.9.3