From 5663fadb528b1a5770abb1b339090d7b5463a857 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 27 四月 2026 13:49:27 +0800
Subject: [PATCH] fix: align auto tune config seeds and active task snapshot

---
 src/test/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImplTest.java |   37 +++++++++++++++++++++++++++++++++++--
 1 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/src/test/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImplTest.java b/src/test/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImplTest.java
index 24fa5ce..2e4a75d 100644
--- a/src/test/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImplTest.java
+++ b/src/test/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImplTest.java
@@ -1,20 +1,37 @@
 package com.zy.ai.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.zy.asrs.entity.BasStation;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.WrkMastService;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+import org.springframework.test.util.ReflectionTestUtils;
 
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.Map;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 class AutoTuneSnapshotServiceImplTest {
 
+    private AutoTuneSnapshotServiceImpl service;
+
+    @BeforeEach
+    void setUp() {
+        service = new AutoTuneSnapshotServiceImpl();
+    }
+
     @Test
     void buildStationOutTaskLimitMapPreservesNullZeroAndNegativeLimits() {
-        AutoTuneSnapshotServiceImpl service = new AutoTuneSnapshotServiceImpl();
-
         Map<String, Integer> result = service.buildStationOutTaskLimitMap(Arrays.asList(
                 station(101, null),
                 station(102, 0),
@@ -28,6 +45,22 @@
         assertEquals(5, result.get("104"));
     }
 
+    @Test
+    void loadActiveTasksIncludesNullWrkStatusInGroupedCondition() {
+        WrkMastService wrkMastService = mock(WrkMastService.class);
+        when(wrkMastService.list(any(Wrapper.class))).thenReturn(Collections.emptyList());
+        ReflectionTestUtils.setField(service, "wrkMastService", wrkMastService);
+
+        ReflectionTestUtils.invokeMethod(service, "loadActiveTasks");
+
+        ArgumentCaptor<Wrapper<WrkMast>> wrapperCaptor = ArgumentCaptor.forClass(Wrapper.class);
+        verify(wrkMastService).list(wrapperCaptor.capture());
+        String sqlSegment = wrapperCaptor.getValue().getSqlSegment();
+        String normalizedSqlSegment = sqlSegment.replaceAll("\\s+", " ");
+        assertTrue(normalizedSqlSegment.contains("(wrk_sts NOT IN"));
+        assertTrue(normalizedSqlSegment.contains("OR wrk_sts IS NULL"));
+    }
+
     private BasStation station(Integer stationId, Integer outTaskLimit) {
         BasStation station = new BasStation();
         station.setStationId(stationId);

--
Gitblit v1.9.1