feat: Introduce simulation analysis module with comprehensive performance tracking and a new element editor UI component.
This commit is contained in:
@@ -1571,13 +1571,15 @@ function Analyzer() {
|
||||
|
||||
const totalActionTime = workerTime + manufacturerTime + operatorTime + assemblerTime;
|
||||
|
||||
const workloadDistribution = [
|
||||
{ actionType: "worker", count: workerActions, totalTime: workerTime, percentage: totalActionTime > 0 ? (workerTime / totalActionTime) * 100 : 0 },
|
||||
{ actionType: "manufacturer", count: manufacturerActions, totalTime: manufacturerTime, percentage: totalActionTime > 0 ? (manufacturerTime / totalActionTime) * 100 : 0 },
|
||||
{ actionType: "operator", count: operatorActions, totalTime: operatorTime, percentage: totalActionTime > 0 ? (operatorTime / totalActionTime) * 100 : 0 },
|
||||
{ actionType: "assembler", count: assemblerActions, totalTime: assemblerTime, percentage: totalActionTime > 0 ? (assemblerTime / totalActionTime) * 100 : 0 },
|
||||
const workloadDistributionData = [
|
||||
{ actionType: "Worker", count: workerActions, totalTime: workerTime, percentage: totalActionTime > 0 ? (workerTime / totalActionTime) * 100 : 0 },
|
||||
{ actionType: "Manufacturer", count: manufacturerActions, totalTime: manufacturerTime, percentage: totalActionTime > 0 ? (manufacturerTime / totalActionTime) * 100 : 0 },
|
||||
{ actionType: "Operator", count: operatorActions, totalTime: operatorTime, percentage: totalActionTime > 0 ? (operatorTime / totalActionTime) * 100 : 0 },
|
||||
{ actionType: "Assembler", count: assemblerActions, totalTime: assemblerTime, percentage: totalActionTime > 0 ? (assemblerTime / totalActionTime) * 100 : 0 },
|
||||
].filter((w) => w.count > 0);
|
||||
|
||||
const workloadDistribution = workloadDistributionData.map((d) => `${Math.round(d.percentage)}%`).join(" | ");
|
||||
|
||||
// Performance calculations
|
||||
const idealActionsPerHour = 60; // 60 actions per hour ideal
|
||||
const actualActionsPerHour = timeMetrics.totalTime > 0 ? (actionsCompleted / timeMetrics.totalTime) * 3600 : 0;
|
||||
@@ -1640,7 +1642,8 @@ function Analyzer() {
|
||||
loadEfficiency: loadUtilization,
|
||||
},
|
||||
|
||||
workloadDistribution,
|
||||
workloadDistribution: workloadDistributionData,
|
||||
workloadSummary: workloadDistribution === "" ? "0%" : workloadDistribution,
|
||||
|
||||
efficiency: {
|
||||
overallEffectiveness: calculateOEE(timeMetrics.uptime, performanceRate, qualityMetrics.firstPassYield),
|
||||
|
||||
Reference in New Issue
Block a user