不满意评价数量得分(50 分):取不满意评价数量(超期未受理件数和超期未处理记为不满意)最多与最少的小区差额,按每 2.5 分一档,共 20 档,从最少向最多依次递减。如:A 小区不满意数量最多有 100 件,B 小区不满意数量最少有 0 件,则每档数量为(100-0)/20=5 件,即不满意评价每增加 5 件得分减少 2.5 分。具体计分如下: 不满意评价数量 得分 0 50 (1-5) 47.5 (6-10) 45 ...... ...... (86-90) 5 (91-95) 2.5
优化前代码
public static double assignment(Double coefficient,Integer dissatisfiedNum){//coefficient为档位 dissatisfiedNum 为不满意数 double result = 50; if (dissatisfiedNum == 0){ result = 50-2.5*0; } if (0 < dissatisfiedNum && dissatisfiedNum <= coefficient*1){ result = 50 - 2.5 * 1; } if (coefficient*1 < dissatisfiedNum && dissatisfiedNum <= coefficient*2){ result = 50 - 2.5 * 2; } if (coefficient*2 < dissatisfiedNum && dissatisfiedNum <= coefficient*3) { result = 50 - 2.5 * 3; } if (coefficient*3 < dissatisfiedNum && dissatisfiedNum <= coefficient*4) { result = 50 - 2.5 * 4; } if (coefficient*4 < dissatisfiedNum && dissatisfiedNum <= coefficient*5) { result = 50 - 2.5 * 5; } if (coefficient*5 < dissatisfiedNum && dissatisfiedNum <= coefficient*6) { result = 50 - 2.5 * 6; } if (coefficient*6 < dissatisfiedNum && dissatisfiedNum <= coefficient*7) { result = 50 - 2.5 * 7; } if (coefficient*7 < dissatisfiedNum && dissatisfiedNum <= coefficient*8) { result = 50 - 2.5 * 8; } if (coefficient*8 < dissatisfiedNum && dissatisfiedNum <= coefficient*9) { result = 50 - 2.5 * 9; } if (coefficient*9 < dissatisfiedNum && dissatisfiedNum <= coefficient*10) { result = 50 - 2.5 * 10; } if (coefficient*10 < dissatisfiedNum && dissatisfiedNum <= coefficient*11) { result = 50 - 2.5 * 11; } if (coefficient*11 < dissatisfiedNum && dissatisfiedNum <= coefficient*12) { result = 50 - 2.5 * 12; } if (coefficient* 12 < dissatisfiedNum && dissatisfiedNum <= coefficient*13) { result = 50 - 2.5 * 13; } if (coefficient*13 < dissatisfiedNum && dissatisfiedNum <= coefficient*14) { result = 50 - 2.5 * 14; } if (coefficient*14 < dissatisfiedNum && dissatisfiedNum <= coefficient*15) { result = 50 - 2.5 * 15; } if (coefficient*15 < dissatisfiedNum && dissatisfiedNum <= coefficient*16) { result = 50 - 2.5 * 16; } if (coefficient*16 < dissatisfiedNum && dissatisfiedNum <= coefficient*17) { result = 50 - 2.5 * 17; } if (coefficient*17 < dissatisfiedNum && dissatisfiedNum <= coefficient*18) { result = 50 - 2.5 * 18; } if (coefficient*18 < dissatisfiedNum && dissatisfiedNum <= coefficient*19) { result = 50 - 2.5 * 19; } if (coefficient*19 < dissatisfiedNum && dissatisfiedNum <= coefficient*20) { result = 50 - 2.5 * 20; } if ( coefficient*20 < dissatisfiedNum) { result = 0; }优化后代码
public static double assignment(Double coefficient,Integer dissatisfiedNum){ //不满意得分算法优化 找出规律 利用不满意数除以档位取ceil值 return 50 - Math.ceil(dissatisfiedNum/coefficient)*2.5; }
