add:新增同一个工单同一人可以多次拼单:拼单后台撤单,不影响母单状态
This commit is contained in:
@@ -709,7 +709,13 @@ export async function acceptWorkOrderShareAndSettle(input: {
|
||||
})
|
||||
}
|
||||
|
||||
/** 后台撤销单个拼单份额,释放该打手押金并把份数重新放回大厅。 */
|
||||
/**
|
||||
* 后台撤销单个拼单份额:退还该打手押金、释放这一份的占用。
|
||||
*
|
||||
* **不改母工单状态**:后台撤单常用于剔除错误参与者/纠错,撤掉一份不应把
|
||||
* 待验收(或进行中)的母单踢回大厅;需要改母单状态时走「拼单撤单」的
|
||||
* 退回大厅/取消整单显式操作。
|
||||
*/
|
||||
export async function cancelWorkOrderShare(input: {
|
||||
workOrderId: number
|
||||
shareId: number
|
||||
@@ -819,19 +825,16 @@ export async function cancelWorkOrderShare(input: {
|
||||
WHERE id = $2`,
|
||||
[input.now, input.shareId],
|
||||
)
|
||||
// 母单状态由剩余份额集合推导:撤掉这一份后,其余已提交份额仍可正常待验收
|
||||
const recomputedOrder = await recomputeWorkOrderSharingStatusWithClient(
|
||||
client,
|
||||
input.workOrderId,
|
||||
input.now,
|
||||
)
|
||||
// 母单状态保持不变:这里只取消这一份份额,不再按剩余份额重推母单状态。
|
||||
// (旧实现会 recompute:待验收的母单撤掉一份后 allocated < total → 变回 open,
|
||||
// 等于整单被踢回抢单大厅,与「后台撤单只影响该份额」的预期不符。)
|
||||
await createWorkOrderEventWithClient(client, {
|
||||
workOrderId: input.workOrderId,
|
||||
actorType: 'admin',
|
||||
actorId: input.actorName || '',
|
||||
eventType: 'sharing_share_cancelled_by_admin',
|
||||
fromStatus: workOrder.status,
|
||||
toStatus: recomputedOrder?.status || workOrder.status,
|
||||
toStatus: workOrder.status,
|
||||
payloadJson: JSON.stringify({
|
||||
shareId: input.shareId,
|
||||
workerId,
|
||||
|
||||
Reference in New Issue
Block a user