Commit 03ad67fb by hzc

保存单位综合得分、单位改善提升得分、综合得分总和、改善提升得分总和

parent 48602639
...@@ -29,4 +29,9 @@ public class ObjScoreCalResult { ...@@ -29,4 +29,9 @@ public class ObjScoreCalResult {
private Integer indCount;//指标个数 private Integer indCount;//指标个数
private String code;//机构编码 private String code;//机构编码
private String compareCatalog;//对标单元目录 private String compareCatalog;//对标单元目录
private String scoreTmpValue;//综合评价
private String scoreTmpSumValue;//综合评价总和
private String improveSumValue;//改善提升总和
} }
...@@ -28,4 +28,9 @@ public class TestObjScoreCalResult { ...@@ -28,4 +28,9 @@ public class TestObjScoreCalResult {
private Integer indCount;//指标个数 private Integer indCount;//指标个数
private String code;//机构编码 private String code;//机构编码
private String compareCatalog;//对标单元目录 private String compareCatalog;//对标单元目录
private String scoreTmpValue;//综合评价
private String scoreTmpSumValue;//综合评价总和
private String improveSumValue;//改善提升总和
} }
...@@ -100,6 +100,7 @@ public class TestScoreRuleService { ...@@ -100,6 +100,7 @@ public class TestScoreRuleService {
int indCount = 0;//定义用户记录纳入考核指标个数 int indCount = 0;//定义用户记录纳入考核指标个数
List<String> values = new ArrayList<>(); List<String> values = new ArrayList<>();
List<String> improveValues = new ArrayList<>(); List<String> improveValues = new ArrayList<>();
List<String> scoreValues = new ArrayList<>();
if(!calResults.isEmpty()) { if(!calResults.isEmpty()) {
//auth:zhangkb time:2020-7-15 desc:填充对标对象描述 //auth:zhangkb time:2020-7-15 desc:填充对标对象描述
objResult.setCompareObjDesc(calResults.get(0).getCompareObjDesc()); objResult.setCompareObjDesc(calResults.get(0).getCompareObjDesc());
...@@ -111,6 +112,15 @@ public class TestScoreRuleService { ...@@ -111,6 +112,15 @@ public class TestScoreRuleService {
//如果考核指标是参与单位计分的 //如果考核指标是参与单位计分的
if(StringUtils.isBlank(driveIndDef.getIsUnitCalScore()) || if(StringUtils.isBlank(driveIndDef.getIsUnitCalScore()) ||
"1".equals(driveIndDef.getIsUnitCalScore())) { "1".equals(driveIndDef.getIsUnitCalScore())) {
if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) {
improveValues.add(calResult.getImproveScore());
}
if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue())
// && !"0.0000".equals(calResult.getValue())
&& !"0".equals(calResult.getValue())) {
scoreValues.add(calResult.getValue());
}
indCount += 1; indCount += 1;
//得分类型:0 指标值直接参与计算 //得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) { if("0".equals(scoreRule.getScoreType())) {
...@@ -124,10 +134,10 @@ public class TestScoreRuleService { ...@@ -124,10 +134,10 @@ public class TestScoreRuleService {
&& !"0".equals(calResult.getValue())) { && !"0".equals(calResult.getValue())) {
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".equals(calResult.getValue())) { && !"0".equals(calResult.getValue())) {
...@@ -148,27 +158,46 @@ public class TestScoreRuleService { ...@@ -148,27 +158,46 @@ public class TestScoreRuleService {
} }
String averageValue = "0.0"; String averageValue = "0.0";
String averageImproveValue = "0.0"; String averageImproveValue = "0.0";
String scoreTmpSumValue ="0.0";
String improveSumValue ="0.0";
String scoreTmpValue = "0.0";
scoreTmpSumValue=CalculateUtils.sumValue(scoreValues);
if("0".equals(type)) {//计算平均值 if("0".equals(type)) {//计算平均值
scoreTmpValue=CalculateUtils.averageValue(scoreValues,1);
averageValue = CalculateUtils.averageValue(values,1); averageValue = CalculateUtils.averageValue(values,1);
} }
if("3".equals(type)){//计算总和 if("3".equals(type)){//计算总和
scoreTmpValue=scoreTmpSumValue;//CalculateUtils.sumValue(scoreValues);
averageValue = CalculateUtils.sumValue(values); averageValue = CalculateUtils.sumValue(values);
} }
if(!improveValues.isEmpty()) { if(!improveValues.isEmpty()) {
improveSumValue=CalculateUtils.sumValue(improveValues);
if("0".equals(type)) { if("0".equals(type)) {
averageImproveValue = CalculateUtils.averageValue(improveValues,1); averageImproveValue = CalculateUtils.averageValue(improveValues,1);
} }
if("3".equals(type)){ if("3".equals(type)){
averageImproveValue = CalculateUtils.sumValue(improveValues); averageImproveValue = improveSumValue;
} }
} }
Double scoreSumValue=0.0;
//计算总积分 //计算总积分
Double scoreSumValue = (Double.parseDouble(CalculateUtils.sumValue(values))+ if("2".equals(scoreRule.getScoreType())){
Double.parseDouble(CalculateUtils.sumValue(improveValues))); scoreSumValue = (Double.parseDouble(scoreTmpSumValue));
}else{
scoreSumValue = (Double.parseDouble(CalculateUtils.sumValue(values))+
Double.parseDouble(CalculateUtils.sumValue(improveValues)));
}
objResult.setScoreSumValue(String.valueOf(scoreSumValue)); objResult.setScoreSumValue(String.valueOf(scoreSumValue));
objResult.setIndCount(indCount); objResult.setIndCount(indCount);
objResult.setScoreValue(averageValue); objResult.setScoreValue(averageValue);
objResult.setImproveValue(averageImproveValue); objResult.setImproveValue(averageImproveValue);
objResult.setImproveSumValue(improveSumValue);
objResult.setScoreTmpSumValue(scoreTmpSumValue);
objResult.setScoreTmpValue(scoreTmpValue);
} }
return objResult; return objResult;
} }
...@@ -179,7 +208,9 @@ public class TestScoreRuleService { ...@@ -179,7 +208,9 @@ public class TestScoreRuleService {
objResult.setScoreValue("0.0"); objResult.setScoreValue("0.0");
objResult.setImproveValue("0.0"); objResult.setImproveValue("0.0");
objResult.setDate(date); objResult.setDate(date);
double scoreTmpSumValue = 0.0;
double improveSumValue = 0.0;
String calFormula = scoreRule.getCalFormula();//计算综合评分分数 String calFormula = scoreRule.getCalFormula();//计算综合评分分数
String improveCalFormula = scoreRule.getCalFormula();//计算改善提升分数 String improveCalFormula = scoreRule.getCalFormula();//计算改善提升分数
if(StringUtils.isNotBlank(calFormula)) { if(StringUtils.isNotBlank(calFormula)) {
...@@ -200,7 +231,16 @@ public class TestScoreRuleService { ...@@ -200,7 +231,16 @@ public class TestScoreRuleService {
if(calresultOp!=null) { if(calresultOp!=null) {
//auth:zhangkb time:2020-7-15 desc:填充对标对象描述 //auth:zhangkb time:2020-7-15 desc:填充对标对象描述
objResult.setCompareObjDesc(calresultOp.getCompareObjDesc()); objResult.setCompareObjDesc(calresultOp.getCompareObjDesc());
if(!"No".equals(calresultOp.getImproveScore()) &&
StringUtils.isNotBlank(calresultOp.getImproveScore())) {
improveSumValue+=Double.parseDouble(calresultOp.getImproveScore());
}
if(!"NaN".equals(calresultOp.getValue()) && !"Infinite".equals(calresultOp.getValue())
// && !"0.0000".equals(calResult.getValue())
&& !"0".equals(calresultOp.getValue())) {
scoreTmpSumValue+=Double.parseDouble(calresultOp.getValue());
}
//得分类型:0 指标值直接参与计算 //得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) { if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calresultOp.getValue()) && !"Infinite".equals(calresultOp.getValue())) { if(!"NaN".equals(calresultOp.getValue()) && !"Infinite".equals(calresultOp.getValue())) {
...@@ -258,6 +298,10 @@ public class TestScoreRuleService { ...@@ -258,6 +298,10 @@ public class TestScoreRuleService {
objResult.setImproveValue(improveValue); 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)));
return objResult; return objResult;
} }
...@@ -269,7 +313,8 @@ public class TestScoreRuleService { ...@@ -269,7 +313,8 @@ public class TestScoreRuleService {
objResult.setScoreValue("0.0"); objResult.setScoreValue("0.0");
objResult.setImproveValue("0.0"); objResult.setImproveValue("0.0");
objResult.setDate(date); objResult.setDate(date);
double improveSumValue=0.0;
double scoreTmpSumValue=0.0;
//根据对标对象,日期查找该对标对象对标的所有指标结果 //根据对标对象,日期查找该对标对象对标的所有指标结果
//改用对标单元目录进行过滤 //改用对标单元目录进行过滤
List<TestDriveIndCalResultDef> calResults = testDriveIndCalResultDefMapper. List<TestDriveIndCalResultDef> calResults = testDriveIndCalResultDefMapper.
...@@ -288,9 +333,14 @@ public class TestScoreRuleService { ...@@ -288,9 +333,14 @@ public class TestScoreRuleService {
Map<String,Double> calScores = this.calIndTypeScore(scoreRule, indTypeWeight, calResults); Map<String,Double> calScores = this.calIndTypeScore(scoreRule, indTypeWeight, calResults);
scoreValue += (calScores.get("score")*Double.parseDouble(indTypeWeight.getWeight())/100); scoreValue += (calScores.get("score")*Double.parseDouble(indTypeWeight.getWeight())/100);
improveValue += (calScores.get("improve")*Double.parseDouble(indTypeWeight.getWeight())/100); improveValue += (calScores.get("improve")*Double.parseDouble(indTypeWeight.getWeight())/100);
improveSumValue+=calScores.get("avgImproveTmpValue");
scoreTmpSumValue+=calScores.get("avgScoreTmpValue");
} }
} }
} }
objResult.setScoreTmpSumValue(String.format("%.8f",new BigDecimal(improveSumValue)));
objResult.setScoreTmpValue(String.format("%.8f",new BigDecimal(improveSumValue)));
objResult.setImproveSumValue(String.format("%.8f",new BigDecimal(scoreTmpSumValue)));
objResult.setScoreValue(String.format("%.8f",new BigDecimal(scoreValue))); objResult.setScoreValue(String.format("%.8f",new BigDecimal(scoreValue)));
objResult.setImproveValue(String.format("%.8f",new BigDecimal(improveValue))); objResult.setImproveValue(String.format("%.8f",new BigDecimal(improveValue)));
return objResult; return objResult;
...@@ -304,6 +354,8 @@ public class TestScoreRuleService { ...@@ -304,6 +354,8 @@ public class TestScoreRuleService {
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> scoreValues = new ArrayList<>();
for(TestDriveIndCalResultDef calResult : calResults) { for(TestDriveIndCalResultDef calResult : calResults) {
String catalogIdPath = indTypeWeight.getCatalogIdPath(); String catalogIdPath = indTypeWeight.getCatalogIdPath();
//根据考核指标id获取考核指标 //根据考核指标id获取考核指标
...@@ -315,6 +367,15 @@ public class TestScoreRuleService { ...@@ -315,6 +367,15 @@ public class TestScoreRuleService {
//如果指标是该指标分类下的 //如果指标是该指标分类下的
if(driveIndDef.getCatalogIdPath().indexOf(catalogIdPath)>=0) { if(driveIndDef.getCatalogIdPath().indexOf(catalogIdPath)>=0) {
//得分类型:0 指标值直接参与计算 //得分类型:0 指标值直接参与计算
if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) {
improveTmpValues.add(calResult.getImproveScore());
}
if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue())
// && !"0.0000".equals(calResult.getValue())
&& !"0".equals(calResult.getValue())) {
scoreValues.add(calResult.getValue());
}
if("0".equals(scoreRule.getScoreType())) { if("0".equals(scoreRule.getScoreType())) {
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())*/) {
...@@ -344,9 +405,20 @@ public class TestScoreRuleService { ...@@ -344,9 +405,20 @@ public class TestScoreRuleService {
//计算平均值 //计算平均值
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 avgImproveTmpValue = "0.0";
if(!improveValues.isEmpty()) { if(!improveValues.isEmpty()) {
averageImproveValue = CalculateUtils.averageValue(improveValues,1); averageImproveValue = CalculateUtils.averageValue(improveValues,1);
} }
if(!scoreValues.isEmpty()){
avgScoreTmpValue = CalculateUtils.averageValue(scoreValues,1);
}
if(!improveTmpValues.isEmpty()){
avgImproveTmpValue = CalculateUtils.averageValue(improveTmpValues,1);
}
result.put("avgScoreTmpValue",Double.parseDouble(avgScoreTmpValue));
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(averageImproveValue));
return result; return result;
......
...@@ -25,13 +25,13 @@ ...@@ -25,13 +25,13 @@
<insert id="batchSave" parameterType="java.util.List"> <insert id="batchSave" parameterType="java.util.List">
insert into obj_score_cal_result( insert into obj_score_cal_result(
compare_id, compare_obj, compare_obj_desc, ind_ids, date, score_value, improve_value, compare_id, compare_obj, compare_obj_desc, ind_ids, date, score_value, improve_value,
score_rank, score_sum_value, ind_count, code,compare_catalog) score_rank, score_sum_value, ind_count, code,compare_catalog,score_tmp_value,score_tmp_sum_value,improve_sum_value)
values values
<foreach collection="datas" item="val" separator=","> <foreach collection="datas" item="val" separator=",">
( (
#{val.compareId}, #{val.compareObj}, #{val.compareObjDesc}, #{val.indIds}, #{val.date}, #{val.compareId}, #{val.compareObj}, #{val.compareObjDesc}, #{val.indIds}, #{val.date},
#{val.scoreValue},#{val.improveValue},#{val.scoreRank},#{val.scoreSumValue},#{val.indCount}, #{val.scoreValue},#{val.improveValue},#{val.scoreRank},#{val.scoreSumValue},#{val.indCount},
#{val.code},#{val.compareCatalog}) #{val.code},#{val.compareCatalog},#{val.scoreTmpValue},#{val.scoreTmpSumValue},#{val.improveSumValue})
</foreach> </foreach>
</insert> </insert>
...@@ -75,6 +75,15 @@ ...@@ -75,6 +75,15 @@
<if test="val.compareCatalog!=null"> <if test="val.compareCatalog!=null">
compare_catalog=#{val.compareCatalog} compare_catalog=#{val.compareCatalog}
</if> </if>
<if test="val.scoreTmpValue!=null">
score_tmp_value=#{val.scoreTmpValue}
</if>
<if test="val.scoreTmpSumValue!=null">
score_tmp_sum_value= #{val.scoreTmpValue}
</if>
<if test="val.improveSumValue!=null">
score_tmp_sum_value=#{val.scoreTmpValue}
</if>
</set> </set>
where id = ${val.id} where id = ${val.id}
</foreach> </foreach>
......
...@@ -24,13 +24,13 @@ ...@@ -24,13 +24,13 @@
<insert id="batchSave" parameterType="java.util.List"> <insert id="batchSave" parameterType="java.util.List">
insert into test_obj_score_cal_result( insert into test_obj_score_cal_result(
compare_id, compare_obj, compare_obj_desc, ind_ids, date, score_value, improve_value, compare_id, compare_obj, compare_obj_desc, ind_ids, date, score_value, improve_value,
score_sum_value, ind_count, code, compare_catalog) score_sum_value, ind_count, code, compare_catalog,score_tmp_value,score_tmp_sum_value,improve_sum_valu)
values values
<foreach collection="datas" item="val" separator=","> <foreach collection="datas" item="val" separator=",">
( (
#{val.compareId}, #{val.compareObj}, #{val.compareObjDesc}, #{val.indIds}, #{val.date}, #{val.compareId}, #{val.compareObj}, #{val.compareObjDesc}, #{val.indIds}, #{val.date},
#{val.scoreValue},#{val.improveValue},#{val.scoreSumValue},#{val.indCount},#{val.code}, #{val.scoreValue},#{val.improveValue},#{val.scoreSumValue},#{val.indCount},#{val.code},
#{val.compareCatalog}) #{val.compareCatalog},#{val.scoreTmpValue},#{val.scoreTmpSumValue},#{val.improveSumValue})
</foreach> </foreach>
</insert> </insert>
...@@ -71,6 +71,15 @@ ...@@ -71,6 +71,15 @@
<if test="val.compareCatalog != null"> <if test="val.compareCatalog != null">
compare_catalog = #{val.compareCatalog}, compare_catalog = #{val.compareCatalog},
</if> </if>
<if test="val.scoreTmpValue!=null">
score_tmp_value=#{val.scoreTmpValue}
</if>
<if test="val.scoreTmpSumValue!=null">
score_tmp_sum_value= #{val.scoreTmpValue}
</if>
<if test="val.improveSumValue!=null">
score_tmp_sum_value=#{val.scoreTmpValue}
</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