WSJF not tested
This commit is contained in:
parent
9c5651a862
commit
3fa7998ff6
@ -1,7 +1,7 @@
|
|||||||
var _apiUrl = null;
|
var _apiUrl = null;
|
||||||
|
|
||||||
function compareFunction(a, b) {
|
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) {
|
function compareEffortFunction(a, b) {
|
||||||
@ -110,76 +110,86 @@ function updateRecordCoD(workItem) {
|
|||||||
|
|
||||||
function getFibonacci(length) {
|
function getFibonacci(length) {
|
||||||
var results = [];
|
var results = [];
|
||||||
var i;
|
for (var i = 0; i < length; i++) {
|
||||||
var fib = [0, 1];
|
results.push(21);
|
||||||
for (i = 2; i <= length + 1; i++) {
|
|
||||||
fib[i] = fib[i - 2] + fib[i - 1];
|
|
||||||
results.push(fib[i]);
|
|
||||||
}
|
}
|
||||||
|
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;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCoD(records) {
|
function updateCoD(records) {
|
||||||
var iHigh;
|
|
||||||
var workItem;
|
var workItem;
|
||||||
var fibonacci = getFibonacci(records.length);
|
var collection = [];
|
||||||
records.sort(compareEffortFunction);
|
|
||||||
iHigh = 0;
|
|
||||||
for (var i = 0; i < records.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
workItem = records[i];
|
workItem = records[i];
|
||||||
if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') {
|
if (workItem.Priority[0] === '2') {
|
||||||
workItem.EffortRank = 0;
|
workItem.EffortFibonacci = 2;
|
||||||
|
workItem.BusinessValueFibonacci = 2;
|
||||||
|
workItem.TimeCriticalityFibonacci = 2;
|
||||||
|
workItem.RiskReductionMinusOpportunityEnablementFibonacci = 2;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (workItem.Priority[0] === '3') {
|
||||||
workItem.EffortFibonacci = 1;
|
workItem.EffortFibonacci = 1;
|
||||||
|
workItem.BusinessValueFibonacci = 1;
|
||||||
|
workItem.TimeCriticalityFibonacci = 1;
|
||||||
|
workItem.RiskReductionMinusOpportunityEnablementFibonacci = 1;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else {
|
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();
|
workItem.EffortRank = (((i + 1) / records.length) * 100).toFixed();
|
||||||
workItem.EffortFibonacci = fibonacci[iHigh];
|
|
||||||
iHigh += 1;
|
|
||||||
}
|
}
|
||||||
|
collection.sort(compareBusinessValueFunction);
|
||||||
|
for (var i = 0; i < collection.length; i++) {
|
||||||
|
workItem = collection[i];
|
||||||
|
workItem.BusinessValueFibonacci = fibonacci[i];
|
||||||
}
|
}
|
||||||
records.sort(compareBusinessValueFunction);
|
records.sort(compareBusinessValueFunction);
|
||||||
iHigh = 0;
|
|
||||||
for (var i = 0; i < records.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
workItem = records[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.BusinessValueRank = (((i + 1) / records.length) * 100).toFixed();
|
||||||
workItem.BusinessValueFibonacci = fibonacci[iHigh];
|
|
||||||
iHigh += 1;
|
|
||||||
}
|
}
|
||||||
|
collection.sort(compareTimeCriticalityFunction);
|
||||||
|
for (var i = 0; i < collection.length; i++) {
|
||||||
|
workItem = collection[i];
|
||||||
|
workItem.TimeCriticalityFibonacci = fibonacci[i];
|
||||||
}
|
}
|
||||||
records.sort(compareTimeCriticalityFunction);
|
records.sort(compareTimeCriticalityFunction);
|
||||||
iHigh = 0;
|
|
||||||
for (var i = 0; i < records.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
workItem = records[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.TimeCriticalityRank = (((i + 1) / records.length) * 100).toFixed();
|
||||||
workItem.TimeCriticalityFibonacci = fibonacci[iHigh];
|
|
||||||
iHigh += 1;
|
|
||||||
}
|
}
|
||||||
|
collection.sort(compareRiskReductionMinusOpportunityEnablementFunction);
|
||||||
|
for (var i = 0; i < collection.length; i++) {
|
||||||
|
workItem = collection[i];
|
||||||
|
workItem.RiskReductionMinusOpportunityEnablementFibonacci = fibonacci[i];
|
||||||
}
|
}
|
||||||
records.sort(compareRiskReductionMinusOpportunityEnablementFunction);
|
records.sort(compareRiskReductionMinusOpportunityEnablementFunction);
|
||||||
iHigh = 0;
|
|
||||||
for (var i = 0; i < records.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
workItem = records[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.RiskReductionMinusOpportunityEnablementRank = (((i + 1) / records.length) * 100).toFixed();
|
||||||
workItem.RiskReductionMinusOpportunityEnablementFibonacci = fibonacci[iHigh];
|
|
||||||
iHigh += 1;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
records.sort(compareCostOfDelay);
|
|
||||||
for (var i = 0; i < records.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
workItem = records[i];
|
workItem = records[i];
|
||||||
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablementFibonacci + workItem.TimeCriticalityFibonacci + workItem.BusinessValueFibonacci;
|
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablementFibonacci + workItem.TimeCriticalityFibonacci + workItem.BusinessValueFibonacci;
|
||||||
@ -187,14 +197,7 @@ function updateCoD(records) {
|
|||||||
records.sort(compareCostOfDelay);
|
records.sort(compareCostOfDelay);
|
||||||
for (var i = 0; i < records.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
workItem = records[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.CoDRank = (((i + 1) / records.length) * 100).toFixed();
|
||||||
// workItem.CoD = (workItem.CoD / workItem.CoDFibonacci).toFixed(6);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (var i = 0; i < records.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
workItem = records[i];
|
workItem = records[i];
|
||||||
@ -204,7 +207,7 @@ function updateCoD(records) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
workItem.WeightedShortestJobFirstRank = (((i + 1) / records.length) * 100).toFixed();
|
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) {
|
|||||||
"</td><td>" + record.Tags +
|
"</td><td>" + record.Tags +
|
||||||
"</td><td>" + record.State +
|
"</td><td>" + record.State +
|
||||||
"</td><td>" + record.Priority +
|
"</td><td>" + record.Priority +
|
||||||
"</td><td>" + record.RiskReductionMinusOpportunityEnablement + '-' + record.RiskReductionMinusOpportunityEnablementRank + '% -' + record.RiskReductionMinusOpportunityEnablementFibonacci +
|
"</td><td>" + record.RiskReductionMinusOpportunityEnablementRank + '% - ' + record.RiskReductionMinusOpportunityEnablement + ' - ' + record.RiskReductionMinusOpportunityEnablementFibonacci +
|
||||||
"</td><td>" + record.TimeCriticality + '-' + record.TimeCriticalityRank + '% -' + record.TimeCriticalityFibonacci +
|
"</td><td>" + record.TimeCriticalityRank + '% - ' +record.TimeCriticality + ' - ' + record.TimeCriticalityFibonacci +
|
||||||
"</td><td>" + record.BusinessValue + '-' + record.BusinessValueRank + '% -' + record.BusinessValueFibonacci +
|
"</td><td>" + record.BusinessValueRank + '% - ' +record.BusinessValue + ' - ' + record.BusinessValueFibonacci +
|
||||||
"</td><td>" + record.CoD + '-' + record.CoDRank + '% -' +
|
"</td><td>" + record.CoDRank + '% - ' + record.CoD +
|
||||||
"</td><td>" + record.Effort + '-' + record.EffortRank + '% -' + record.EffortFibonacci +
|
"</td><td>" + record.EffortRank + '% - ' +record.Effort + ' - ' + record.EffortFibonacci +
|
||||||
"</td><td>" + record.WeightedShortestJobFirst +
|
"</td><td>" + record.WeightedShortestJobFirst +
|
||||||
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
|
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user