Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sdream-ai-fe
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
侯明涛
sdream-ai-fe
Commits
d8478402
Commit
d8478402
authored
Feb 02, 2026
by
weiyudumei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 删除工单第二次自动调用,与策略分析保持一致;有历史记录时第一次自动调用不传workFlowSessionId
parent
cf47d227
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
6 additions
and
47 deletions
+6
-47
src/pages/Chat/components/ChatItem/ChatAnswerAttchment.tsx
+0
-0
src/pages/ChatTactics/TacticsChat.tsx
+6
-47
No files found.
src/pages/Chat/components/ChatItem/ChatAnswerAttchment.tsx
View file @
d8478402
src/pages/ChatTactics/TacticsChat.tsx
View file @
d8478402
...
@@ -517,10 +517,12 @@ export const TacticsChat: React.FC = () => {
...
@@ -517,10 +517,12 @@ export const TacticsChat: React.FC = () => {
// workFlowSessionId 的传递逻辑:
// workFlowSessionId 的传递逻辑:
// 1. 如果是重新分析(isReanalyze === true),不传递 workFlowSessionId
// 1. 如果是重新分析(isReanalyze === true),不传递 workFlowSessionId
// 2. 优先使用 extra 中的值
// 2. 如果有历史记录且是第一次自动调用(question 为空且 includeQuestion === false),不传递 workFlowSessionId
// 3. 如果都没有,从会话历史中找到最后一个有 workFlowSessionId 的答案
// 3. 优先使用 extra 中的值
// 4. 如果都没有,从会话历史中找到最后一个有 workFlowSessionId 的答案
// 注意:isReanalyze 已在上面声明(第 366 行),这里直接使用
// 注意:isReanalyze 已在上面声明(第 366 行),这里直接使用
if
(
!
isReanalyze
)
{
const
isFirstAutoCallWithHistory
=
hasHistory
===
true
&&
!
question
&&
extra
?.
includeQuestion
===
false
if
(
!
isReanalyze
&&
!
isFirstAutoCallWithHistory
)
{
if
(
extra
?.
workFlowSessionId
)
{
if
(
extra
?.
workFlowSessionId
)
{
requestBody
.
workFlowSessionId
=
extra
.
workFlowSessionId
requestBody
.
workFlowSessionId
=
extra
.
workFlowSessionId
}
}
...
@@ -913,14 +915,11 @@ export const TacticsChat: React.FC = () => {
...
@@ -913,14 +915,11 @@ export const TacticsChat: React.FC = () => {
const
hasAutoSubmittedRef
=
useRef
(
false
)
const
hasAutoSubmittedRef
=
useRef
(
false
)
// 记录上次调用时的 searchParams,用于 orderMeta 场景检测参数变化
// 记录上次调用时的 searchParams,用于 orderMeta 场景检测参数变化
const
lastSearchParamsRef
=
useRef
<
string
>
(
''
)
const
lastSearchParamsRef
=
useRef
<
string
>
(
''
)
// 记录 orderMeta 场景下第二次调用是否已执行
const
hasOrderMetaSecondCallRef
=
useRef
(
false
)
useEffect
(()
=>
{
useEffect
(()
=>
{
if
(
id
)
{
if
(
id
)
{
// 当 id 变化时,重置自动提交标志
// 当 id 变化时,重置自动提交标志
hasAutoSubmittedRef
.
current
=
false
hasAutoSubmittedRef
.
current
=
false
lastSearchParamsRef
.
current
=
''
lastSearchParamsRef
.
current
=
''
hasOrderMetaSecondCallRef
.
current
=
false
}
}
},
[
id
])
},
[
id
])
useEffect
(()
=>
{
useEffect
(()
=>
{
...
@@ -933,7 +932,6 @@ export const TacticsChat: React.FC = () => {
...
@@ -933,7 +932,6 @@ export const TacticsChat: React.FC = () => {
if
(
isOrderMetaScenario
&&
lastSearchParamsRef
.
current
!==
currentSearchParams
)
{
if
(
isOrderMetaScenario
&&
lastSearchParamsRef
.
current
!==
currentSearchParams
)
{
hasAutoSubmittedRef
.
current
=
false
hasAutoSubmittedRef
.
current
=
false
lastSearchParamsRef
.
current
=
currentSearchParams
lastSearchParamsRef
.
current
=
currentSearchParams
hasOrderMetaSecondCallRef
.
current
=
false
}
}
const
shouldTriggerForOrderMeta
=
isOrderMetaScenario
&&
hasHistoryLoaded
&&
!
isLoading
const
shouldTriggerForOrderMeta
=
isOrderMetaScenario
&&
hasHistoryLoaded
&&
!
isLoading
const
shouldTriggerForNormal
=
!
isOrderMetaScenario
&&
hasHistory
===
false
&&
!
isLoading
const
shouldTriggerForNormal
=
!
isOrderMetaScenario
&&
hasHistory
===
false
&&
!
isLoading
...
@@ -1025,49 +1023,14 @@ export const TacticsChat: React.FC = () => {
...
@@ -1025,49 +1023,14 @@ export const TacticsChat: React.FC = () => {
hasHistory
,
hasHistory
,
lastSentQuestion
:
lastSentQuestionRef
.
current
,
lastSentQuestion
:
lastSentQuestionRef
.
current
,
orderMeta
:
!!
orderMeta
,
orderMeta
:
!!
orderMeta
,
hasOrderMetaSecondCall
:
hasOrderMetaSecondCallRef
.
current
,
})
})
// 关键约束:必须等历史记录查询完成(hasHistory !== null)后,才允许触发任何
“自动发送/自动二次调用”
。
// 关键约束:必须等历史记录查询完成(hasHistory !== null)后,才允许触发任何
"自动发送"
。
// 这样可以保证进入页面时的时序为:先 query_user_qa_record_list,再 submit_question_stream。
// 这样可以保证进入页面时的时序为:先 query_user_qa_record_list,再 submit_question_stream。
if
(
hasHistory
===
null
)
{
if
(
hasHistory
===
null
)
{
return
return
}
}
// orderMeta 场景下,即使没有 shouldSendQuestion,也触发第二次调用(用于第三方嵌入场景)
// 复用 shouldSendQuestion 存在时的调用逻辑,保证参数传递完全一致
if
(
orderMeta
&&
currentIdRef
.
current
&&
!
isLoading
&&
!
hasOrderMetaSecondCallRef
.
current
&&
!
shouldSendQuestion
)
{
hasOrderMetaSecondCallRef
.
current
=
true
// orderMeta 场景下第二次自动调用:仅透传 workOrderIds 到 paramMap
// 需求:第一次自动调用不需要 paramMap;第二次自动调用的 paramMap 取路由内的 workOrderIds 值
const
paramMap
:
Record
<
string
,
string
>
|
undefined
=
typeof
orderMeta
.
workOrderIds
===
'string'
?
{
workOrderIds
:
orderMeta
.
workOrderIds
}
:
undefined
setTimeout
(()
=>
{
// 完全复用 shouldSendQuestion 存在时的调用逻辑(第 1063-1074 行),只是 question 为 undefined
// 这样保证参数传递完全一致,包括 paramMap 等参数的处理逻辑
handleSubmitQuestion
(
undefined
,
undefined
,
undefined
,
{
includeQuestion
:
true
,
// 与 shouldSendQuestion 存在时保持一致
includeTacticsMeta
:
false
,
includeOrderMeta
:
true
,
recordType
:
'A11'
,
...(
paramMap
?
{
paramMap
}
:
{}),
},
)
},
100
)
return
}
if
(
if
(
shouldSendQuestion
shouldSendQuestion
&&
currentIdRef
.
current
&&
currentIdRef
.
current
...
@@ -1076,10 +1039,6 @@ export const TacticsChat: React.FC = () => {
...
@@ -1076,10 +1039,6 @@ export const TacticsChat: React.FC = () => {
)
{
)
{
lastSentQuestionRef
.
current
=
shouldSendQuestion
lastSentQuestionRef
.
current
=
shouldSendQuestion
dispatch
(
clearTacticsShouldSendQuestion
())
dispatch
(
clearTacticsShouldSendQuestion
())
// orderMeta 场景下,标记第二次调用已执行
if
(
orderMeta
)
{
hasOrderMetaSecondCallRef
.
current
=
true
}
setTimeout
(()
=>
{
setTimeout
(()
=>
{
if
(
orderMeta
)
{
if
(
orderMeta
)
{
handleSubmitQuestion
(
handleSubmitQuestion
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment