优化
This commit is contained in:
@@ -1644,6 +1644,13 @@
|
||||
this.loadingVersion = submittedTask.inboundVersion ?? submittedTask.loadingVersion ?? this.remotePick.inboundVersion ?? this.remotePick.loadingVersion ?? this.loadingVersion
|
||||
this.evidenceIdentity = this.captureEvidenceIdentity()
|
||||
}
|
||||
this.showToast('拣货已提交,正在刷新最新状态', 'success')
|
||||
await this.syncRemoteTask()
|
||||
if (!this.pickingCompleted) {
|
||||
this.remoteError = this.remoteError || '拣货已提交,但最新任务状态尚未同步,请点击刷新任务'
|
||||
this.showToast('拣货已提交,状态同步未完成,请刷新任务', 'warning')
|
||||
return
|
||||
}
|
||||
// Legacy inbound completePicking(expectedVersion: Number(this.pickingVersion)) remains adapter-only; cabinet tasks use item actions.
|
||||
} catch (error) {
|
||||
this.debugSubmit('submit.error', { message: error.message || '', code: error.code || '', statusCode: error.statusCode || '', requestIdFromServer: error.requestId || '', traceId: error.traceId || '', network: Boolean(error.network) })
|
||||
|
||||
@@ -103,6 +103,18 @@ test('completed detail overrides stale local state and an empty batch refreshes
|
||||
assert.ok(perform.indexOf('if (!actions.length)') < perform.indexOf('submitContainerPickingBatch('))
|
||||
})
|
||||
|
||||
test('successful batch submission automatically refreshes canonical item status before completion gates', () => {
|
||||
const perform = page.match(/async performSubmit\([^)]*\) \{[\s\S]*?\n\t\t\t\},/)?.[0] || ''
|
||||
const submitIndex = perform.indexOf('await submitContainerPickingBatch(')
|
||||
const refreshIndex = perform.indexOf('await this.syncRemoteTask()', submitIndex)
|
||||
const gateIndex = perform.indexOf('if (!this.pickingCompleted)', refreshIndex)
|
||||
assert.ok(submitIndex >= 0 && refreshIndex > submitIndex, 'canonical detail should refresh after the accepted batch')
|
||||
assert.ok(gateIndex > refreshIndex, 'completion should be evaluated only after the automatic refresh')
|
||||
assert.match(perform, /拣货已提交,正在刷新最新状态/)
|
||||
assert.match(perform, /拣货已提交,但最新任务状态尚未同步,请点击刷新任务/)
|
||||
assert.match(perform, /if \(!this\.pickingCompleted\)[\s\S]*?return/)
|
||||
})
|
||||
|
||||
test('final completion preserves backend gate errors and refreshes after an atomic A0409', () => {
|
||||
const complete = page.match(/async completeLoadingTask\(\) \{[\s\S]*?\n\t\t\t\},/)?.[0] || ''
|
||||
assert.match(complete, /this\.isTaskConflict\(error\)[\s\S]*?await this\.refreshAfterTaskConflict\(sanitizeUserMessage\(error\.message, '订舱、装柜关联或证据状态已变化,请刷新后重试'\)\)/)
|
||||
|
||||
Reference in New Issue
Block a user