Vendor calculate script fix

This commit is contained in:
2025-02-10 09:26:24 -05:00
parent 610e26689c
commit d936d50f83

View File

@@ -94,15 +94,25 @@ async function calculateVendorMetrics(startTime, totalProducts, processedCount =
const [batch] = await connection.query(`
SELECT DISTINCT v.vendor
FROM vendor_details v
FORCE INDEX (PRIMARY)
LEFT JOIN products p FORCE INDEX (idx_vendor) ON p.vendor = v.vendor AND p.updated > ?
LEFT JOIN purchase_orders po FORCE INDEX (idx_vendor) ON po.vendor = v.vendor AND po.updated > ?
WHERE v.status = 'active'
AND v.vendor > ?
AND (p.pid IS NOT NULL OR po.po_id IS NOT NULL)
AND (
EXISTS (
SELECT 1
FROM products p
WHERE p.vendor = v.vendor
AND p.updated > ?
)
OR EXISTS (
SELECT 1
FROM purchase_orders po
WHERE po.vendor = v.vendor
AND po.updated > ?
)
)
ORDER BY v.vendor
LIMIT ?
`, [lastCalculationTime, lastCalculationTime, lastVendor, BATCH_SIZE]);
`, [lastVendor, lastCalculationTime, lastCalculationTime, BATCH_SIZE]);
if (batch.length === 0) break;