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(` const [batch] = await connection.query(`
SELECT DISTINCT v.vendor SELECT DISTINCT v.vendor
FROM vendor_details v 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' WHERE v.status = 'active'
AND v.vendor > ? 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 ORDER BY v.vendor
LIMIT ? LIMIT ?
`, [lastCalculationTime, lastCalculationTime, lastVendor, BATCH_SIZE]); `, [lastVendor, lastCalculationTime, lastCalculationTime, BATCH_SIZE]);
if (batch.length === 0) break; if (batch.length === 0) break;