From 5072520172e8f45e3ccb8afc26cf0c8186ba4cdd Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 19 十月 2026 16:31:42 +0800
Subject: [PATCH] refactor(mes): 重构质量管理和批次绑定功能
---
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImplTest.java | 99 ++-----------------------------------------------
1 files changed, 5 insertions(+), 94 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 d24b047..c829afa 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
@@ -2,7 +2,6 @@
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.oqc.MesQcOqcDO;
-import cn.iocoder.yudao.module.mes.controller.admin.qc.oqc.vo.MesQcOqcRetestReqVO;
import cn.iocoder.yudao.module.mes.dal.mysql.qc.oqc.MesQcOqcMapper;
import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
@@ -76,9 +75,6 @@
o.setSourceDocType(MesBizTypeConstants.WM_PRODUCT_SALES);
o.setSourceLineId(sourceLineId);
o.setCheckResult(checkResult);
- o.setUnqualifiedQuantity(java.math.BigDecimal.ZERO);
- o.setQualifiedQuantity(java.math.BigDecimal.TEN);
- o.setCheckQuantity(java.math.BigDecimal.TEN);
});
oqcMapper.insert(oqc);
@@ -88,83 +84,9 @@
// 鏂█锛氶獙璇佺姸鎬佹洿鏂颁负宸插畬鎴�
MesQcOqcDO updatedOqc = oqcMapper.selectById(oqc.getId());
assertEquals(MesQcStatusEnum.FINISHED.getStatus(), updatedOqc.getStatus());
- assertEquals(20, updatedOqc.getWorkflowStatus());
- // 鍒濇瀹屾垚涓嶆斁琛岋紱閿�鍞儴鍜屽叕鍙歌川妫�鍧囧鎵瑰悗鎵嶅洖鍐欍��
- verify(productSalesLineService, never()).updateProductSalesLineWhenOqcFinish(anyLong(), anyLong(), anyInt());
- oqcService.salesApprove(oqc.getId(), true, "閿�鍞儴鍚屾剰");
- oqcService.companyApprove(oqc.getId(), true, "鍏徃璐ㄦ鍚屾剰");
+ // 鏂█锛氶獙璇佸洖鍐欓攢鍞嚭搴撳崟琛�
verify(productSalesLineService).updateProductSalesLineWhenOqcFinish(
eq(sourceLineId), eq(oqc.getId()), eq(checkResult));
- }
-
- @Test
- public void testFailedInitialRetestPassOnlyReleasesAfterBothApprovals() {
- Long sourceLineId = randomLongId();
- MesQcOqcDO oqc = randomPojo(MesQcOqcDO.class, o -> {
- o.setStatus(MesQcStatusEnum.DRAFT.getStatus());
- o.setSourceDocType(MesBizTypeConstants.WM_PRODUCT_SALES);
- o.setSourceLineId(sourceLineId);
- o.setOutQuantity(java.math.BigDecimal.valueOf(100));
- o.setCheckQuantity(java.math.BigDecimal.TEN);
- o.setQualifiedQuantity(java.math.BigDecimal.valueOf(9));
- o.setUnqualifiedQuantity(java.math.BigDecimal.ONE);
- o.setCheckResult(2);
- });
- oqcMapper.insert(oqc);
- oqcService.finishOqc(oqc.getId());
- assertEquals(10, oqcMapper.selectById(oqc.getId()).getWorkflowStatus());
- verifyNoInteractions(ncrService);
- verify(productSalesLineService, never()).updateProductSalesLineWhenOqcFinish(anyLong(), anyLong(), anyInt());
-
- MesQcOqcRetestReqVO retest = new MesQcOqcRetestReqVO();
- retest.setId(oqc.getId());
- retest.setCheckQuantity(java.math.BigDecimal.TEN);
- retest.setQualifiedQuantity(java.math.BigDecimal.TEN);
- retest.setUnqualifiedQuantity(java.math.BigDecimal.ZERO);
- retest.setCheckResult(1);
- oqcService.retestOqc(retest);
- assertEquals(20, oqcMapper.selectById(oqc.getId()).getWorkflowStatus());
- oqcService.salesApprove(oqc.getId(), true, "閿�鍞儴閫氳繃");
- assertEquals(30, oqcMapper.selectById(oqc.getId()).getWorkflowStatus());
- verify(productSalesLineService, never()).updateProductSalesLineWhenOqcFinish(anyLong(), anyLong(), anyInt());
- oqcService.companyApprove(oqc.getId(), true, "鍏徃璐ㄦ閫氳繃");
- assertEquals(40, oqcMapper.selectById(oqc.getId()).getWorkflowStatus());
- verify(productSalesLineService).updateProductSalesLineWhenOqcFinish(sourceLineId, oqc.getId(), 1);
- verifyNoInteractions(ncrService);
- }
-
- @Test
- public void testFailedRetestCreatesNcrOnlyAfterCompanyApproval() {
- Long sourceLineId = randomLongId();
- MesQcOqcDO oqc = randomPojo(MesQcOqcDO.class, o -> {
- o.setStatus(MesQcStatusEnum.DRAFT.getStatus());
- o.setSourceDocType(MesBizTypeConstants.WM_PRODUCT_SALES);
- o.setSourceLineId(sourceLineId);
- o.setOutQuantity(java.math.BigDecimal.valueOf(100));
- o.setCheckQuantity(java.math.BigDecimal.TEN);
- o.setQualifiedQuantity(java.math.BigDecimal.valueOf(9));
- o.setUnqualifiedQuantity(java.math.BigDecimal.ONE);
- o.setCheckResult(2);
- });
- oqcMapper.insert(oqc);
- oqcService.finishOqc(oqc.getId());
- MesQcOqcRetestReqVO retest = new MesQcOqcRetestReqVO();
- retest.setId(oqc.getId());
- retest.setCheckQuantity(java.math.BigDecimal.TEN);
- retest.setQualifiedQuantity(java.math.BigDecimal.valueOf(8));
- retest.setUnqualifiedQuantity(java.math.BigDecimal.valueOf(2));
- retest.setCheckResult(2);
- retest.setOpinion("澶嶆浠嶄笉鍚堟牸");
- oqcService.retestOqc(retest);
- assertEquals(50, oqcMapper.selectById(oqc.getId()).getWorkflowStatus());
- verifyNoInteractions(ncrService);
- oqcService.salesApprove(oqc.getId(), true, "閿�鍞儴纭涓嶅悎鏍�");
- assertEquals(60, oqcMapper.selectById(oqc.getId()).getWorkflowStatus());
- verifyNoInteractions(ncrService);
- oqcService.companyApprove(oqc.getId(), true, "鍏徃璐ㄦ纭涓嶅悎鏍�");
- assertEquals(70, oqcMapper.selectById(oqc.getId()).getWorkflowStatus());
- verify(ncrService).createNcr(any());
- verify(productSalesLineService).updateProductSalesLineWhenOqcFinish(sourceLineId, oqc.getId(), 2);
}
@Test
@@ -173,9 +95,6 @@
MesQcOqcDO oqc = randomPojo(MesQcOqcDO.class, o -> {
o.setStatus(MesQcStatusEnum.DRAFT.getStatus());
o.setCheckResult(1);
- o.setUnqualifiedQuantity(java.math.BigDecimal.ZERO);
- o.setQualifiedQuantity(java.math.BigDecimal.TEN);
- o.setCheckQuantity(java.math.BigDecimal.TEN);
o.setSourceDocType(null);
o.setSourceLineId(null);
});
@@ -198,17 +117,13 @@
MesQcOqcDO oqc = randomPojo(MesQcOqcDO.class, o -> {
o.setStatus(MesQcStatusEnum.DRAFT.getStatus());
o.setCheckResult(1);
- o.setUnqualifiedQuantity(java.math.BigDecimal.ZERO);
- o.setQualifiedQuantity(java.math.BigDecimal.TEN);
- o.setCheckQuantity(java.math.BigDecimal.TEN);
o.setSourceDocType(MesBizTypeConstants.WM_PRODUCT_SALES);
o.setSourceLineId(null); // 鑴忔暟鎹�
});
oqcMapper.insert(oqc);
- oqcService.finishOqc(oqc.getId());
- oqcService.salesApprove(oqc.getId(), true, "閿�鍞儴鍚屾剰");
- assertThrows(IllegalArgumentException.class, () -> oqcService.companyApprove(oqc.getId(), true, "鍏徃璐ㄦ鍚屾剰"));
+ // 璋冪敤锛屽苟鏂█寮傚父
+ assertThrows(IllegalArgumentException.class, () -> oqcService.finishOqc(oqc.getId()));
}
@Test
@@ -217,17 +132,13 @@
MesQcOqcDO oqc = randomPojo(MesQcOqcDO.class, o -> {
o.setStatus(MesQcStatusEnum.DRAFT.getStatus());
o.setCheckResult(1);
- o.setUnqualifiedQuantity(java.math.BigDecimal.ZERO);
- o.setQualifiedQuantity(java.math.BigDecimal.TEN);
- o.setCheckQuantity(java.math.BigDecimal.TEN);
o.setSourceDocType(99999); // 鏃犳硶璇嗗埆鐨勭被鍨�
o.setSourceLineId(randomLongId());
});
oqcMapper.insert(oqc);
- oqcService.finishOqc(oqc.getId());
- oqcService.salesApprove(oqc.getId(), true, "閿�鍞儴鍚屾剰");
- assertThrows(IllegalArgumentException.class, () -> oqcService.companyApprove(oqc.getId(), true, "鍏徃璐ㄦ鍚屾剰"));
+ // 璋冪敤锛屽苟鏂█寮傚父
+ assertThrows(IllegalArgumentException.class, () -> oqcService.finishOqc(oqc.getId()));
}
@Test
--
Gitblit v1.9.3