支持待验收工单按VIP等级筛选
This commit is contained in:
@@ -287,6 +287,8 @@ export type ListInput = {
|
||||
/** 打手类型筛选:internal 内部打手 / external 外部打手 */
|
||||
workerType?: string
|
||||
workerId?: number
|
||||
/** 后台待验收筛选:普通单按接单人,拼单按参与打手等级。 */
|
||||
workerLevelIds?: number[]
|
||||
categoryId?: number
|
||||
workerSharingId?: number
|
||||
visibleAfterIso?: string
|
||||
|
||||
@@ -1055,6 +1055,7 @@ export async function listWorkOrders({
|
||||
workOrderId = 0,
|
||||
keyword = '',
|
||||
workerId = 0,
|
||||
workerLevelIds = [],
|
||||
categoryId = 0,
|
||||
workerSharingId = 0,
|
||||
visibleAfterIso = '',
|
||||
@@ -1070,6 +1071,7 @@ export async function listWorkOrders({
|
||||
workOrderId,
|
||||
keyword,
|
||||
workerId,
|
||||
workerLevelIds,
|
||||
categoryId,
|
||||
workerSharingId,
|
||||
visibleAfterIso,
|
||||
@@ -3429,6 +3431,7 @@ function buildWorkOrderWhere({
|
||||
workOrderId = 0,
|
||||
keyword = '',
|
||||
workerId = 0,
|
||||
workerLevelIds = [],
|
||||
categoryId = 0,
|
||||
workerSharingId = 0,
|
||||
visibleAfterIso = '',
|
||||
@@ -3491,6 +3494,25 @@ function buildWorkOrderWhere({
|
||||
)
|
||||
)`)
|
||||
}
|
||||
if (workerLevelIds.length > 0) {
|
||||
params.push(workerLevelIds)
|
||||
filters.push(`(
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM worker_users wu
|
||||
WHERE wu.id = wo.assigned_worker_id
|
||||
AND wu.level_id = ANY($${params.length}::bigint[])
|
||||
)
|
||||
OR EXISTS (
|
||||
SELECT 1
|
||||
FROM work_order_shares wos
|
||||
INNER JOIN worker_users wu ON wu.id = wos.worker_id
|
||||
WHERE wos.work_order_id = wo.id
|
||||
AND wos.status != 'cancelled'
|
||||
AND wu.level_id = ANY($${params.length}::bigint[])
|
||||
)
|
||||
)`)
|
||||
}
|
||||
if (categoryId) {
|
||||
params.push(categoryId)
|
||||
filters.push(`wo.category_id = $${params.length}`)
|
||||
|
||||
@@ -1307,6 +1307,9 @@ export async function listAdminWorkOrders(query: JsonObject = {}) {
|
||||
const pageSize = normalizePageSize(query.pageSize)
|
||||
const workOrderId = normalizeOptionalId(query.workOrderId ?? query.work_order_id) || 0
|
||||
const workerId = normalizeOptionalId(query.workerId ?? query.worker_id) || 0
|
||||
const workerLevelIds = normalizeStatuses(query.workerLevelIds ?? query.worker_level_ids)
|
||||
.map(normalizeOptionalId)
|
||||
.filter((levelId): levelId is number => levelId !== null)
|
||||
const statuses = normalizeStatuses(query.status)
|
||||
const vipEvidencePending = normalizeBoolean(query.vipEvidencePending, false)
|
||||
const { items, total } = await listWorkOrders({
|
||||
@@ -1316,6 +1319,7 @@ export async function listAdminWorkOrders(query: JsonObject = {}) {
|
||||
workOrderId,
|
||||
keyword: String(query.keyword || '').trim(),
|
||||
workerSharingId: workerId,
|
||||
workerLevelIds,
|
||||
vipEvidencePending,
|
||||
useOperationalStatus: true,
|
||||
})
|
||||
@@ -1324,6 +1328,7 @@ export async function listAdminWorkOrders(query: JsonObject = {}) {
|
||||
workOrderId,
|
||||
keyword: String(query.keyword || '').trim(),
|
||||
workerSharingId: workerId,
|
||||
workerLevelIds,
|
||||
vipEvidencePending,
|
||||
useOperationalStatus: true,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user