修复任务详情字段过滤契约
This commit is contained in:
@@ -2257,7 +2257,21 @@ public class ReservationTaskWorkflowServiceImpl implements ReservationTaskWorkfl
|
||||
ReservationTaskSnapshot task,
|
||||
ReservationTaskCardSnapshot taskCard) {
|
||||
JsonNode aiPayload = parseJson(taskCard.aiPayloadJson());
|
||||
return fieldDefinitionProvider.listDefinitions(task.taskCardType(), task.resultType())
|
||||
List<ReservationTaskCardFieldDefinition> allDefinitions =
|
||||
fieldDefinitionProvider.listDefinitions(task.taskCardType(), task.resultType());
|
||||
Map<String, Object> confirmedValues = normalizeStoredFieldValues(
|
||||
task,
|
||||
allDefinitions,
|
||||
fieldValuesFromPayloadJson(taskCard.confirmedPayloadJson()));
|
||||
Map<String, Object> draftValues = normalizeStoredFieldValues(
|
||||
task,
|
||||
allDefinitions,
|
||||
fieldValuesFromPayloadJson(taskCard.draftPayloadJson()));
|
||||
Map<String, Object> effectiveValues = applySystemDerivedFieldDefaults(
|
||||
task,
|
||||
aiPayload,
|
||||
trimToNull(taskCard.confirmedPayloadJson()) == null ? draftValues : confirmedValues);
|
||||
return activeDefinitions(task, aiPayload, effectiveValues)
|
||||
.stream()
|
||||
.map(definition -> toFieldResult(task, definition, aiPayload))
|
||||
.toList();
|
||||
|
||||
@@ -1713,7 +1713,7 @@ class SuperAgentTaskResultControllerTest {
|
||||
.andExpect(jsonPath("$.external_conversation_id").value("thread-mail-detail-matrix-001"))
|
||||
.andExpect(jsonPath("$.conversation_message_count").value(1))
|
||||
.andExpect(jsonPath("$.field_contract_version").value("20260711-p0"))
|
||||
.andExpect(jsonPath("$.fields.length()").value(18))
|
||||
.andExpect(jsonPath("$.fields.length()").value(9))
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='case_keys.confirmation_number')].display_name")
|
||||
.value(contains("Confirmation No.")))
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='case_keys.confirmation_number')].result_type")
|
||||
@@ -1729,7 +1729,11 @@ class SuperAgentTaskResultControllerTest {
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='case_keys.confirmation_number')].write_path")
|
||||
.value(contains("confirmed_payload_json.case_keys.confirmation_number")))
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='case_keys.confirmation_number')].value")
|
||||
.value(contains("CNF-MATRIX-001")));
|
||||
.value(contains("CNF-MATRIX-001")))
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='attachments')].field_path")
|
||||
.isEmpty())
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='extracted_fields.child_room_items[]')].field_path")
|
||||
.isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -716,7 +716,11 @@ class SuperAgentTaskResultP0FixtureRegressionTest {
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='relevant_message_excerpt')].write_target")
|
||||
.value(contains("none")))
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='relevant_message_excerpt')].raw_readonly")
|
||||
.value(contains(true)));
|
||||
.value(contains(true)))
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='case_keys.confirmation_number')].field_path")
|
||||
.isEmpty())
|
||||
.andExpect(jsonPath("$.fields[?(@.field_path=='extracted_fields.child_room_items[]')].field_path")
|
||||
.isEmpty());
|
||||
|
||||
mockMvc.perform(put("/api/reservation/tasks/{taskId}/draft", taskId)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
|
||||
Reference in New Issue
Block a user