Commit c51aa27e by hzc

报表二增加提升排名123明细

parent 29382506
......@@ -2,6 +2,7 @@ package com.keymobile.indicators.akka.actor.indicators;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog;
......
......@@ -44,7 +44,20 @@ public class IndicatorsReportTwo {
private String sameImproveHeadThreeDesc;//同比提升前三描述
private String sameImproveAfterThree;//同比提升末三
private String sameImproveAfterThreeDesc;//同比提升末三描述
private String sameImproveOne;//同比提升第一
private String sameImproveOneDesc;//同比提升第一描述
private String sameImproveTwo;//同比提升第二
private String sameImproveTwoDesc;//同比提升第二描述
private String sameImproveThree;//同比提升第三
private String sameImproveThreeDesc;//同比提升第三描述
private String sameImproveLastOne;//同比提升末一
private String sameImproveLastOneDesc;//同比提升末一描述
private String sameImproveLastTwo;//同比提升末二
private String sameImproveLastTwoDesc;//同比提升末二描述
private String sameImproveLastThree;//同比提升末三
private String sameImproveLastThreeDesc;//同比提升末三描述
//author:zhangkb time:2020-9-16 desc:添加具体排名字段
private String rankOne;//排名第一
private String rankOneDesc;//排名第一描述
......
......@@ -281,6 +281,10 @@ public class ScoreRuleService {
if(!"No".equals(calresultOp.getImproveScore()) &&
StringUtils.isNotBlank(calresultOp.getImproveScore())) {
improveSumValue+=Double.parseDouble(calresultOp.getImproveScore());
improveCalFormula = improveCalFormula.replace("["+indId+"]",
calresultOp.getImproveScore());
}else {
improveCalFormula = improveCalFormula.replace("["+indId+"]","0.0");
}
if(!"NaN".equals(calresultOp.getValue()) && !"Infinite".equals(calresultOp.getValue())
// && !"0.0000".equals(calResult.getValue())
......@@ -303,13 +307,14 @@ public class ScoreRuleService {
scoreSumValue += Double.parseDouble(calresultOp.getScore());
if(!"No".equals(calresultOp.getImproveScore()) &&
StringUtils.isNotBlank(calresultOp.getImproveScore())) {
improveCalFormula = improveCalFormula.replace("["+indId+"]",
calresultOp.getImproveScore());
// improveCalFormula = improveCalFormula.replace("["+indId+"]",
// calresultOp.getImproveScore());
//算积分总和
scoreSumValue += Double.parseDouble(calresultOp.getImproveScore());
}else {
improveCalFormula = improveCalFormula.replace("["+indId+"]","0.0");
}
// else {
// improveCalFormula = improveCalFormula.replace("["+indId+"]","0.0");
// }
}else {//2指标得分分数参与计算(指标分数=综合+改善)
String score = "0.0";
if(!"No".equals(calresultOp.getImproveScore()) &&
......@@ -345,17 +350,17 @@ public class ScoreRuleService {
String scoreValue = String.format("%.8f",
new BigDecimal((Double)AviatorEvaluator.execute(calFormula)));
objResult.setScoreValue(scoreValue);
objResult.setImproveValue("0.0");
//objResult.setImproveValue("0.0");
}else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算)
String scoreValue = String.format("%.8f",
new BigDecimal((Double)AviatorEvaluator.execute(calFormula)));
String improveValue = String.format("%.8f",
new BigDecimal((Double)AviatorEvaluator.execute(improveCalFormula)));
objResult.setScoreValue(scoreValue);
objResult.setImproveValue(improveValue);
}
}
String improveValue = String.format("%.8f",
new BigDecimal((Double)AviatorEvaluator.execute(improveCalFormula)));
objResult.setImproveValue(improveValue);
objResult.setImproveSumValue(String.format("%.8f",new BigDecimal(improveSumValue)));
objResult.setScoreTmpValue(String.format("%.8f",new BigDecimal(scoreTmpSumValue)));
objResult.setScoreTmpSumValue(String.format("%.8f",new BigDecimal(scoreTmpSumValue)));
......@@ -400,7 +405,11 @@ public class ScoreRuleService {
//author:zhangkb time:2020-9-15 desc:score和improve相加做为积分总和
improveSumValue+=calScores.get("avgImproveTmpValue");
scoreTmpSumValue+=calScores.get("avgScoreTmpValue");
scoreSumValue += calScores.get("score")+calScores.get("improve");
scoreSumValue +=calScores.get("score");
if("1".equals(scoreRule.getScoreType())){
scoreSumValue += calScores.get("score")+calScores.get("improve");
}
}
}
}
......@@ -419,7 +428,7 @@ public class ScoreRuleService {
result.put("score", 0.0);
result.put("improve", 0.0);
List<String> values = new ArrayList<>();
List<String> improveValues = new ArrayList<>();
//List<String> improveValues = new ArrayList<>();
List<String> improveTmpValues = new ArrayList<>();
List<String> scoreValues = new ArrayList<>();
......@@ -454,10 +463,10 @@ public class ScoreRuleService {
values.add(calResult.getScore());
}
if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) {
improveValues.add(calResult.getImproveScore());
}
// if(!"No".equals(calResult.getImproveScore()) &&
// StringUtils.isNotBlank(calResult.getImproveScore())) {
// improveValues.add(calResult.getImproveScore());
// }
}else {//2指标得分分数参与计算(指标分数=综合+改善)
if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue())
/*&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())*/) {
......@@ -479,12 +488,12 @@ public class ScoreRuleService {
}
//计算平均值
String averageValue = CalculateUtils.averageValue(values,1);
String averageImproveValue = "0.0";
// String averageImproveValue = "0.0";
String avgScoreTmpValue = "0.0";
String avgImproveTmpValue = "0.0";
if(!improveValues.isEmpty()) {
averageImproveValue = CalculateUtils.averageValue(improveValues,1);
}
// if(!improveValues.isEmpty()) {
// averageImproveValue = CalculateUtils.averageValue(improveValues,1);
// }
if(!scoreValues.isEmpty()){
avgScoreTmpValue = CalculateUtils.averageValue(scoreValues,1);
}
......@@ -495,7 +504,7 @@ public class ScoreRuleService {
result.put("avgScoreTmpValue",Double.parseDouble(avgScoreTmpValue));
result.put("avgImproveTmpValue",Double.parseDouble(avgImproveTmpValue));
result.put("score", Double.parseDouble(averageValue));
result.put("improve", Double.parseDouble(averageImproveValue));
result.put("improve", Double.parseDouble(avgImproveTmpValue));
return result;
}
......@@ -540,8 +549,11 @@ public class ScoreRuleService {
Map<String,String> scoreRankMap = new HashMap<>();
for(ObjScoreCalResult scoreResult : datas) {
//计算综合评价和改善提升总分
Double scoreSum = Double.parseDouble(scoreResult.getScoreValue())+
Double.parseDouble(scoreResult.getImproveValue());
Double scoreSum = Double.parseDouble(scoreResult.getScoreValue());
if("1".equals(scoreRule.getScoreType())){
scoreSum = Double.parseDouble(scoreResult.getScoreValue())+
Double.parseDouble(scoreResult.getImproveValue());
}
scoreRankMap.put(scoreResult.getCompareObj(), String.valueOf(scoreSum));
}
//排名(正向排序)
......
......@@ -925,9 +925,32 @@ public class IndicatorsReportService {
end = Integer.parseInt(objSortRank.get("rankNum").toString());
StringBuilder sameImproveHeadThree = new StringBuilder("");//同比提升前三
StringBuilder sameImproveHeadThreeDesc = new StringBuilder("");
StringBuilder sameImproveOne = new StringBuilder("");
StringBuilder sameImproveOneDesc = new StringBuilder("");
StringBuilder sameImproveTwo = new StringBuilder("");
StringBuilder sameImproveTwoDesc = new StringBuilder("");
StringBuilder sameImproveThree = new StringBuilder("");
StringBuilder sameImproveThreeDesc = new StringBuilder("");
for(Map.Entry<String,Integer> entry : resultRank.entrySet()) {
sameImproveHeadThree.append(entry.getKey()).append(";");
sameImproveHeadThreeDesc.append(compareObjMapper.get(entry.getKey())).append(";");
if(entry.getValue()!=null&&entry.getValue()==1){
sameImproveOne.append(entry.getKey()).append(";");
sameImproveOneDesc.append(compareObjMapper.get(entry.getKey())).append(";");
}else if(entry.getValue()!=null&&entry.getValue()==2){
sameImproveTwo.append(entry.getKey()).append(";");
sameImproveTwoDesc.append(compareObjMapper.get(entry.getKey())).append(";");
}else if(entry.getValue()!=null&&entry.getValue()==3){
sameImproveThree.append(entry.getKey()).append(";");
sameImproveThreeDesc.append(compareObjMapper.get(entry.getKey())).append(";");
}
start += 1;
if(start>=end) {
break;
......@@ -935,26 +958,71 @@ public class IndicatorsReportService {
}
indReportData.setSameImproveHeadThree(sameImproveHeadThree.toString());
indReportData.setSameImproveHeadThreeDesc(sameImproveHeadThreeDesc.toString());
indReportData.setSameImproveOne(sameImproveOne.toString());
indReportData.setSameImproveOneDesc(sameImproveOneDesc.toString());
indReportData.setSameImproveTwo(sameImproveTwo.toString());
indReportData.setSameImproveTwoDesc(sameImproveTwoDesc.toString());
indReportData.setSameImproveThree(sameImproveThree.toString());
indReportData.setSameImproveThreeDesc(sameImproveThreeDesc.toString());
start = 0;
//同比提升末三
StringBuilder sameImproveAfterThree = new StringBuilder("");//同比提升末三
StringBuilder sameImproveAfterThreeDesc = new StringBuilder("");//
StringBuilder sameImproveLastOne = new StringBuilder("");
StringBuilder sameImproveLastOneDesc = new StringBuilder("");
StringBuilder sameImproveLastTwo = new StringBuilder("");
StringBuilder sameImproveLastTwoDesc = new StringBuilder("");
StringBuilder sameImproveLastThree = new StringBuilder("");
StringBuilder sameImproveLastThreeDesc = new StringBuilder("");
resultRank = CalculateUtils.sortMapByValue(resultRank,1);//按照value从大到小排序
//根据省对市地区顺序排列排名并列的情况
objSortRank = CalculateUtils.rankByObjSort(resultRank, objSort);
resultRank = (Map<String,Integer>)objSortRank.get("rankMap");
end = Integer.parseInt(objSortRank.get("rankNum").toString());
for(Map.Entry<String,Integer> entry : resultRank.entrySet()) {
sameImproveAfterThree.append(entry.getKey()).append(";");
sameImproveAfterThreeDesc.append(compareObjMapper.get(entry.getKey())).append(";");
if(entry.getValue()!=null&&entry.getValue()==1){
sameImproveLastOne.append(entry.getKey()).append(";");
sameImproveLastOneDesc.append(compareObjMapper.get(entry.getKey())).append(";");
}else if(entry.getValue()!=null&&entry.getValue()==2){
sameImproveLastTwo.append(entry.getKey()).append(";");
sameImproveLastTwoDesc.append(compareObjMapper.get(entry.getKey())).append(";");
}else if(entry.getValue()!=null&&entry.getValue()==3){
sameImproveLastThree.append(entry.getKey()).append(";");
sameImproveLastThreeDesc.append(compareObjMapper.get(entry.getKey())).append(";");
}
start += 1;
if(start>=end) {
break;
}
}
indReportData.setSameImproveAfterThree(sameImproveAfterThree.toString());
indReportData.setSameImproveAfterThreeDesc(sameImproveAfterThreeDesc.toString());
indReportData.setSameImproveLastOne(sameImproveLastOne.toString());
indReportData.setSameImproveLastOneDesc(sameImproveLastOneDesc.toString());
indReportData.setSameImproveLastTwo(sameImproveLastTwo.toString());
indReportData.setSameImproveLastTwoDesc(sameImproveTwoDesc.toString());
indReportData.setSameImproveLastThree(sameImproveLastThree.toString());
indReportData.setSameImproveLastThreeDesc(sameImproveLastThreeDesc.toString());
}else {//置为空
indReportData.setSameImproveHeadThree(null);
indReportData.setSameImproveHeadThreeDesc(null);
......
......@@ -21,7 +21,9 @@
rank_after_three_desc,same_improve_head_three,same_improve_head_three_desc,same_improve_after_three,
same_improve_after_three_desc,same_average,rank_one,rank_one_desc,rank_two,rank_two_desc,
rank_three,rank_three_desc,rank_last_one,rank_last_one_desc,rank_last_two,rank_last_two_desc,
rank_last_three,rank_last_three_desc,code,compare_catalog)
rank_last_three,rank_last_three_desc,code,compare_catalog,
same_improve_one,same_improve_one_desc,same_improve_two,same_improve_two_desc,same_improve_three,same_improve_three_desc,
same_improve_last_one,same_improve_last_one_desc,same_improve_last_two,same_improve_last_two_desc,same_improve_last_three,same_improve_last_three_desc)
values
<foreach collection="datas" item="val" separator=",">
(
......@@ -33,7 +35,10 @@
#{val.sameImproveAfterThree},#{val.sameImproveAfterThreeDesc},#{val.sameAverage},
#{val.rankOne},#{val.rankOneDesc},#{val.rankTwo},#{val.rankTwoDesc},#{val.rankThree},
#{val.rankThreeDesc},#{val.rankLastOne},#{val.rankLastOneDesc},#{val.rankLastTwo},
#{val.rankLastTwoDesc},#{val.rankLastThree},#{val.rankLastThreeDesc},#{val.code},#{val.compareCatalog}
#{val.rankLastTwoDesc},#{val.rankLastThree},#{val.rankLastThreeDesc},#{val.code},#{val.compareCatalog},
#{val.sameImproveOne},#{val.sameImproveOneDesc},#{val.sameImproveTwo},#{val.sameImproveTwoDesc},
#{val.sameImproveThree},#{val.sameImproveThreeDesc},#{val.sameImproveLastOne},#{val.sameImproveLastOneDesc},
#{val.sameImproveLastTwo},#{val.sameImproveLastTwoDesc},#{val.sameImproveLastThree},#{val.sameImproveLastThreeDesc}
)
</foreach>
</insert>
......@@ -165,6 +170,58 @@
<if test="val.compareCatalog != null">
compare_catalog = #{val.compareCatalog},
</if>
<if test="val.compareCatalog != null">
compare_catalog = #{val.compareCatalog},
</if>
<if test="val.sameImproveOne != null">
same_improve_one = #{val.sameImproveOne},
</if>
<if test="val.sameImproveOneDesc != null">
same_improve_one_desc = #{val.sameImproveOneDesc},
</if>
<if test="val.sameImproveTwo != null">
same_improve_two = #{val.sameImproveTwo},
</if>
<if test="val.sameImproveTwoDesc != null">
same_improve_three = #{val.sameImproveTwoDesc},
</if>
<if test="val.sameImproveThree != null">
same_improve_two_desc = #{val.sameImproveThree},
</if>
<if test="val.sameImproveThreeDesc != null">
same_improve_three_desc = #{val.sameImproveThreeDesc},
</if>
<if test="val.sameImproveLastOne != null">
same_improve_last_one = #{val.sameImproveLastOne},
</if>
<if test="val.sameImproveLastOneDesc != null">
same_improve_last_one_desc = #{val.sameImproveLastOneDesc},
</if>
<if test="val.sameImproveLastTwo != null">
same_improve_last_two = #{val.sameImproveLastTwo},
</if>
<if test="val.sameImproveLastTwo != null">
same_improve_last_two_desc = #{val.sameImproveLastTwo},
</if>
<if test="val.sameImproveLastThree != null">
same_improve_last_three = #{val.sameImproveLastThree},
</if>
<if test="val.sameImproveLastThreeDesc != null">
same_improve_last_three_desc = #{val.sameImproveLastThreeDesc},
</if>
</set>
where id = ${val.id}
</foreach>
......
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