优化
This commit is contained in:
@@ -227,31 +227,7 @@ export async function run(context) {
|
||||
claimed?.workflowStatus === 'IN_PROGRESS' && Boolean(claimed?.assignment?.assigneeId),
|
||||
`workflow=${claimed?.workflowStatus || 'missing'}`, OPTIONS)
|
||||
|
||||
const itemClaimBody = {
|
||||
expectedAssignmentVersion: 0,
|
||||
operationId: `${context.marker}-bridge-item-claim`.slice(0, 128),
|
||||
}
|
||||
const itemClaim = await request(context, 'POST',
|
||||
`${pdaBase}/tasks/${canonicalTaskId}/items/${id(canonicalItem.id)}/claim`, itemClaimBody)
|
||||
const itemClaimed = context.apiSuccess(MODULE, '领取柜次 PDA 明细单人作业权', itemClaim, '', OPTIONS)
|
||||
const claimedItem = itemClaimed?.items?.find?.((item) => id(item.id) === id(canonicalItem.id))
|
||||
context.assert(MODULE, 'PDA 明细作业员与任务领取人一致', itemClaim,
|
||||
id(claimedItem?.assignment?.assigneeId) === id(itemClaimed?.assignment?.assigneeId)
|
||||
&& Number(claimedItem?.assignment?.version) === 0,
|
||||
`taskAssignee=${id(itemClaimed?.assignment?.assigneeId) || 'missing'}, itemAssignee=${id(claimedItem?.assignment?.assigneeId) || 'missing'}`, OPTIONS)
|
||||
const itemClaimReplay = await request(context, 'POST',
|
||||
`${pdaBase}/tasks/${canonicalTaskId}/items/${id(canonicalItem.id)}/claim`, itemClaimBody)
|
||||
context.assert(MODULE, 'PDA 明细领取 operationId 幂等重放', itemClaimReplay,
|
||||
codeOf(itemClaimReplay) === '200'
|
||||
&& id(itemClaimReplay.body?.data?.items?.find?.((item) => id(item.id) === id(canonicalItem.id))?.assignment?.assigneeId)
|
||||
=== id(claimedItem?.assignment?.assigneeId),
|
||||
`HTTP=${itemClaimReplay.http}, code=${codeOf(itemClaimReplay)}`, OPTIONS)
|
||||
const claimHashConflict = await request(context, 'POST',
|
||||
`${pdaBase}/tasks/${canonicalTaskId}/items/${id(canonicalItem.id)}/claim`, {
|
||||
...itemClaimBody, expectedAssignmentVersion: 1,
|
||||
})
|
||||
context.addStep(MODULE, 'PDA 明细同 operationId 不同版本请求被拒绝', claimHashConflict,
|
||||
failure(claimHashConflict), `HTTP=${claimHashConflict.http}, code=${codeOf(claimHashConflict)}`, OPTIONS)
|
||||
// P3-Q11 uses task-level assignment as the single-operator guard; no item claim API exists.
|
||||
|
||||
const canonicalPick = await request(context, 'POST',
|
||||
`${pdaBase}/tasks/${canonicalTaskId}/items/${id(canonicalItem.id)}/pick`, {
|
||||
|
||||
Reference in New Issue
Block a user