Commit 03ad67fb by hzc

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

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