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/wm/productsales/MesWmProductSalesLineServiceImplTest.java |   43 ++++++++++++++++++++++++++++++-------------
 1 files changed, 30 insertions(+), 13 deletions(-)

diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImplTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImplTest.java
index 706bbff..22ceb15 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImplTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImplTest.java
@@ -10,8 +10,11 @@
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.bean.override.mockito.MockitoBean;
 
-import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
+import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi;
+import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
+import cn.iocoder.yudao.module.mes.service.qc.oqc.MesQcOqcService;
 import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService;
+import cn.iocoder.yudao.module.mes.service.wm.salesnotice.MesWmSalesNoticeLineService;
 
 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
@@ -39,9 +42,15 @@
     private MesWmProductSalesDetailService productSalesDetailService;
 
     @MockitoBean
-    private MesMdItemService itemService;
+    private MesMdmItemService mdmItemService;
     @MockitoBean
     private MesWmBatchService batchService;
+    @MockitoBean
+    private MesWmSalesNoticeLineService salesNoticeLineService;
+    @MockitoBean
+    private MesQcOqcService oqcService;
+    @MockitoBean
+    private ErpSaleOrderApi saleOrderApi;
 
     @Test
     public void testUpdateProductSalesLineWhenOqcFinish_pass() {
@@ -63,13 +72,15 @@
         MesWmProductSalesLineDO updateLine = productSalesLineMapper.selectById(lineDO.getId());
         assertEquals(oqcId, updateLine.getOqcId());
         assertEquals(MesWmQualityStatusEnum.PASS.getStatus(), updateLine.getQualityStatus());
+        // 鏂█锛氬叏閮ㄩ渶妫�琛屽悎鏍� 鈫� 鍑哄簱鍗曡嚜鍔ㄦ祦杞緟鎷h揣
+        verify(productSalesService).confirmProductSales(lineDO.getSalesId());
     }
 
     @Test
     public void testUpdateProductSalesLineWhenOqcFinish_fail() {
-        // 鍑嗗鍙傛暟
+        // 鍑嗗鍙傛暟锛�2 琛ㄧず鏍¢獙涓嶉�氳繃
         Long oqcId = randomLongId();
-        Integer checkResult = MesQcCheckResultEnum.QUALIFIED.getType();
+        Integer checkResult = 2;
 
         // mock 鏁版嵁
         MesWmProductSalesLineDO lineDO = randomPojo(MesWmProductSalesLineDO.class, o -> {
@@ -85,10 +96,13 @@
         MesWmProductSalesLineDO updateLine = productSalesLineMapper.selectById(lineDO.getId());
         assertEquals(oqcId, updateLine.getOqcId());
         assertEquals(MesWmQualityStatusEnum.FAIL.getStatus(), updateLine.getQualityStatus());
+        // 鏂█锛氬瓨鍦ㄤ笉鍚堟牸琛屾椂淇濇寔寰呮娴嬶紝涓嶈嚜鍔ㄥ彇娑堟暣寮犲嚭搴撳崟
+        verify(productSalesService, never()).cancelProductSales(anyLong());
+        verify(productSalesService, never()).confirmProductSales(anyLong());
     }
 
     @Test
-    public void testUpdateProductSalesLineWhenOqcFinish_cancelWhenNg() {
+    public void testUpdateProductSalesLineWhenOqcFinish_noCancelWhenNg() {
         // 鍑嗗鏁版嵁锛氬悓涓�鍑哄簱鍗曚笅 2 琛岋紝绗� 1 琛屽凡鍚堟牸锛岀 2 琛屽嵆灏嗗彉鏇翠负涓嶅悎鏍�
         Long salesId = randomLongId();
         MesWmProductSalesLineDO line1 = randomPojo(MesWmProductSalesLineDO.class, o -> {
@@ -107,14 +121,15 @@
 
         // 璋冪敤锛氱 2 琛岃川妫�涓嶅悎鏍�
         productSalesLineService.updateProductSalesLineWhenOqcFinish(
-                line2.getId(), randomLongId(), MesQcCheckResultEnum.QUALIFIED.getType());
+                line2.getId(), randomLongId(), 2);
 
-        // 鏂█锛氬簲璇ヨ皟鐢� cancelProductSales
-        verify(productSalesService).cancelProductSales(eq(salesId));
+        // 鏂█锛氫笉鍚堟牸琛岀暀寰呭悗缁缃紝涓嶈兘鑷姩鍙栨秷鍑哄簱鍗�
+        verify(productSalesService, never()).cancelProductSales(anyLong());
+        verify(productSalesService, never()).confirmProductSales(anyLong());
     }
 
     @Test
-    public void testUpdateProductSalesLineWhenOqcFinish_noCancelWhenAllPass() {
+    public void testUpdateProductSalesLineWhenOqcFinish_confirmWhenAllPass() {
         // 鍑嗗鏁版嵁锛氬悓涓�鍑哄簱鍗曚笅 2 琛岋紝绗� 1 琛屽凡鍚堟牸锛岀 2 琛屽嵆灏嗗彉鏇翠负鍚堟牸
         Long salesId = randomLongId();
         MesWmProductSalesLineDO line1 = randomPojo(MesWmProductSalesLineDO.class, o -> {
@@ -135,7 +150,8 @@
         productSalesLineService.updateProductSalesLineWhenOqcFinish(
                 line2.getId(), randomLongId(), MesQcCheckResultEnum.QUALIFIED.getType());
 
-        // 鏂█锛氫笉搴旇璋冪敤 cancelProductSales
+        // 鏂█锛氬叏閮ㄩ渶妫�琛屽悎鏍� 鈫� 娴佽浆寰呮嫞璐э紝涓嶅彇娑堝嚭搴撳崟
+        verify(productSalesService).confirmProductSales(eq(salesId));
         verify(productSalesService, never()).cancelProductSales(anyLong());
     }
 
@@ -157,12 +173,13 @@
         });
         productSalesLineMapper.insert(line2);
 
-        // 璋冪敤锛氱 2 琛岃川妫�涓嶅悎鏍�
+        // 璋冪敤锛氱 2 琛岃川妫�鍚堟牸
         productSalesLineService.updateProductSalesLineWhenOqcFinish(
                 line2.getId(), randomLongId(), MesQcCheckResultEnum.QUALIFIED.getType());
 
-        // 鏂█锛氱 2 琛屼笉鍚堟牸 鈫� 搴旇鍙栨秷鍑哄簱鍗�
-        verify(productSalesService).cancelProductSales(eq(salesId));
+        // 鏂█锛氭湭鍕鹃�夊嚭璐ф楠岀殑琛屼笉鍙備笌寰呮鍒ゆ柇 鈫� 鍏ㄩ儴闇�妫�琛屽悎鏍煎悗娴佽浆寰呮嫞璐�
+        verify(productSalesService).confirmProductSales(eq(salesId));
+        verify(productSalesService, never()).cancelProductSales(anyLong());
     }
 
 }

--
Gitblit v1.9.3