From ffca46b39d25439a06a27cafda2ec523a3fb67cf Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 27 十月 2026 17:53:02 +0800
Subject: [PATCH] feat(mes): 增加盘号字段支持和优化报工质检流程
---
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImplTest.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImplTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImplTest.java
index 2b26547..a81317b 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImplTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImplTest.java
@@ -3,6 +3,9 @@
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO;
+import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchGenerateReqVO;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemconsume.MesWmItemConsumeDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDO;
@@ -30,6 +33,8 @@
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
+import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_BATCH_REEL_MISMATCH;
/**
* {@link MesWmBatchServiceImpl} 鐨勫崟鍏冩祴璇�
@@ -38,6 +43,13 @@
*/
@Import(MesWmBatchServiceImpl.class)
public class MesWmBatchServiceImplTest extends BaseDbUnitTest {
+
+ @MockitoBean
+ private cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService mdmItemService;
+ @MockitoBean
+ private cn.iocoder.yudao.module.mdm.api.item.MdmItemBatchConfigApi mdmBatchConfigApi;
+ @MockitoBean
+ private cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi customerApi;
@Resource
private MesWmBatchServiceImpl batchService;
@@ -67,6 +79,48 @@
@MockitoBean
private MesWmBarcodeService barcodeService;
+ @Test
+ public void testNonBatchManagedItemUsesDistinctTraceBatchesForReels() {
+ when(mdmItemService.validateItemExists(10L)).thenReturn(new MesMdmItemDO().setId(10L)
+ .setName("浜у搧").setIsBatchManaged(false));
+ when(autoCodeRecordService.generateAutoCode(anyString())).thenReturn("TRACE-1", "TRACE-2");
+ MesWmBatchGenerateReqVO first = new MesWmBatchGenerateReqVO().setItemId(10L)
+ .setWorkOrderId(20L).setReelNo("PAN-1");
+ MesWmBatchGenerateReqVO second = new MesWmBatchGenerateReqVO().setItemId(10L)
+ .setWorkOrderId(20L).setReelNo("PAN-2");
+
+ MesWmBatchDO a = batchService.getOrGenerateBatchCode(first);
+ MesWmBatchDO b = batchService.getOrGenerateBatchCode(second);
+ assertNotNull(a.getId());
+ assertNotEquals(a.getId(), b.getId());
+ assertEquals(a.getId(), batchService.getOrGenerateBatchCode(first).getId());
+ assertEquals("PAN-2", batchMapper.selectById(b.getId()).getReelNo());
+ assertNull(batchService.getOrGenerateBatchCode(new MesWmBatchGenerateReqVO().setItemId(10L)));
+ }
+
+ @Test
+ public void testExistingBatchCannotBeRelabeledWithDifferentReel() {
+ when(mdmItemService.validateItemExists(10L)).thenReturn(new MesMdmItemDO().setId(10L)
+ .setName("浜у搧").setIsBatchManaged(false));
+ batchMapper.insert(new MesWmBatchDO().setCode("EXISTING").setItemId(10L).setReelNo("PAN-1"));
+ MesWmBatchGenerateReqVO request = new MesWmBatchGenerateReqVO().setItemId(10L)
+ .setBatchCode("EXISTING").setReelNo("PAN-2");
+ ServiceException ex = assertThrows(ServiceException.class, () -> batchService.getOrGenerateBatchCode(request));
+ assertEquals(WM_BATCH_REEL_MISMATCH.getCode(), ex.getCode());
+ }
+
+ @Test
+ public void testExistingReelBatchCannotBeReassignedToAnotherOrder() {
+ when(mdmItemService.validateItemExists(10L)).thenReturn(new MesMdmItemDO().setId(10L)
+ .setName("浜у搧").setIsBatchManaged(false));
+ batchMapper.insert(new MesWmBatchDO().setCode("EXISTING").setItemId(10L)
+ .setReelNo("PAN-1").setWorkOrderId(20L));
+ MesWmBatchGenerateReqVO request = new MesWmBatchGenerateReqVO().setItemId(10L)
+ .setBatchCode("EXISTING").setReelNo("PAN-1").setWorkOrderId(21L);
+ ServiceException ex = assertThrows(ServiceException.class, () -> batchService.getOrGenerateBatchCode(request));
+ assertEquals(WM_BATCH_REEL_MISMATCH.getCode(), ex.getCode());
+ }
+
// ==================== 鍚戝墠杩芥函 ====================
@Test
--
Gitblit v1.9.3