From 5072520172e8f45e3ccb8afc26cf0c8186ba4cdd Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 19 十月 2026 16:31:42 +0800
Subject: [PATCH] refactor(mes): 重构质量管理和批次绑定功能

---
 yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityGroupTest.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityGroupTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityGroupTest.java
index ac70078..6ccfae7 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityGroupTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityGroupTest.java
@@ -78,4 +78,33 @@
         var proxy=(MesQcSeedQualityService)factory.getProxy();
         assertThrows(IllegalStateException.class,()->proxy.submitGroup(req));assertEquals(0,jdbc.queryForObject("SELECT COUNT(*) FROM qc_result",Integer.class));
     }
+    @Test void retestScopePreviewSeparatesWorkflowStages() {
+        when(qualities.selectListByCodes(any())).thenReturn(List.of(
+                MesQcSeedQualityDO.builder().id(11L).code("B1").workflowStatus(10).build(),
+                MesQcSeedQualityDO.builder().id(12L).code("B2").workflowStatus(50).build()));
+        var result = service.resolveRetestScope("PALLET-BUS", "PALLET");
+        assertEquals(List.of(11L), result.get("retestIds"));
+        assertEquals(List.of(12L), result.get("initialRecheckIds"));
+    }
+    @Test void retestScopeRejectsStaleConfirmedList() {
+        when(qualities.selectListByCodesForUpdate(any())).thenReturn(List.of(
+                MesQcSeedQualityDO.builder().id(11L).code("B1").workflowStatus(10).build(),
+                MesQcSeedQualityDO.builder().id(12L).code("B2").workflowStatus(10).build()));
+        var request = new MesQcSeedQualityScopeRetestReqVO();
+        request.setCode("BATCH-BUS"); request.setScanType("BATCH"); request.setWorkflowStatus(10);
+        request.setQualityIds(List.of(11L)); request.setIndicators(List.of());
+        assertThrows(IllegalArgumentException.class, () -> service.retestScope(request));
+        verify(service, never()).retest(anyLong(), any());
+    }
+    @Test void retestScopeProcessesAllConfirmedBags() {
+        when(qualities.selectListByCodesForUpdate(any())).thenReturn(List.of(
+                MesQcSeedQualityDO.builder().id(11L).code("B1").workflowStatus(10).build(),
+                MesQcSeedQualityDO.builder().id(12L).code("B2").workflowStatus(10).build()));
+        doNothing().when(service).retest(anyLong(), any());
+        var request = new MesQcSeedQualityScopeRetestReqVO();
+        request.setCode("BATCH-BUS"); request.setScanType("BATCH"); request.setWorkflowStatus(10);
+        request.setQualityIds(List.of(11L, 12L)); request.setIndicators(List.of());
+        assertEquals(2, service.retestScope(request).get("processedCount"));
+        verify(service, times(2)).retest(anyLong(), any());
+    }
 }

--
Gitblit v1.9.3