fix(case): preserve full structured summary

This commit is contained in:
2026-07-14 05:07:41 +08:00
parent 1fbffe98f7
commit 98c148609c
2 changed files with 7 additions and 1 deletions
@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@@ -79,6 +80,9 @@ public class AihrCaseService {
CaseState state = requireCase(request == null ? null : request.caseId(), projectScopes);
List<SummaryResponse> summary = state.summary() == null ? localSummary(state).summary() : state.summary();
String title = caseTitle(summary, state.fileName());
String detailSummary = summary.stream()
.map(item -> item.label() + ":" + item.text())
.collect(Collectors.joining("\n"));
RecordResponse record = new RecordResponse(
state.id(),
title,
@@ -86,7 +90,7 @@ public class AihrCaseService {
"已入库",
LocalDateTime.now().format(TIME_FORMAT),
"培训组",
summary.stream().map(item -> item.label() + ":" + item.text()).findFirst().orElse(state.transcript())
detailSummary.isBlank() ? state.transcript() : detailSummary
);
saveCase(state, "已入库", record.title(), record.summary());
return new CurateResponse(List.of(state.id()), List.of(record), "已按真实转写内容生成培训案例,已进入案例库。");
@@ -56,6 +56,8 @@ class AihrCaseServiceTest {
assertEquals(List.of("persisted-case"), response.selectedCaseIds());
assertEquals("已入库", response.records().get(0).status());
assertEquals("persisted-case", jdbcTemplate.lastCaseId);
assertTrue(response.records().get(0).summary().contains("背景:"));
assertTrue(response.records().get(0).summary().contains("亮点:"));
}
@Test