From 656cdaf4463b41a168adb83ccc05d8c2f03d4d78 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期四, 27 八月 2026 21:43:20 +0800
Subject: [PATCH] fix(test): allow plan steps after creation
---
ruoyi-system/src/main/java/com/ruoyi/system/domain/TTest.java | 1 -
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestServiceImpl.java | 4 +++-
ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TTestServiceImplTest.java | 20 ++++++++++++++++++++
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TTestServiceImplTest.java b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TTestServiceImplTest.java
index ff783a5..75541e4 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TTestServiceImplTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/TTestServiceImplTest.java
@@ -84,6 +84,26 @@
}
@Test
+ void createShouldAllowPlanStepsToBeConfiguredLater()
+ {
+ TTest test = validTest();
+ test.setPlanSteps(Collections.emptyList());
+ mockEnabledOptions();
+ when(testMapper.insertTest(any(TTest.class))).thenAnswer(invocation -> {
+ invocation.<TTest>getArgument(0).setTestId(10L);
+ return 1;
+ });
+ doAnswer(invocation -> {
+ invocation.<TTestBattery>getArgument(0).setRelationId(20L);
+ return 1;
+ }).when(testMapper).insertTestBattery(any(TTestBattery.class));
+
+ assertEquals(10L, testService.createTest(test));
+
+ verify(testMapper, never()).insertTestPlanStep(any(TTestPlanStep.class));
+ }
+
+ @Test
void createShouldRejectBatteryOutsideSelectedGroup()
{
TTest test = validTest();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TTest.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TTest.java
index 0e27006..5e769dd 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TTest.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TTest.java
@@ -48,7 +48,6 @@
@NotEmpty(message = "测试至少绑定一个电池号")
private List<TTestBattery> batteries;
@Valid
- @NotEmpty(message = "计划工步不能为空")
private List<TTestPlanStep> planSteps;
@Valid
@NotEmpty(message = "阈值配置不能为空")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestServiceImpl.java
index 6a30d81..05d2381 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestServiceImpl.java
@@ -220,6 +220,8 @@
private void validateConfiguration(TTest test)
{
+ // 新建测试只建立业务身份和通道关系,计划工步可在开始监测前补充。
+ if (test.getPlanSteps() == null) test.setPlanSteps(new ArrayList<>());
validateBatteries(test.getBatteries());
validatePlanSteps(test.getPlanSteps());
validateThresholds(test.getThresholds());
@@ -271,7 +273,7 @@
private void validatePlanSteps(List<TTestPlanStep> planSteps)
{
- if (planSteps == null || planSteps.isEmpty()) throw new ServiceException("计划工步不能为空");
+ if (planSteps.isEmpty()) return;
Set<String> identities = new HashSet<>();
Set<Integer> orders = new HashSet<>();
for (TTestPlanStep step : planSteps)
--
Gitblit v1.7.1