Junjie
2026-04-27 46c78237f73d07f8c7d3d74a089e4cd96b72110e
fix: increase max out task tune step
2个文件已修改
36 ■■■■■ 已修改文件
src/main/java/com/zy/ai/domain/autotune/AutoTuneRuleDefinition.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/zy/ai/service/AutoTuneApplyServiceImplTest.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ai/domain/autotune/AutoTuneRuleDefinition.java
@@ -28,9 +28,9 @@
        add(ruleMap, AutoTuneTargetType.SYS_CONFIG, "conveyorStationTaskLimit", 5, 200, 5, 20, false);
        add(ruleMap, AutoTuneTargetType.SYS_CONFIG, "crnOutBatchRunningLimit", 1, 20, 2, 20, false);
        add(ruleMap, AutoTuneTargetType.STATION, "outTaskLimit", 0, null, 1, 10, true);
        add(ruleMap, AutoTuneTargetType.CRN, "maxOutTask", 0, 10, 1, 10, false);
        add(ruleMap, AutoTuneTargetType.CRN, "maxOutTask", 0, 10, 3, 10, false);
        add(ruleMap, AutoTuneTargetType.CRN, "maxInTask", 0, 10, 1, 10, false);
        add(ruleMap, AutoTuneTargetType.DUAL_CRN, "maxOutTask", 0, 10, 1, 10, false);
        add(ruleMap, AutoTuneTargetType.DUAL_CRN, "maxOutTask", 0, 10, 3, 10, false);
        add(ruleMap, AutoTuneTargetType.DUAL_CRN, "maxInTask", 0, 10, 1, 10, false);
        return Collections.unmodifiableMap(ruleMap);
    }
src/test/java/com/zy/ai/service/AutoTuneApplyServiceImplTest.java
@@ -195,6 +195,38 @@
    }
    @Test
    void maxOutTaskAllowsStepThreeAndRejectsStepFour() {
        when(basCrnpService.getById(1)).thenReturn(crn(1, 1, 1));
        service.apply(request(true,
                command("crn", "1", "maxOutTask", "4"),
                command("crn", "1", "maxOutTask", "5")
        ));
        List<AiAutoTuneChange> changes = savedChanges();
        assertEquals("dry_run", changes.get(0).getResultStatus());
        assertEquals("4", changes.get(0).getRequestedValue());
        assertEquals("rejected", changes.get(1).getResultStatus());
        assertTrue(changes.get(1).getRejectReason().contains("步长不能超过 3"));
    }
    @Test
    void dualCrnMaxOutTaskAllowsStepThreeAndRejectsStepFour() {
        when(basDualCrnpService.getById(2)).thenReturn(dualCrn(2, 1, 1));
        service.apply(request(true,
                command("dual_crn", "2", "maxOutTask", "4"),
                command("dual_crn", "2", "maxOutTask", "5")
        ));
        List<AiAutoTuneChange> changes = savedChanges();
        assertEquals("dry_run", changes.get(0).getResultStatus());
        assertEquals("4", changes.get(0).getRequestedValue());
        assertEquals("rejected", changes.get(1).getResultStatus());
        assertTrue(changes.get(1).getRejectReason().contains("步长不能超过 3"));
    }
    @Test
    void rejectStationOutTaskLimitAboveDirectionalBufferCapacity() {
        when(basStationService.getById(101)).thenReturn(station(101, 1, 2));