From 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:50:53 +0800
Subject: [PATCH] feat: 完善质检、生产、销售、财务与人事模块并接入审批流程
---
yudao-module-qcreport/src/test/java/cn/iocoder/yudao/module/qcreport/engine/ReportEvaluatorTest.java | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/yudao-module-qcreport/src/test/java/cn/iocoder/yudao/module/qcreport/engine/ReportEvaluatorTest.java b/yudao-module-qcreport/src/test/java/cn/iocoder/yudao/module/qcreport/engine/ReportEvaluatorTest.java
index c0b74e2..a0f80bf 100644
--- a/yudao-module-qcreport/src/test/java/cn/iocoder/yudao/module/qcreport/engine/ReportEvaluatorTest.java
+++ b/yudao-module-qcreport/src/test/java/cn/iocoder/yudao/module/qcreport/engine/ReportEvaluatorTest.java
@@ -32,6 +32,28 @@
class ReportEvaluatorTest {
@Test
+ void numericRuleRequiresRealMeasurementsAndLimits() {
+ ReportContext context = ReportContext.empty().setInspectionItems(List.of(
+ item("鏈娴�", "", 10.0, 0.0),
+ item("缂鸿鏍�", "5", null, null),
+ item("宸叉娴�", "5", 10.0, 0.0)));
+ List<QualityRuleDefinition> rules = List.of(
+ itemRule("鏁板�艰寖鍥�", "item.actualValue >= item.lowerLimit AND item.actualValue <= item.upperLimit"),
+ new QualityRuleDefinition("report-rate", "鏁翠綋鍚堟牸鐜�", RuleScope.REPORT,
+ "PASS_RATE(inspectionItems) >= 60", true));
+
+ EvaluationOutcome outcome = ReportEvaluator.evaluate(context, rules);
+ assertEquals("", outcome.context().getInspectionItems().get(0).getResult());
+ assertEquals("", outcome.context().getInspectionItems().get(1).getResult());
+ assertEquals("PASS", outcome.context().getInspectionItems().get(2).getResult());
+ assertEquals("", outcome.context().getReport().getResult());
+ assertEquals(QualityResult.PENDING_TEXT, outcome.context().getReport().getConclusion());
+ assertEquals("33.33%", outcome.context().getReport().getPassRate());
+ assertEquals(2, outcome.errors().size());
+ assertTrue(outcome.errors().stream().allMatch(error -> error.contains("鏁板�兼瘮杈冪己灏戞湁鏁堝疄娴嬪�兼垨瑙勬牸闄愬��")));
+ }
+
+ @Test
void blankOrNonNumericResultsWithLimitsStayPendingAndCannotProduceAPass() {
ReportContext context = ReportContext.empty().setInspectionItems(List.of(
item("閾�", "", 0.5, null),
--
Gitblit v1.9.3