From c116ace60244d86cb1d7d9412437b7ad817e0649 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 23 七月 2026 10:12:51 +0800
Subject: [PATCH] refactor(mes): 移除供应商服务相关代码并更新测试配置

---
 yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/md/autocode/MesMdAutoCodeRecordServiceImplTest.java |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/md/autocode/MesMdAutoCodeRecordServiceImplTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/md/autocode/MesMdAutoCodeRecordServiceImplTest.java
index a566df9..275e13c 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/md/autocode/MesMdAutoCodeRecordServiceImplTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/md/autocode/MesMdAutoCodeRecordServiceImplTest.java
@@ -99,6 +99,42 @@
     }
 
     @Test
+    public void testGenerateAutoCode_retryWhenResultExists() {
+        // 鍑嗗鍙傛暟
+        String ruleCode = "DV_MACHINERY_CODE";
+        MesMdAutoCodeRuleDO rule = new MesMdAutoCodeRuleDO().setId(5L).setCode(ruleCode).setPadded(false);
+        MesMdAutoCodePartDO part1 = new MesMdAutoCodePartDO().setType(MesMdAutoCodePartTypeEnum.FIXED_CHAR.getType())
+                .setFixCharacter("M").setLength(1).setSort(1);
+        MesMdAutoCodePartDO part2 = new MesMdAutoCodePartDO().setType(MesMdAutoCodePartTypeEnum.SERIAL_NUMBER.getType())
+                .setSerialStartNo(1).setSerialStep(1).setLength(5).setSort(2).setCycleFlag(false);
+        // mock
+        when(ruleService.getAutoCodeRuleByCode(ruleCode)).thenReturn(rule);
+        when(partService.getAutoCodePartListByRuleId(5L)).thenReturn(Arrays.asList(part1, part2));
+        when(fixedCharStrategy.generate(eq(part1), any(MesMdAutoCodeContext.class))).thenReturn("M");
+        long[] serialNoRef = {0L};
+        when(serialNumberStrategy.generate(eq(part2), any(MesMdAutoCodeContext.class))).thenAnswer(invocation -> {
+            MesMdAutoCodeContext context = invocation.getArgument(1);
+            long serialNo = ++serialNoRef[0];
+            context.setSerialNo(serialNo);
+            return String.format("%05d", serialNo);
+        });
+        when(recordMapper.selectByResult("M00001")).thenReturn(new MesMdAutoCodeRecordDO());
+        when(recordMapper.selectByResult("M00002")).thenReturn(new MesMdAutoCodeRecordDO());
+        when(recordMapper.selectByResult("M00003")).thenReturn(null);
+
+        // 璋冪敤
+        String result = recordService.generateAutoCode(ruleCode, null);
+        // 鏂█
+        assertEquals("M00003", result);
+        ArgumentCaptor<MesMdAutoCodeRecordDO> captor = ArgumentCaptor.forClass(MesMdAutoCodeRecordDO.class);
+        verify(recordMapper).insert(captor.capture());
+        MesMdAutoCodeRecordDO record = captor.getValue();
+        assertEquals(5L, record.getRuleId());
+        assertEquals("M00003", record.getResult());
+        assertEquals(3L, record.getSerialNo());
+    }
+
+    @Test
     public void testGenerateAutoCode_withInputChar() {
         // 鍑嗗鍙傛暟
         String ruleCode = "CLIENT_CODE";

--
Gitblit v1.9.3