feat: Add simulation analyzer component for comprehensive performance tracking and metric calculation.
This commit is contained in:
@@ -1007,7 +1007,7 @@ function Analyzer() {
|
|||||||
const materialFlow = calculateMaterialFlowMetricsForAsset(vehicle.modelUuid);
|
const materialFlow = calculateMaterialFlowMetricsForAsset(vehicle.modelUuid);
|
||||||
const tripsCompleted = completedActionsRef.current[vehicle.modelUuid] || 0;
|
const tripsCompleted = completedActionsRef.current[vehicle.modelUuid] || 0;
|
||||||
const totalLoadsDelivered = completedActionsRef.current[`${vehicle.modelUuid}_loads`] || 0;
|
const totalLoadsDelivered = completedActionsRef.current[`${vehicle.modelUuid}_loads`] || 0;
|
||||||
const defects = errorCountsRef.current[`${vehicle.modelUuid}_defects`] || 0;
|
const defects = errorCount; // Use main error count directly
|
||||||
const qualityMetrics = calculateQualityMetrics(vehicle.modelUuid, totalLoadsDelivered, defects);
|
const qualityMetrics = calculateQualityMetrics(vehicle.modelUuid, totalLoadsDelivered, defects);
|
||||||
|
|
||||||
// Performance calculations
|
// Performance calculations
|
||||||
@@ -1123,7 +1123,7 @@ function Analyzer() {
|
|||||||
maintenanceCost: costMetrics.maintenanceCost,
|
maintenanceCost: costMetrics.maintenanceCost,
|
||||||
energyCost: energyMetrics.energyCost,
|
energyCost: energyMetrics.energyCost,
|
||||||
totalCost: costMetrics.totalCost,
|
totalCost: costMetrics.totalCost,
|
||||||
costPerMile: actualDistance > 0 ? costMetrics.totalCost / actualDistance : 0,
|
costPerMile: actualDistance > 0 ? costMetrics.totalCost / (actualDistance / 1609.34) : 0, // Convert meters to miles
|
||||||
costPerTrip: tripsCompleted > 0 ? costMetrics.totalCost / tripsCompleted : 0,
|
costPerTrip: tripsCompleted > 0 ? costMetrics.totalCost / tripsCompleted : 0,
|
||||||
costPerLoad: totalLoadsDelivered > 0 ? costMetrics.totalCost / totalLoadsDelivered : 0,
|
costPerLoad: totalLoadsDelivered > 0 ? costMetrics.totalCost / totalLoadsDelivered : 0,
|
||||||
roi: costMetrics.roi,
|
roi: costMetrics.roi,
|
||||||
@@ -2475,6 +2475,12 @@ function Analyzer() {
|
|||||||
completedActionsRef.current[vehicle.modelUuid] = 0;
|
completedActionsRef.current[vehicle.modelUuid] = 0;
|
||||||
}
|
}
|
||||||
completedActionsRef.current[vehicle.modelUuid]++;
|
completedActionsRef.current[vehicle.modelUuid]++;
|
||||||
|
|
||||||
|
// Track loads delivered (assuming 1 load per trip for now, or use vehicle.currentLoad if available/reliable at this point)
|
||||||
|
if (!completedActionsRef.current[`${vehicle.modelUuid}_loads`]) {
|
||||||
|
completedActionsRef.current[`${vehicle.modelUuid}_loads`] = 0;
|
||||||
|
}
|
||||||
|
completedActionsRef.current[`${vehicle.modelUuid}_loads`] += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
previousVehiclePhasesRef.current[vehicle.modelUuid] = currentPhase;
|
previousVehiclePhasesRef.current[vehicle.modelUuid] = currentPhase;
|
||||||
|
|||||||
Reference in New Issue
Block a user