From 6b8585fc452ecdcaa82d86fab79a9f27bb442851 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 十一月 2026 09:13:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_南通_苏珩' into dev_南通_苏珩

---
 yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImplTest.java |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImplTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImplTest.java
index 6165ed5..9f62951 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImplTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImplTest.java
@@ -23,12 +23,14 @@
 import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProductService;
 import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
+import cn.iocoder.yudao.module.mes.service.qc.MesQcCompletionHelper;
 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
 import cn.iocoder.yudao.module.mes.service.qc.indicatorresult.MesQcIndicatorResultService;
 import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
 import cn.iocoder.yudao.module.mes.service.wm.productproduce.MesWmProductProduceLineService;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import jakarta.annotation.Resource;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.bean.override.mockito.MockitoBean;
@@ -39,6 +41,7 @@
 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
 import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 /**
@@ -86,6 +89,13 @@
     private MesQcIndicatorResultService indicatorResultService;
     @MockitoBean
     private MesWmProductProduceLineService productProduceLineService;
+    @MockitoBean
+    private MesQcCompletionHelper completionHelper;
+
+    @BeforeEach
+    void stubCompletionHelper() {
+        when(completionHelper.validateAndGetResult(anyString(), anyLong(), any(), any(), any())).thenReturn(1);
+    }
 
     @Test
     public void testFinishIpqc_writeBack_feedback() {
@@ -221,17 +231,27 @@
     }
 
     @Test
-    public void testFinishIpqc_checkResultEmpty() {
-        // 鍑嗗鏁版嵁锛歝heckResult 涓虹┖锛屽簲璇ユ姤閿�
+    public void testFinishIpqc_checkResultAutoComputed() {
+        // 鍑嗗鏁版嵁锛氭娴嬬粨璁轰笉鍐嶇敱鐢ㄦ埛濉啓锛屽畬鎴愭椂鎸夊悎鏍�/涓嶅悎鏍兼暟閲忚嚜鍔ㄥ垽瀹�
         MesQcIpqcDO ipqc = randomPojo(MesQcIpqcDO.class, o -> {
             o.setStatus(MesQcStatusEnum.DRAFT.getStatus());
-            o.setCheckResult(null); // 妫�娴嬬粨璁轰负绌�
+            o.setCheckResult(null);
             o.setSourceDocType(null);
+            o.setSourceDocId(null);
+            o.setSourceLineId(null);
+            o.setCheckQuantity(BigDecimal.valueOf(100));
+            o.setQualifiedQuantity(BigDecimal.valueOf(100));
+            o.setUnqualifiedQuantity(BigDecimal.ZERO);
         });
         ipqcMapper.insert(ipqc);
 
-        // 璋冪敤锛屽簲璇ユ姏寮傚父锛堟娴嬬粨璁哄繀濉級
-        assertThrows(Exception.class, () -> ipqcService.finishIpqc(ipqc.getId()));
+        // 璋冪敤
+        ipqcService.finishIpqc(ipqc.getId());
+
+        // 鏂█锛氭娴嬬粨璁虹敱绯荤粺鍒ゅ畾骞跺洖鍐�
+        MesQcIpqcDO updatedIpqc = ipqcMapper.selectById(ipqc.getId());
+        assertEquals(MesQcStatusEnum.FINISHED.getStatus(), updatedIpqc.getStatus());
+        assertEquals(1, updatedIpqc.getCheckResult());
     }
 
     @Test

--
Gitblit v1.9.3