收敛工单超时查询
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),
|
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> {
|
export async function countWorkerActiveOrders(workerId: number | string): Promise<number> {
|
||||||
const result = await query<{ total: number }>(
|
const result = await query<{ total: number }>(
|
||||||
`
|
`
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import {
|
|||||||
getWorkOrderByOrderItemId,
|
getWorkOrderByOrderItemId,
|
||||||
getWorkerOrderOverview,
|
getWorkerOrderOverview,
|
||||||
isWorkOrderWithinHallCapacityWithClient,
|
isWorkOrderWithinHallCapacityWithClient,
|
||||||
|
listOverdueWorkOrders,
|
||||||
WORK_ORDER_SELECT,
|
WORK_ORDER_SELECT,
|
||||||
} from './work-order-query-repo.js'
|
} from './work-order-query-repo.js'
|
||||||
import type {
|
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: {
|
export async function settleOverdueWorkOrder(input: {
|
||||||
workOrderId: number
|
workOrderId: number
|
||||||
policy: 'reopen' | 'cancel_release' | 'cancel_deduct'
|
policy: 'reopen' | 'cancel_release' | 'cancel_deduct'
|
||||||
|
|||||||
Reference in New Issue
Block a user