| | |
| | | |
| | | import cn.hutool.core.collection.ListUtil; |
| | | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| | | 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.wm.productproduce.MesWmProductProduceDO; |
| | |
| | | |
| | | // mock: 产品产出单 |
| | | MesWmProductProduceDO produce = randomPojo(MesWmProductProduceDO.class); |
| | | when(productProduceService.generateProductProduce(any(), eq(false))).thenReturn(produce); |
| | | when(productProduceService.generateProductProduce(any(), eq(false), any())).thenReturn(produce); |
| | | |
| | | // mock: 产出行(用于 updateTaskAndWorkOrderByFeedback) |
| | | MesWmProductProduceLineDO qualifiedLine = MesWmProductProduceLineDO.builder() |
| | |
| | | .thenReturn(ListUtil.of(qualifiedLine)); |
| | | |
| | | // 调用 |
| | | boolean result = feedbackService.approveFeedback(feedback.getId()); |
| | | MesProFeedbackApproveReqVO reqVO = new MesProFeedbackApproveReqVO(); |
| | | reqVO.setId(feedback.getId()); |
| | | boolean result = feedbackService.approveFeedback(reqVO); |
| | | |
| | | // 断言 1:返回 true(已完成) |
| | | assertTrue(result); |
| | |
| | | assertEquals(0, BigDecimal.ZERO.compareTo(updated.getUncheckQuantity())); |
| | | |
| | | // 断言 3:调用了产出单生成 + 入库 + 任务/工单更新 |
| | | verify(productProduceService).generateProductProduce(any(), eq(false)); |
| | | verify(productProduceService).generateProductProduce(any(), eq(false), any()); |
| | | verify(productProduceService).finishProductProduce(produce.getId()); |
| | | verify(taskService).updateProducedQuantity(eq(feedback.getTaskId()), |
| | | any(BigDecimal.class), any(BigDecimal.class), any(BigDecimal.class)); |
| | |
| | | .thenReturn(routeProcess); |
| | | |
| | | // 调用 |
| | | boolean result = feedbackService.approveFeedback(feedback.getId()); |
| | | MesProFeedbackApproveReqVO reqVO = new MesProFeedbackApproveReqVO(); |
| | | reqVO.setId(feedback.getId()); |
| | | boolean result = feedbackService.approveFeedback(reqVO); |
| | | |
| | | // 断言 1:返回 false(待检验) |
| | | assertFalse(result); |
| | |
| | | assertEquals(MesProFeedbackStatusEnum.UNCHECK.getStatus(), updated.getStatus()); |
| | | |
| | | // 断言 3:生成了待检产出单,但没有 finishProductProduce |
| | | verify(productProduceService).generateProductProduce(any(), eq(true)); |
| | | verify(productProduceService).generateProductProduce(any(), eq(true), any()); |
| | | verify(productProduceService, never()).finishProductProduce(anyLong()); |
| | | |
| | | // 断言 4:没有更新任务/工单数量(等 IPQC 回调) |
| | |
| | | .thenReturn(routeProcess); |
| | | |
| | | // 调用 |
| | | boolean result = feedbackService.approveFeedback(feedback.getId()); |
| | | MesProFeedbackApproveReqVO reqVO = new MesProFeedbackApproveReqVO(); |
| | | reqVO.setId(feedback.getId()); |
| | | boolean result = feedbackService.approveFeedback(reqVO); |
| | | |
| | | // 断言 1:返回 true(已完成) |
| | | assertTrue(result); |
| | |
| | | assertEquals(MesProFeedbackStatusEnum.FINISHED.getStatus(), updated.getStatus()); |
| | | |
| | | // 断言 3:不生成产出单,不更新任务/工单 |
| | | verify(productProduceService, never()).generateProductProduce(any(), anyBoolean()); |
| | | verify(productProduceService, never()).generateProductProduce(any(), anyBoolean(), any()); |
| | | verify(taskService, never()).updateProducedQuantity(anyLong(), any(), any(), any()); |
| | | } |
| | | |
| | |
| | | .thenReturn(routeProcess); |
| | | |
| | | // 调用,应该抛异常 |
| | | MesProFeedbackApproveReqVO reqVO = new MesProFeedbackApproveReqVO(); |
| | | reqVO.setId(feedback.getId()); |
| | | assertThrows(Exception.class, () -> |
| | | feedbackService.approveFeedback(feedback.getId())); |
| | | feedbackService.approveFeedback(reqVO)); |
| | | |
| | | // 断言:不应该执行任何后续操作 |
| | | verify(productProduceService, never()).generateProductProduce(any(), anyBoolean()); |
| | | verify(productProduceService, never()).generateProductProduce(any(), anyBoolean(), any()); |
| | | verify(itemConsumeService, never()).generateItemConsume(any()); |
| | | } |
| | | |
| | |
| | | .thenReturn(routeProcess); |
| | | |
| | | // 调用 |
| | | boolean result = feedbackService.approveFeedback(feedback.getId()); |
| | | MesProFeedbackApproveReqVO reqVO = new MesProFeedbackApproveReqVO(); |
| | | reqVO.setId(feedback.getId()); |
| | | boolean result = feedbackService.approveFeedback(reqVO); |
| | | |
| | | // 断言 1:返回 true(直接完成,不走 UNCHECK) |
| | | assertTrue(result); |
| | |
| | | assertEquals(0, BigDecimal.ZERO.compareTo(updated.getUncheckQuantity())); |
| | | |
| | | // 断言 3:非关键工序不生成产出单 |
| | | verify(productProduceService, never()).generateProductProduce(any(), anyBoolean()); |
| | | verify(productProduceService, never()).generateProductProduce(any(), anyBoolean(), any()); |
| | | } |
| | | |
| | | } |