From 10940b706f4311d7e428419cc206a6f7d68daf0e Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期二, 01 九月 2026 13:31:52 +0800
Subject: [PATCH] 修正跨循环工步执行状态

---
 ruoyi-device/src/main/java/com/ruoyi/device/bts/BtsDevelopmentSimulator.java |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/ruoyi-device/src/main/java/com/ruoyi/device/bts/BtsDevelopmentSimulator.java b/ruoyi-device/src/main/java/com/ruoyi/device/bts/BtsDevelopmentSimulator.java
index 87641ff..3ffb9d8 100644
--- a/ruoyi-device/src/main/java/com/ruoyi/device/bts/BtsDevelopmentSimulator.java
+++ b/ruoyi-device/src/main/java/com/ruoyi/device/bts/BtsDevelopmentSimulator.java
@@ -444,11 +444,10 @@
             List<BtsExcelFixture.FixtureRecord> sameCycle = BtsExcelFixture.records().stream()
                     .filter(item -> item.cycleNo() == first.cycleNo() && item.stepNo() == first.stepNo()).toList();
             BtsExcelFixture.FixtureRecord last = sameCycle.get(sameCycle.size() - 1);
-            String status = playback.naturallyFinished() || playback.cycleNo() > first.cycleNo()
-                    || (playback.cycleNo() == first.cycleNo() && playback.stepNo() > first.stepNo())
-                            ? "已完成"
-                            : playback.cycleNo() == first.cycleNo() && playback.stepNo() == first.stepNo()
-                                    ? "进行中" : "待执行";
+            // step 号在每个循环内重复,跨循环时必须按当前循环的工步位置判断,不能把上一循环的同号工步当成当前状态。
+            String status = playback.naturallyFinished() ? "已完成"
+                    : playback.stepNo() > first.stepNo() ? "已完成"
+                            : playback.stepNo() == first.stepNo() ? "进行中" : "待执行";
             rows.add(new BtsTestPlanRow("STEP", first.stepNo(), first.stepName(),
                     Math.max(0d, last.offsetSeconds() - first.offsetSeconds()), first.voltageV(), status,
                     null, null));

--
Gitblit v1.7.1