From 87733eb3623593da247c051593d64b8ff9e1d3a4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 06 十一月 2026 19:00:39 +0800
Subject: [PATCH] feat(crm,mes): 扩展客户字段与重构批次号生成逻辑

---
 yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityWorkflowTest.java |   32 ++++++++++++++++++++++----------
 1 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityWorkflowTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityWorkflowTest.java
index 7e92e63..3afc4c6 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityWorkflowTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityWorkflowTest.java
@@ -11,7 +11,9 @@
 import org.junit.jupiter.api.Test;
 import org.mockito.ArgumentCaptor;
 import org.springframework.test.util.ReflectionTestUtils;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
@@ -32,18 +34,28 @@
     }
 
     @Test
-    void initialApprovalOnlyQueuesRetestAndFailedRetestCanReturnToRetest() {
+    void failedProcessStartDoesNotPreventOtherStarts() {
+        AtomicBoolean secondStarted = new AtomicBoolean();
+        TransactionSynchronizationManager.initSynchronization();
+        try {
+            ReflectionTestUtils.invokeMethod(service, "afterCommit", (Runnable) () -> {
+                throw new IllegalStateException("BPM unavailable");
+            });
+            ReflectionTestUtils.invokeMethod(service, "afterCommit", (Runnable) () -> secondStarted.set(true));
+            TransactionSynchronizationManager.getSynchronizations().forEach(sync -> sync.afterCommit());
+            assertTrue(secondStarted.get());
+        } finally {
+            TransactionSynchronizationManager.clearSynchronization();
+        }
+    }
+
+    @Test
+    void newDualLineRecordsRequireBpmApproval() {
         when(qualityMapper.selectByIdForUpdate(1L)).thenReturn(
-                MesQcSeedQualityDO.builder().id(1L).code("B1").result(2).workflowStatus(20).build(),
-                MesQcSeedQualityDO.builder().id(1L).code("B1").result(2).workflowStatus(60).build());
-        service.processApprove(1L, true, "");
+                MesQcSeedQualityDO.builder().id(1L).code("B1").qcLine(1).result(2).workflowStatus(20).build());
+        assertThrows(IllegalArgumentException.class, () -> service.processApprove(1L, true, ""));
         verifyNoInteractions(transactionService);
-        service.companyApprove(1L, false, "澶嶆涓嶅悎鏍硷紝閲嶆柊鍙栨牱");
-        ArgumentCaptor<MesQcSeedQualityDO> update = ArgumentCaptor.forClass(MesQcSeedQualityDO.class);
-        verify(qualityMapper, times(2)).updateById(update.capture());
-        assertEquals(10, update.getAllValues().get(0).getWorkflowStatus());
-        assertEquals(10, update.getAllValues().get(1).getWorkflowStatus());
-        verifyNoInteractions(transactionService);
+        verify(qualityMapper, never()).updateById(any(MesQcSeedQualityDO.class));
     }
 
     @Test

--
Gitblit v1.9.3