收敛工单超时查询
This commit is contained in:
@@ -377,6 +377,32 @@ export async function getWorkerOrderOverview(workerId: number | string): Promise
|
||||
vipEvidencePendingSettlementAmount: Number(row.vip_evidence_pending_settlement_amount || 0),
|
||||
}))
|
||||
}
|
||||
|
||||
/** 查询已超过接单时限、仍待处置的工单。 */
|
||||
export async function listOverdueWorkOrders({
|
||||
limit = 50,
|
||||
workerId = 0,
|
||||
}: { limit?: number; workerId?: number } = {}): Promise<WorkOrderRow[]> {
|
||||
const params: unknown[] = []
|
||||
let workerClause = ''
|
||||
if (workerId > 0) {
|
||||
params.push(workerId)
|
||||
workerClause = `AND wo.assigned_worker_id = $${params.length}`
|
||||
}
|
||||
params.push(limit)
|
||||
const result = await query<WorkOrderRow>(
|
||||
`${WORK_ORDER_SELECT}
|
||||
WHERE wo.status = 'in_progress'
|
||||
AND wo.deadline_at IS NOT NULL
|
||||
AND wo.deadline_at < NOW()
|
||||
${workerClause}
|
||||
ORDER BY wo.deadline_at ASC
|
||||
LIMIT $${params.length}`,
|
||||
params,
|
||||
)
|
||||
return result.rows
|
||||
}
|
||||
|
||||
export async function countWorkerActiveOrders(workerId: number | string): Promise<number> {
|
||||
const result = await query<{ total: number }>(
|
||||
`
|
||||
|
||||
@@ -18,6 +18,7 @@ import {
|
||||
getWorkOrderByOrderItemId,
|
||||
getWorkerOrderOverview,
|
||||
isWorkOrderWithinHallCapacityWithClient,
|
||||
listOverdueWorkOrders,
|
||||
WORK_ORDER_SELECT,
|
||||
} from './work-order-query-repo.js'
|
||||
import type {
|
||||
@@ -1724,30 +1725,6 @@ export async function resolveProblemWorkOrder(input: {
|
||||
})
|
||||
}
|
||||
|
||||
export async function listOverdueWorkOrders({
|
||||
limit = 50,
|
||||
workerId = 0,
|
||||
}: { limit?: number; workerId?: number } = {}): Promise<WorkOrderRow[]> {
|
||||
const params: unknown[] = []
|
||||
let workerClause = ''
|
||||
if (workerId > 0) {
|
||||
params.push(workerId)
|
||||
workerClause = `AND wo.assigned_worker_id = $${params.length}`
|
||||
}
|
||||
params.push(limit)
|
||||
const result = await query<WorkOrderRow>(
|
||||
`${WORK_ORDER_SELECT}
|
||||
WHERE wo.status = 'in_progress'
|
||||
AND wo.deadline_at IS NOT NULL
|
||||
AND wo.deadline_at < NOW()
|
||||
${workerClause}
|
||||
ORDER BY wo.deadline_at ASC
|
||||
LIMIT $${params.length}`,
|
||||
params,
|
||||
)
|
||||
return result.rows
|
||||
}
|
||||
|
||||
export async function settleOverdueWorkOrder(input: {
|
||||
workOrderId: number
|
||||
policy: 'reopen' | 'cancel_release' | 'cancel_deduct'
|
||||
|
||||
Reference in New Issue
Block a user