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/SeedQualityScanTest.java |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityScanTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityScanTest.java
index c1d5b84..887c717 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityScanTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/SeedQualityScanTest.java
@@ -6,10 +6,13 @@
 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedQualityDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.pro.bagcode.MesProBagCodeMapper;
 import cn.iocoder.yudao.module.mes.dal.mysql.qc.seedquality.MesQcSeedQualityMapper;
+import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
+import cn.iocoder.yudao.module.mes.service.qc.seedquality.MesQcSeedIndicatorRangeService;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.test.util.ReflectionTestUtils;
 import java.util.Collections;
+import java.util.List;
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
@@ -17,11 +20,19 @@
     private final MesQcSeedQualityServiceImpl service = new MesQcSeedQualityServiceImpl();
     private final MesProBagCodeMapper bags = mock(MesProBagCodeMapper.class);
     private final MesQcSeedQualityMapper qualities = mock(MesQcSeedQualityMapper.class);
-    @BeforeEach void setup() { ReflectionTestUtils.setField(service,"bagCodeMapper",bags); ReflectionTestUtils.setField(service,"qualityMapper",qualities); }
+    private final MesMdmItemService items = mock(MesMdmItemService.class);
+    private final MesQcSeedIndicatorRangeService ranges = mock(MesQcSeedIndicatorRangeService.class);
+    @BeforeEach void setup() {
+        ReflectionTestUtils.setField(service,"bagCodeMapper",bags);
+        ReflectionTestUtils.setField(service,"qualityMapper",qualities);
+        ReflectionTestUtils.setField(service,"mdmItemService",items);
+        ReflectionTestUtils.setField(service,"rangeService",ranges);
+        when(ranges.getEffectiveRanges(any())).thenReturn(List.of());
+    }
     private MesProBagCodeDO bag() { return new MesProBagCodeDO().setId(1L).setCode("TRACE").setBusinessCode("BUSINESS").setStatus(20).setInboundEventId(9L).setBatchCode("BATCH"); }
     @Test void businessScanReturnsCanonicalCodeAndPreviousResultWithoutWrites() {
         when(bags.selectByScanCode("BUSINESS")).thenReturn(bag());
-        when(qualities.selectByCode("TRACE")).thenReturn(MesQcSeedQualityDO.builder().id(2L).result(1).build());
+        when(qualities.selectListByCode("TRACE")).thenReturn(List.of(MesQcSeedQualityDO.builder().id(2L).result(1).build()));
         var result = service.resolveScan("BUSINESS");
         assertEquals("TRACE",result.get("code"));assertEquals(2L,result.get("qualityId"));assertEquals(true,result.get("inbound"));
         verify(qualities,never()).insert(any(MesQcSeedQualityDO.class));
@@ -33,14 +44,14 @@
     }
     @Test void duplicateQualityIsRejectedAfterLockingSameBagForBothCodes() {
         when(bags.selectByScanCodeForUpdate("BUSINESS")).thenReturn(bag());
-        var req = new MesQcSeedQualitySubmitReqVO();req.setCode("BUSINESS");
-        when(qualities.selectByCodeForUpdate("TRACE")).thenReturn(MesQcSeedQualityDO.builder().id(2L).result(1).build());
+        var req = new MesQcSeedQualitySubmitReqVO();req.setCode("BUSINESS");req.setQcLine(1);
+        when(qualities.selectListByCodeForUpdate("TRACE")).thenReturn(List.of(MesQcSeedQualityDO.builder().id(2L).result(1).build()));
         req.setIndicators(Collections.nCopies(4,new MesQcSeedQualitySubmitReqVO.Indicator()));
         assertThrows(IllegalArgumentException.class,()->service.submit(req));
-        verify(qualities).selectByCodeForUpdate("TRACE");verify(qualities,never()).insert(any(MesQcSeedQualityDO.class));
+        verify(qualities).selectListByCodeForUpdate("TRACE");verify(qualities,never()).insert(any(MesQcSeedQualityDO.class));
     }
     @Test void unenteredAndCanceledBagsCannotSubmit() {
-        var req = new MesQcSeedQualitySubmitReqVO();req.setCode("BUSINESS");req.setIndicators(Collections.nCopies(4,new MesQcSeedQualitySubmitReqVO.Indicator()));
+        var req = new MesQcSeedQualitySubmitReqVO();req.setCode("BUSINESS");req.setQcLine(1);req.setIndicators(Collections.nCopies(4,new MesQcSeedQualitySubmitReqVO.Indicator()));
         when(bags.selectByScanCodeForUpdate("BUSINESS")).thenReturn(bag().setInboundEventId(null));
         assertThrows(IllegalArgumentException.class,()->service.submit(req));
         when(bags.selectByScanCodeForUpdate("BUSINESS")).thenReturn(bag().setStatus(30));

--
Gitblit v1.9.3