Commit 6ae9376c by weiyudumei

fix: 修正 workFlowSessionId 字段名拼写错误

- 将所有 workFlowSeeionId 统一修正为 workFlowSessionId
- 修复流式响应中 workFlowSessionId 字段提取问题
- 清理调试代码,简化逻辑
- 确保 workFlowSessionId 在第二次调用流式接口时正确传递
parent c3794c2d
......@@ -153,7 +153,7 @@ export const Chat: React.FC = () => {
// 在流式响应过程中,忽略服务器返回的 endAnswerFlag,避免过早禁用输入框
const { endAnswerFlag: _omitEndAnswerFlag, ...dataWithoutEndFlag } = msg.content.data || {}
// 保留之前保存的 workFlowSeeionId 和 recordId,避免被覆盖
// 保留之前保存的 workFlowSessionId 和 recordId,避免被覆盖
const existingAnswer = newItems[lastIndex].answerList?.[0] || {}
newItems[lastIndex] = {
...newItems[lastIndex],
......@@ -162,8 +162,8 @@ export const Chat: React.FC = () => {
{
...existingAnswer,
...dataWithoutEndFlag,
// 如果新的数据中没有 workFlowSeeionId,保留之前的值
workFlowSeeionId: dataWithoutEndFlag.workFlowSeeionId ?? existingAnswer.workFlowSeeionId,
// 如果新的数据中没有 workFlowSessionId,保留之前的值
workFlowSessionId: dataWithoutEndFlag.workFlowSessionId ?? existingAnswer.workFlowSessionId,
// 如果新的数据中没有 recordId,保留之前的值
recordId: dataWithoutEndFlag.recordId ?? existingAnswer.recordId,
isShow: false,
......@@ -206,7 +206,7 @@ export const Chat: React.FC = () => {
question: string,
productCode?: string,
toolId?: string,
extraParams?: { paramMap?: Record<string, string>, recordId?: string, recordType?: string, workFlowSeeionId?: string },
extraParams?: { paramMap?: Record<string, string>, recordId?: string, recordType?: string, workFlowSessionId?: string },
) => {
// 优先读取缓存中的 toolId,再回退到传参或 Redux
const sessionToolId = sessionStorage.getItem('currentToolId') ?? undefined
......@@ -261,15 +261,15 @@ export const Chat: React.FC = () => {
toolId: resolvedToolId ?? '',
}
// 如果是 workflow 提交,添加 paramMap、recordId 和 workFlowSeeionId
// 如果是 workflow 提交,添加 paramMap、recordId 和 workFlowSessionId
if (extraParams?.paramMap) {
requestBody.paramMap = extraParams.paramMap
}
if (extraParams?.recordId) {
requestBody.recordId = extraParams.recordId
}
if (extraParams?.workFlowSeeionId) {
requestBody.workFlowSeeionId = extraParams.workFlowSeeionId
if (extraParams?.workFlowSessionId) {
requestBody.workFlowSessionId = extraParams.workFlowSessionId
}
// 如果传入了 recordType,优先使用传入的值(workflow 提交场景)
......@@ -409,12 +409,12 @@ export const Chat: React.FC = () => {
}
/** 处理 workflow 表单提交 */
const handleWorkflowSubmit = async (paramMap: Record<string, string>, recordId?: string, workFlowSeeionId?: string) => {
// workflow 提交时,question 可以为空字符串,但需要传递 paramMap、recordId 和 workFlowSeeionId
const handleWorkflowSubmit = async (paramMap: Record<string, string>, recordId?: string, workFlowSessionId?: string) => {
// workflow 提交时,question 可以为空字符串,但需要传递 paramMap、recordId 和 workFlowSessionId
await handleSubmitQuestion('', undefined, undefined, {
paramMap,
recordId,
workFlowSeeionId,
workFlowSessionId,
recordType: 'A01',
})
}
......
......@@ -6,7 +6,7 @@ import type { Answer, Attachment } from '@/types/chat'
interface CardWorkflowFormProps {
attachment: Attachment
answer: Answer
onSubmitWorkflow: (paramMap: Record<string, string>, recordId?: string, workFlowSeeionId?: string) => void
onSubmitWorkflow: (paramMap: Record<string, string>, recordId?: string, workFlowSessionId?: string) => void
isSubmitting?: boolean
isCompleted?: boolean
}
......@@ -78,18 +78,18 @@ export const CardWorkflowForm: React.FC<CardWorkflowFormProps> = ({
paramMap[field.key] = queryValue || ''
})
// 获取 recordId 和 workFlowSeeionId(从 answer 中获取,第一次可能没有)
// 获取 recordId 和 workFlowSessionId(从 answer 中获取,第一次可能没有)
// 注意:这里使用最新的 answer 值,即使依赖项中没有包含它们
const recordId = answer.recordId
const workFlowSeeionId = answer.workFlowSeeionId
const workFlowSessionId = answer.workFlowSessionId
// 延迟一下再提交,确保表单值已经设置完成
setTimeout(() => {
onSubmitWorkflow(paramMap, recordId, workFlowSeeionId)
onSubmitWorkflow(paramMap, recordId, workFlowSessionId)
}, 100)
}
}
// 移除 answer.recordId 和 answer.workFlowSeeionId 作为依赖项,避免流式更新时重复触发
// 移除 answer.recordId 和 answer.workFlowSessionId 作为依赖项,避免流式更新时重复触发
}, [answer.firstQaFlag, isSubmitting, isCompleted, searchParams, textFields, onSubmitWorkflow])
const handleInputChange = (key: string, value: string) => {
......@@ -106,11 +106,11 @@ export const CardWorkflowForm: React.FC<CardWorkflowFormProps> = ({
paramMap[field.key] = formValues[field.key] || ''
})
// 获取 recordId 和 workFlowSeeionId(从 answer 中获取,第一次可能没有)
// 获取 recordId 和 workFlowSessionId(从 answer 中获取,第一次可能没有)
const recordId = answer.recordId
const workFlowSeeionId = answer.workFlowSeeionId
const workFlowSessionId = answer.workFlowSessionId
onSubmitWorkflow(paramMap, recordId, workFlowSeeionId)
onSubmitWorkflow(paramMap, recordId, workFlowSessionId)
}
// 检查是否有 text 类型的字段
......
......@@ -17,7 +17,7 @@ interface ChatAnswerAttachmentProps {
answer: Answer
isLastAnswer?: boolean
onSubmitQuestion?: (question: string, productCode?: string) => void
onWorkflowSubmit?: (paramMap: Record<string, string>, recordId?: string, workFlowSeeionId?: string) => void
onWorkflowSubmit?: (paramMap: Record<string, string>, recordId?: string, workFlowSessionId?: string) => void
isWorkflowSubmitting?: boolean
isAsking?: boolean
}
......
......@@ -254,7 +254,7 @@ export const TacticsChat: React.FC = () => {
// 在流式响应过程中,忽略服务器返回的 endAnswerFlag,避免过早禁用输入框
const { endAnswerFlag: _omitEndAnswerFlag, ...dataWithoutEndFlag } = msg.content.data || {}
// 保留之前保存的 workFlowSeeionId 和 recordId,避免被覆盖
// 保留之前保存的 workFlowSessionId 和 recordId,避免被覆盖
const existingAnswer = newItems[lastAiIndex].answerList?.[0] || {}
newItems[lastAiIndex] = {
...newItems[lastAiIndex],
......@@ -263,8 +263,8 @@ export const TacticsChat: React.FC = () => {
{
...existingAnswer,
...dataWithoutEndFlag,
// 如果新的数据中没有 workFlowSeeionId,保留之前的值
workFlowSeeionId: dataWithoutEndFlag.workFlowSeeionId ?? existingAnswer.workFlowSeeionId,
// 如果新的数据中没有 workFlowSessionId,保留之前的值
workFlowSessionId: dataWithoutEndFlag.workFlowSessionId ?? existingAnswer.workFlowSessionId,
// 如果新的数据中没有 recordId,保留之前的值
recordId: dataWithoutEndFlag.recordId ?? existingAnswer.recordId,
isShow: false,
......@@ -346,7 +346,7 @@ export const TacticsChat: React.FC = () => {
question: string | undefined,
productCode?: string,
toolId?: string,
extra?: { busiType?: string, recordType?: string, numberType?: string, includeQuestion?: boolean, includeTacticsMeta?: boolean, includeUserMeta?: boolean, includeOrderMeta?: boolean, isReanalyze?: boolean, paramMap?: Record<string, string>, recordId?: string, workFlowSeeionId?: string },
extra?: { busiType?: string, recordType?: string, numberType?: string, includeQuestion?: boolean, includeTacticsMeta?: boolean, includeUserMeta?: boolean, includeOrderMeta?: boolean, isReanalyze?: boolean, paramMap?: Record<string, string>, recordId?: string, workFlowSessionId?: string },
) => {
// 优先读取缓存中的 toolId,再回退到传参
const sessionToolId = sessionStorage.getItem('currentToolId') ?? undefined
......@@ -493,15 +493,15 @@ export const TacticsChat: React.FC = () => {
if (shouldSendQuestion || (question && extra?.includeQuestion === false)) {
requestBody.question = question ?? ''
}
// 如果是 workflow 提交,添加 paramMap、recordId 和 workFlowSeeionId
// 如果是 workflow 提交,添加 paramMap、recordId 和 workFlowSessionId
if (extra?.paramMap) {
requestBody.paramMap = extra.paramMap
}
if (extra?.recordId) {
requestBody.recordId = extra.recordId
}
if (extra?.workFlowSeeionId) {
requestBody.workFlowSeeionId = extra.workFlowSeeionId
if (extra?.workFlowSessionId) {
requestBody.workFlowSessionId = extra.workFlowSessionId
}
// 调试日志:检查最终请求参数
console.log('[TacticsChat] handleSubmitQuestion: final requestBody', {
......@@ -625,13 +625,13 @@ export const TacticsChat: React.FC = () => {
}
/** 处理 workflow 表单提交 */
const handleWorkflowSubmit = async (paramMap: Record<string, string>, recordId?: string, workFlowSeeionId?: string) => {
// workflow 提交时,question 可以为空字符串,但需要传递 paramMap、recordId 和 workFlowSeeionId
const handleWorkflowSubmit = async (paramMap: Record<string, string>, recordId?: string, workFlowSessionId?: string) => {
// workflow 提交时,question 可以为空字符串,但需要传递 paramMap、recordId 和 workFlowSessionId
await handleSubmitQuestion(undefined, undefined, undefined, {
includeQuestion: false,
paramMap,
recordId,
workFlowSeeionId,
workFlowSessionId,
recordType: 'A01',
})
}
......
......@@ -82,7 +82,7 @@ export interface Answer {
extra?: AnswerExtra
qaTime?: number | string
firstQaFlag?: boolean
workFlowSeeionId?: string
workFlowSessionId?: string
}
export interface OriginalRecord {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment