Commit c09ed51d by nilu

S21286638 # Client - Incoming Issues (raised by Client) #Convert Express Role…

S21286638 # Client - Incoming Issues (raised by Client) #Convert Express Role Fit results to use same layout as Comprehensive

according to solution provided by client in the attached calculation log of task
parent c1b681bb
package performa.orm;
import oneit.utils.math.NullArith;
public class CandidateClassScore extends BaseCandidateClassScore
{
......@@ -10,4 +12,9 @@ public class CandidateClassScore extends BaseCandidateClassScore
{
// Do not add any code to this, always put it in initialiseNewObject
}
public double getWeightedPercentage()
{
return NullArith.divide(getWghtdClassScore(), getMaxWghtdClassScore()) * 100;
}
}
\ No newline at end of file
......@@ -423,9 +423,29 @@ public class AnalysisEngine
TestAnalysis testAnalysis = candidate.getTestAnalysisFor(level);
Map<FactorClass, Tuple.T3<Double, ColorCode, Double>> scoreMap = new HashMap();
boolean isExpress = level.getAppliedToExpress();
if(testAnalysis != null && testAnalysis.getCandidateClassScoresCount() > 0)
{
Tuple.T3<Double, ColorCode, Double> suitabilityScore = getSuitabilityScore(testAnalysis);
double totalPercentage = 0d;
int count = 0;
for(LevelClassCriteria levelClassCriteria : level.getLevelClassCriteriasSet())
{
FactorClass factorClass = levelClassCriteria.getFactorClass();
Filter<CandidateClassScore> candidateClassScoreFilter = CandidateClassScore.SearchByAll().andFactorClass(new EqualsFilter(factorClass));
CandidateClassScore candidateClassScore = testAnalysis.pipelineTestAnalysis().toCandidateClassScores(candidateClassScoreFilter).val();
if(isExpress && candidateClassScore != null)
{
totalPercentage += candidateClassScore.getWeightedPercentage();
count++;
}
}
double average = totalPercentage / count;
double ratio = (average / suitabilityScore.get2());
for(LevelClassCriteria levelClassCriteria : level.getLevelClassCriteriasSet())
{
FactorClass factorClass = levelClassCriteria.getFactorClass();
......@@ -437,16 +457,23 @@ public class AnalysisEngine
Double scorePercentage = 0d;
ColorCode colorCode = null;
if(candidateClassScore != null && classNormalisation != null && NullArith.greaterThan(classNormalisation.getWghtStddevScore(), 0d))
if(isExpress && candidateClassScore != null)
{
score = (double)candidateClassScore.getWghtdClassScore();
scorePercentage = NullArith.round(NullArith.divide(candidateClassScore.getWeightedPercentage(), ratio), 2);
colorCode = candidateClassScore.getColorCode();
}
else if(candidateClassScore != null && classNormalisation != null && NullArith.greaterThan(classNormalisation.getWghtStddevScore(), 0d))
{
score = classNormalisation.getRoleFitScore(candidateClassScore.getWghtdClassScore());
maxScore = classNormalisation.getRoleFitScore(candidateClassScore.getMaxWghtdClassScore());
colorCode = candidateClassScore.getColorCode();
scorePercentage = NullArith.round(NullArith.divide(NullArith.multiply(score, 100), maxScore), 2);
}
scoreMap.put(factorClass, new Tuple.T3(score, colorCode, scorePercentage));
}
scoreMap.put(null, getSuitabilityScore(testAnalysis));
scoreMap.put(null, suitabilityScore);
}
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> getRoleFitSuitability completed for candidate ", candidate, " Level ", level);
......
......@@ -304,7 +304,7 @@
for(FactorClass factorClass : factorClassDtls.keySet())
{
Map<FactorLevelLink, Map> factorDetails = factorClassDtls.get(factorClass);
Double rating = roleScoreMap.get(factorClass).get2();
Double rating = roleScoreMap.get(factorClass).get2() > 0 ? roleScoreMap.get(factorClass).get2() : 0d;
index++;
......@@ -375,18 +375,11 @@
%>
<div class="appli-row">
<span class="appli-label"><oneit:toString value="<%= factorClass %>" mode="EscapeHTML"/></span>
<span class="appli-percen gray"><oneit:toString value="<%= !job.isExpressJob() ? rating : null %>" mode="PercentageWholeNumber" /></span>
<span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="PercentageWholeNumber" /></span>
<span class="appli-progress-bar">
<%
if(!job.isExpressJob())
{
%>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= rating %>" aria-valuemin="0" aria-valuemax="100" style="width:<%= rating %>%;"></div>
</div>
<%
}
%>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= rating %>" aria-valuemin="0" aria-valuemax="100" style="width:<%= rating %>%;"></div>
</div>
</span>
</div>
......
......@@ -330,30 +330,22 @@
}
Map<FactorLevelLink, Map> factorDetails = factorClassDtls.get(factorClass);
Double rating = roleScoreMap.get(factorClass).get2();
Double rating = roleScoreMap.get(factorClass).get2() > 0 ? roleScoreMap.get(factorClass).get2() : 0d;
ColorCode colorCode = roleScoreMap.get(factorClass).get1();
String cssClass = colorCode != null ? colorCode.getCSSClass() : "";
%>
<div class="main-score-bar main-pro-bar">
<div class="score-bar pro-bar">
<span class="appli-label"><oneit:toString value="<%= factorClass %>" mode="EscapeHTML"/></span>
<span class="appli-percen gray"><oneit:toString value="<%= !job.isExpressJob() ? rating : null%>" mode="PercentageWholeNumber"/></span>
<span class="appli-progress-bar">
<%
if(!job.isExpressJob())
{
%>
<div class="progress">
<div class="progress-bar <%= cssClass %>" role="progressbar" aria-valuenow="<%= rating %>" aria-valuemin="0" aria-valuemax="100" style="width:<%= rating %>%"></div>
</div>
<%
}
%>
</span>
<span class="expand-box">
<span class="hasarrow"><img src="images/select-down-arrow.svg"></span>
</span>
<span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="PercentageWholeNumber"/></span>
<span class="appli-progress-bar">
<div class="progress">
<div class="progress-bar <%= cssClass %>" role="progressbar" aria-valuenow="<%= rating %>" aria-valuemin="0" aria-valuemax="100" style="width:<%= rating %>%"></div>
</div>
</span>
<span class="expand-box">
<span class="hasarrow"><img src="images/select-down-arrow.svg"></span>
</span>
</div>
<div class="core-values expand-hide-tag">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment