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