Commit c51aa27e by hzc

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

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