Vendor calculate script fix
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user