From ac2e2b5af3726ee64dc37c3ebf26989a0346f22a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 07 十一月 2026 19:16:05 +0800
Subject: [PATCH] feat(feedback): 优化报工审批流程并增加报工人校验
---
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImplTest.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 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 4cefcbd..40d8c84 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
@@ -5,18 +5,27 @@
import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackApproveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProcessDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderProcessDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceLineDO;
import cn.iocoder.yudao.module.mes.dal.mysql.pro.feedback.MesProFeedbackMapper;
import cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum;
import cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum;
+import cn.iocoder.yudao.module.mes.api.mps.MesProMpsApi;
+import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService;
import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
+import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProcessService;
import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService;
+import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderBomService;
+import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderProcessService;
import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
+import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
import cn.iocoder.yudao.module.mes.service.wm.itemconsume.MesWmItemConsumeService;
+import cn.iocoder.yudao.module.mes.service.wm.productissue.MesWmProductIssueService;
import cn.iocoder.yudao.module.mes.service.wm.productproduce.MesWmProductProduceLineService;
import cn.iocoder.yudao.module.mes.service.wm.productproduce.MesWmProductProduceService;
+import cn.iocoder.yudao.module.mdm.api.item.MdmItemBatchConfigApi;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
@@ -44,9 +53,15 @@
private MesProFeedbackMapper feedbackMapper;
@MockitoBean
+ private MesFeedbackParamService feedbackParamService;
+ @MockitoBean
private MesProWorkOrderService workOrderService;
@MockitoBean
private MesProRouteProcessService routeProcessService;
+ @MockitoBean
+ private MesProWorkOrderBomService workOrderBomService;
+ @MockitoBean
+ private MesProWorkOrderProcessService workOrderProcessService;
@MockitoBean
private MesMdWorkstationService workstationService;
@MockitoBean
@@ -54,9 +69,21 @@
@MockitoBean
private MesWmItemConsumeService itemConsumeService;
@MockitoBean
+ private MesWmProductIssueService productIssueService;
+ @MockitoBean
private MesWmProductProduceService productProduceService;
@MockitoBean
private MesWmProductProduceLineService produceLineService;
+ @MockitoBean
+ private MesProMpsApi mpsApi;
+ @MockitoBean
+ private MesMdAutoCodeRecordService autoCodeRecordService;
+ @MockitoBean
+ private MesMdmItemService mdmItemService;
+ @MockitoBean
+ private MdmItemBatchConfigApi itemBatchConfigApi;
+ @MockitoBean
+ private MesQcTemplateItemService templateItemService;
@Test
public void testUpdateProFeedbackWhenIpqcFinish_success_withUnqualified() {
@@ -69,6 +96,7 @@
o.setTaskId(taskId);
o.setWorkOrderId(workOrderId);
o.setFeedbackQuantity(BigDecimal.valueOf(100));
+ resetFeedbackQuantities(o);
});
feedbackMapper.insert(feedback);
@@ -83,6 +111,7 @@
.build();
when(produceLineService.getProductProduceLineListByFeedbackId(feedback.getId()))
.thenReturn(ListUtil.of(qualifiedLine, unqualifiedLine));
+ mockLastProcess(feedback.getProcessId());
// 璋冪敤
BigDecimal qualifiedQty = BigDecimal.valueOf(80);
@@ -127,6 +156,7 @@
o.setTaskId(taskId);
o.setWorkOrderId(workOrderId);
o.setFeedbackQuantity(BigDecimal.valueOf(50));
+ resetFeedbackQuantities(o);
});
feedbackMapper.insert(feedback);
@@ -137,6 +167,7 @@
.build();
when(produceLineService.getProductProduceLineListByFeedbackId(feedback.getId()))
.thenReturn(ListUtil.of(qualifiedLine));
+ mockLastProcess(feedback.getProcessId());
// 璋冪敤
feedbackService.updateProFeedbackWhenIpqcFinish(feedback.getId(), randomLongId(),
@@ -405,4 +436,21 @@
verify(productProduceService, never()).generateProductProduce(any(), anyBoolean(), any());
}
+ /** 娓呴櫎闅忔満鐢熸垚鐨勭疮璁℃暟閲忥紝渚夸簬鏂█鏈妫�楠岀殑鍥炲啓缁撴灉 */
+ private void resetFeedbackQuantities(MesProFeedbackDO feedback) {
+ feedback.setQualifiedQuantity(BigDecimal.ZERO);
+ feedback.setUnqualifiedQuantity(BigDecimal.ZERO);
+ feedback.setLaborScrapQuantity(BigDecimal.ZERO);
+ feedback.setMaterialScrapQuantity(BigDecimal.ZERO);
+ feedback.setOtherScrapQuantity(BigDecimal.ZERO);
+ feedback.setUncheckQuantity(BigDecimal.ZERO);
+ }
+
+ /** 鏈亾宸ュ簭杩斿洖褰撳墠鎶ュ伐宸ュ簭锛岄獙璇佷换鍔′笌宸ュ崟鐨勮繘搴﹀洖鍐� */
+ private void mockLastProcess(Long processId) {
+ MesProWorkOrderProcessDO lastProcess = new MesProWorkOrderProcessDO();
+ lastProcess.setProcessId(processId);
+ when(workOrderProcessService.getLastWorkOrderProcessByWorkOrderId(any())).thenReturn(lastProcess);
+ }
+
}
--
Gitblit v1.9.3