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

diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImplTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImplTest.java
index 353ca08..fea2cf5 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImplTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImplTest.java
@@ -6,6 +6,7 @@
 import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
 import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
+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.template.MesQcTemplateItemService;
 import cn.iocoder.yudao.module.mes.service.wm.productsales.MesWmProductSalesLineService;
@@ -13,6 +14,7 @@
 import cn.iocoder.yudao.module.mes.service.qc.indicatorresult.MesQcIndicatorResultService;
 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;
@@ -22,7 +24,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.eq;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 /**
@@ -66,6 +68,13 @@
     private AdminUserApi adminUserApi;
     @MockitoBean
     private MesQcIndicatorResultService indicatorResultService;
+    @MockitoBean
+    private MesQcCompletionHelper completionHelper;
+
+    @BeforeEach
+    void stubCompletionHelper() {
+        when(completionHelper.validateAndGetResult(anyString(), anyLong(), any(), any(), any())).thenReturn(1);
+    }
 
     @Test
     public void testFinishOqc_writeBack_productSales() {
@@ -165,17 +174,25 @@
     }
 
     @Test
-    public void testFinishOqc_checkResultEmpty() {
-        // 鍑嗗鏁版嵁锛歝heckResult 涓虹┖锛屽簲璇ユ姤閿�
+    public void testFinishOqc_checkResultAutoComputed() {
+        // 鍑嗗鏁版嵁锛氭娴嬬粨璁轰笉鍐嶇敱鐢ㄦ埛濉啓锛屽畬鎴愭椂鎸夊悎鏍�/涓嶅悎鏍兼暟閲忚嚜鍔ㄥ垽瀹�
         MesQcOqcDO oqc = randomPojo(MesQcOqcDO.class, o -> {
             o.setStatus(MesQcStatusEnum.DRAFT.getStatus());
-            o.setCheckResult(null); // 妫�娴嬬粨璁轰负绌�
+            o.setCheckResult(null);
             o.setSourceDocType(null);
+            o.setCheckQuantity(java.math.BigDecimal.valueOf(100));
+            o.setQualifiedQuantity(java.math.BigDecimal.valueOf(100));
+            o.setUnqualifiedQuantity(java.math.BigDecimal.ZERO);
         });
         oqcMapper.insert(oqc);
 
-        // 璋冪敤锛屽簲璇ユ姏寮傚父锛堟娴嬬粨璁哄繀濉級
-        assertServiceException(() -> oqcService.finishOqc(oqc.getId()), QC_OQC_CHECK_RESULT_EMPTY);
+        // 璋冪敤
+        oqcService.finishOqc(oqc.getId());
+
+        // 鏂█锛氭娴嬬粨璁虹敱绯荤粺鍒ゅ畾骞跺洖鍐�
+        MesQcOqcDO updatedOqc = oqcMapper.selectById(oqc.getId());
+        assertEquals(MesQcStatusEnum.FINISHED.getStatus(), updatedOqc.getStatus());
+        assertEquals(1, updatedOqc.getCheckResult());
     }
 
     @Test

--
Gitblit v1.9.3