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/pro/feedback/MesProFeedbackServiceImplTest.java |   52 ++++++++++++++++++++--------------------------------
 1 files changed, 20 insertions(+), 32 deletions(-)

diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImplTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImplTest.java
index 304cee5..9c14b59 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImplTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImplTest.java
@@ -159,6 +159,7 @@
         assertEquals(0, otherScrapQty.compareTo(updatedFeedback.getOtherScrapQuantity()));
 
         // 浜ч噺宸茬粡鍦ㄦ姤宸ュ鎵规椂绱锛岃川妫�鍥炶皟涓嶈兘閲嶅绱銆�
+        verify(taskService).updateQualityQuantity(taskId, qualifiedQty, unqualifiedQty);
         verify(taskService, never()).updateProducedQuantity(anyLong(), any(), any(), any());
         verify(workOrderService, never()).updateProducedQuantity(anyLong(), any());
     }
@@ -267,35 +268,26 @@
         when(routeProcessService.getRouteProcessByRouteIdAndProcessId(routeId, processId))
                 .thenReturn(routeProcess);
 
-        // mock: 浜у搧浜у嚭鍗�
-        MesWmProductProduceDO produce = randomPojo(MesWmProductProduceDO.class);
-        when(productProduceService.generateProductProduce(any(), eq(false), any())).thenReturn(produce);
-
-        // mock: 浜у嚭琛岋紙鐢ㄤ簬 updateTaskAndWorkOrderByFeedback锛�
+        // 鍏抽敭鏈亾宸ュ簭绱宸ュ崟浜ч噺锛岃川閲忔暟閲忕瓑寰呮楠屻��
         when(workOrderProcessService.getLastWorkOrderProcessByWorkOrderId(feedback.getWorkOrderId()))
                 .thenReturn(new MesProWorkOrderProcessDO().setProcessId(processId));
-        MesWmProductProduceLineDO qualifiedLine = MesWmProductProduceLineDO.builder()
-                .quantity(BigDecimal.valueOf(80))
-                .qualityStatus(MesWmQualityStatusEnum.PASS.getStatus()).build();
-        when(produceLineService.getProductProduceLineListByFeedbackId(feedback.getId()))
-                .thenReturn(ListUtil.of(qualifiedLine));
 
         // 璋冪敤
         MesProFeedbackApproveReqVO reqVO = new MesProFeedbackApproveReqVO();
         reqVO.setId(feedback.getId());
         boolean result = feedbackService.approveFeedback(reqVO);
 
-        // 鏂█ 1锛氳繑鍥� true锛堝凡瀹屾垚锛�
-        assertTrue(result);
+        assertFalse(result);
 
-        // 鏂█ 2锛氱姸鎬佷负宸插畬鎴愶紝uncheckQuantity 娓呴浂
+        // 鏈粡妫�楠岀殑鎶ュ伐涓嶅厑璁哥洿鎺ュ叆搴撱��
         MesProFeedbackDO updated = feedbackMapper.selectById(feedback.getId());
-        assertEquals(MesProFeedbackStatusEnum.FINISHED.getStatus(), updated.getStatus());
-        assertEquals(0, BigDecimal.ZERO.compareTo(updated.getUncheckQuantity()));
+        assertEquals(MesProFeedbackStatusEnum.UNCHECK.getStatus(), updated.getStatus());
+        assertEquals(0, feedback.getFeedbackQuantity().compareTo(updated.getUncheckQuantity()));
+        assertEquals(0, BigDecimal.ZERO.compareTo(updated.getQualifiedQuantity()));
 
         // 鏂█ 3锛氳皟鐢ㄤ簡浜у嚭鍗曠敓鎴� + 鍏ュ簱 + 浠诲姟/宸ュ崟鏇存柊
-        verify(productProduceService).generateProductProduce(any(), eq(false), any());
-        verify(productProduceService).finishProductProduce(produce.getId());
+        verify(productProduceService).generateProductProduce(any(), eq(true), any());
+        verify(productProduceService, never()).finishProductProduce(anyLong());
         verify(taskService).updateProducedQuantity(eq(feedback.getTaskId()),
                 any(BigDecimal.class), any(BigDecimal.class), any(BigDecimal.class));
         verify(workOrderService).updateProducedQuantity(eq(feedback.getWorkOrderId()),
@@ -364,24 +356,21 @@
                 .keyFlag(false).checkFlag(false).build();
         when(routeProcessService.getRouteProcessByRouteIdAndProcessId(routeId, processId))
                 .thenReturn(routeProcess);
-        MesWmProductProduceDO produce = randomPojo(MesWmProductProduceDO.class);
-        when(productProduceService.generateProductProduce(any(), eq(false), any())).thenReturn(produce);
 
         // 璋冪敤
         MesProFeedbackApproveReqVO reqVO = new MesProFeedbackApproveReqVO();
         reqVO.setId(feedback.getId());
         boolean result = feedbackService.approveFeedback(reqVO);
 
-        // 鏂█ 1锛氳繑鍥� true锛堝凡瀹屾垚锛�
-        assertTrue(result);
+        assertFalse(result);
 
         // 鏂█ 2锛氱姸鎬佷负宸插畬鎴�
         MesProFeedbackDO updated = feedbackMapper.selectById(feedback.getId());
-        assertEquals(MesProFeedbackStatusEnum.FINISHED.getStatus(), updated.getStatus());
+        assertEquals(MesProFeedbackStatusEnum.UNCHECK.getStatus(), updated.getStatus());
 
         // 闈炲叧閿伐搴忎篃鐢熸垚浜у嚭骞剁疮璁′换鍔¤繘搴︼紝浣嗕笉绱宸ュ崟鎬讳骇閲忋��
-        verify(productProduceService).generateProductProduce(any(), eq(false), any());
-        verify(productProduceService).finishProductProduce(produce.getId());
+        verify(productProduceService).generateProductProduce(any(), eq(true), any());
+        verify(productProduceService, never()).finishProductProduce(anyLong());
         verify(taskService).updateProducedQuantity(eq(feedback.getTaskId()), any(), any(), any());
         verify(workOrderService, never()).updateProducedQuantity(anyLong(), any());
     }
@@ -407,15 +396,12 @@
         when(routeProcessService.getRouteProcessByRouteIdAndProcessId(routeId, processId))
                 .thenReturn(routeProcess);
 
-        // 璋冪敤锛屽簲璇ユ姏寮傚父
+        // 寰呮鏁伴噺涓嶅啀闃绘闈炴楠屾爣璇嗗伐搴忔姤宸ャ��
         MesProFeedbackApproveReqVO reqVO = new MesProFeedbackApproveReqVO();
         reqVO.setId(feedback.getId());
-        assertThrows(Exception.class, () ->
-                feedbackService.approveFeedback(reqVO));
-
-        // 鏂█锛氫笉搴旇鎵ц浠讳綍鍚庣画鎿嶄綔
-        verify(productProduceService, never()).generateProductProduce(any(), anyBoolean(), any());
-        verify(itemConsumeService, never()).generateItemConsume(any());
+        assertFalse(feedbackService.approveFeedback(reqVO));
+        verify(productProduceService).generateProductProduce(any(), eq(true), any());
+        verify(productProduceService, never()).finishProductProduce(anyLong());
     }
 
     @Test
@@ -450,7 +436,7 @@
         // 璐ㄦ宸ュ簭鏃犺鏄惁鍏抽敭宸ュ簭锛岄兘杩涘叆寰呮楠屻��
         MesProFeedbackDO updated = feedbackMapper.selectById(feedback.getId());
         assertEquals(MesProFeedbackStatusEnum.UNCHECK.getStatus(), updated.getStatus());
-        assertEquals(0, BigDecimal.ZERO.compareTo(updated.getUncheckQuantity()));
+        assertEquals(0, feedback.getFeedbackQuantity().compareTo(updated.getUncheckQuantity()));
 
         verify(productProduceService).generateProductProduce(any(), eq(true), any());
         verify(productProduceService, never()).finishProductProduce(anyLong());
@@ -601,9 +587,11 @@
         MesProFeedbackQuickCreateReqVO req = new MesProFeedbackQuickCreateReqVO();
         req.setTaskId(curTaskId);
         req.setFeedbackQuantity(BigDecimal.TEN);
+        req.setFeedbackTime(java.time.LocalDateTime.of(2026, 10, 20, 9, 30));
         MesProFeedbackQuickCreateRespVO resp = feedbackService.quickCreateFeedback(req);
         assertNotNull(resp);
         assertNotNull(resp.getFeedbackId());
+        assertEquals(req.getFeedbackTime(), feedbackMapper.selectById(resp.getFeedbackId()).getFeedbackTime());
         verify(autoCodeRecordService).generateAutoCode(anyString());
     }
 

--
Gitblit v1.9.3