From 3fa7998ff66c2372becd918e741d0916f2ffea46 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Fri, 8 Nov 2024 15:48:11 -0700 Subject: [PATCH] WSJF not tested --- .../FileHandlers/json/StaticSite/js/wsjf.js | 127 +++++++++--------- 1 file changed, 65 insertions(+), 62 deletions(-) diff --git a/Adaptation/FileHandlers/json/StaticSite/js/wsjf.js b/Adaptation/FileHandlers/json/StaticSite/js/wsjf.js index a102b45..9e4955b 100644 --- a/Adaptation/FileHandlers/json/StaticSite/js/wsjf.js +++ b/Adaptation/FileHandlers/json/StaticSite/js/wsjf.js @@ -1,7 +1,7 @@ var _apiUrl = null; function compareFunction(a, b) { - return b.WeightedShortestJobFirst - a.WeightedShortestJobFirst || b.ParentId - a.ParentId || a.Id - b.Id; + return b.WeightedShortestJobFirst - a.WeightedShortestJobFirst || b.CoDRank - b.CoDRank || b.ParentId - a.ParentId || a.Id - b.Id; } function compareEffortFunction(a, b) { @@ -110,76 +110,86 @@ function updateRecordCoD(workItem) { function getFibonacci(length) { var results = []; - var i; - var fib = [0, 1]; - for (i = 2; i <= length + 1; i++) { - fib[i] = fib[i - 2] + fib[i - 1]; - results.push(fib[i]); + for (var i = 0; i < length; i++) { + results.push(21); } + var index = 0; + var fibonacci = [3, 5, 8, 13, 20]; + var factor = (length / fibonacci.length).toFixed(); + for (var j = 0; j < fibonacci.length; j++) { + for (var i = 0; i < factor; i++) { + results[index] = fibonacci[j]; + index += 1; + } + } + // for (var i = 0; i < results.length; i++) { + // console.log(results[i]); + // } return results; } function updateCoD(records) { - var iHigh; var workItem; - var fibonacci = getFibonacci(records.length); - records.sort(compareEffortFunction); - iHigh = 0; + var collection = []; for (var i = 0; i < records.length; i++) { workItem = records[i]; - if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { - workItem.EffortRank = 0; + if (workItem.Priority[0] === '2') { + workItem.EffortFibonacci = 2; + workItem.BusinessValueFibonacci = 2; + workItem.TimeCriticalityFibonacci = 2; + workItem.RiskReductionMinusOpportunityEnablementFibonacci = 2; + continue; + } + else if (workItem.Priority[0] === '3') { workItem.EffortFibonacci = 1; + workItem.BusinessValueFibonacci = 1; + workItem.TimeCriticalityFibonacci = 1; + workItem.RiskReductionMinusOpportunityEnablementFibonacci = 1; + continue; } - else { - workItem.EffortRank = (((i + 1) / records.length) * 100).toFixed(); - workItem.EffortFibonacci = fibonacci[iHigh]; - iHigh += 1; - } + collection.push(workItem); + } + var fibonacci = getFibonacci(collection.length); + collection.sort(compareEffortFunction); + for (var i = 0; i < collection.length; i++) { + workItem = collection[i]; + workItem.EffortFibonacci = fibonacci[i]; + } + records.sort(compareEffortFunction); + for (var i = 0; i < records.length; i++) { + workItem = records[i]; + workItem.EffortRank = (((i + 1) / records.length) * 100).toFixed(); + } + collection.sort(compareBusinessValueFunction); + for (var i = 0; i < collection.length; i++) { + workItem = collection[i]; + workItem.BusinessValueFibonacci = fibonacci[i]; } records.sort(compareBusinessValueFunction); - iHigh = 0; for (var i = 0; i < records.length; i++) { workItem = records[i]; - if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { - workItem.BusinessValueRank = 0; - workItem.BusinessValueFibonacci = 1; - } - else { - workItem.BusinessValueRank = (((i + 1) / records.length) * 100).toFixed(); - workItem.BusinessValueFibonacci = fibonacci[iHigh]; - iHigh += 1; - } + workItem.BusinessValueRank = (((i + 1) / records.length) * 100).toFixed(); + } + collection.sort(compareTimeCriticalityFunction); + for (var i = 0; i < collection.length; i++) { + workItem = collection[i]; + workItem.TimeCriticalityFibonacci = fibonacci[i]; } records.sort(compareTimeCriticalityFunction); - iHigh = 0; for (var i = 0; i < records.length; i++) { workItem = records[i]; - if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { - workItem.TimeCriticalityRank = 0; - workItem.TimeCriticalityFibonacci = 1; - } - else { - workItem.TimeCriticalityRank = (((i + 1) / records.length) * 100).toFixed(); - workItem.TimeCriticalityFibonacci = fibonacci[iHigh]; - iHigh += 1; - } + workItem.TimeCriticalityRank = (((i + 1) / records.length) * 100).toFixed(); + } + collection.sort(compareRiskReductionMinusOpportunityEnablementFunction); + for (var i = 0; i < collection.length; i++) { + workItem = collection[i]; + workItem.RiskReductionMinusOpportunityEnablementFibonacci = fibonacci[i]; } records.sort(compareRiskReductionMinusOpportunityEnablementFunction); - iHigh = 0; for (var i = 0; i < records.length; i++) { workItem = records[i]; - if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { - workItem.RiskReductionMinusOpportunityEnablementRank = 0; - workItem.RiskReductionMinusOpportunityEnablementFibonacci = 1; - } - else { - workItem.RiskReductionMinusOpportunityEnablementRank = (((i + 1) / records.length) * 100).toFixed(); - workItem.RiskReductionMinusOpportunityEnablementFibonacci = fibonacci[iHigh]; - iHigh += 1; - } + workItem.RiskReductionMinusOpportunityEnablementRank = (((i + 1) / records.length) * 100).toFixed(); } - records.sort(compareCostOfDelay); for (var i = 0; i < records.length; i++) { workItem = records[i]; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablementFibonacci + workItem.TimeCriticalityFibonacci + workItem.BusinessValueFibonacci; @@ -187,14 +197,7 @@ function updateCoD(records) { records.sort(compareCostOfDelay); for (var i = 0; i < records.length; i++) { workItem = records[i]; - if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { - workItem.CoD = 0.000001; - workItem.CoDRank = 0; - } - else { - workItem.CoDRank = (((i + 1) / records.length) * 100).toFixed(); - // workItem.CoD = (workItem.CoD / workItem.CoDFibonacci).toFixed(6); - } + workItem.CoDRank = (((i + 1) / records.length) * 100).toFixed(); } for (var i = 0; i < records.length; i++) { workItem = records[i]; @@ -204,7 +207,7 @@ function updateCoD(records) { } else { workItem.WeightedShortestJobFirstRank = (((i + 1) / records.length) * 100).toFixed(); - workItem.WeightedShortestJobFirst = (workItem.CoD / workItem.EffortFibonacci).toFixed(6); + workItem.WeightedShortestJobFirst = (workItem.CoD / workItem.EffortFibonacci).toFixed(3); } } } @@ -270,11 +273,11 @@ function setRecords(workItems) { "" + record.Tags + "" + record.State + "" + record.Priority + - "" + record.RiskReductionMinusOpportunityEnablement + '-' + record.RiskReductionMinusOpportunityEnablementRank + '% -' + record.RiskReductionMinusOpportunityEnablementFibonacci + - "" + record.TimeCriticality + '-' + record.TimeCriticalityRank + '% -' + record.TimeCriticalityFibonacci + - "" + record.BusinessValue + '-' + record.BusinessValueRank + '% -' + record.BusinessValueFibonacci + - "" + record.CoD + '-' + record.CoDRank + '% -' + - "" + record.Effort + '-' + record.EffortRank + '% -' + record.EffortFibonacci + + "" + record.RiskReductionMinusOpportunityEnablementRank + '% - ' + record.RiskReductionMinusOpportunityEnablement + ' - ' + record.RiskReductionMinusOpportunityEnablementFibonacci + + "" + record.TimeCriticalityRank + '% - ' +record.TimeCriticality + ' - ' + record.TimeCriticalityFibonacci + + "" + record.BusinessValueRank + '% - ' +record.BusinessValue + ' - ' + record.BusinessValueFibonacci + + "" + record.CoDRank + '% - ' + record.CoD + + "" + record.EffortRank + '% - ' +record.Effort + ' - ' + record.EffortFibonacci + "" + record.WeightedShortestJobFirst + "UpDown"; }