Commit 4a85d4db by hzc

测试报表四新增两个字段

parent 3b6e1ff3
...@@ -117,6 +117,16 @@ public class IndicatorsReportFour implements Serializable { ...@@ -117,6 +117,16 @@ public class IndicatorsReportFour implements Serializable {
@Column(name = "rank_mark_after" ) @Column(name = "rank_mark_after" )
private Integer rankMarkAfter; private Integer rankMarkAfter;
/** /**
* 排名提升排名前三1,2,3
*/
@Column(name = "rank_improve_before" )
private Integer rankImproveBefore;
/**
* 排名提升排名末三1,2,3
*/
@Column(name = "rank_improve_after" )
private Integer rankImproveAfter;
/**
* 对比平均数1大于,2等于,3小于 * 对比平均数1大于,2等于,3小于
*/ */
@Column(name = "compare_avg" ) @Column(name = "compare_avg" )
......
...@@ -212,7 +212,8 @@ public class TaskServiceImpl implements TaskService { ...@@ -212,7 +212,8 @@ public class TaskServiceImpl implements TaskService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveTaskValues(List<TaskIndValue> values, String taskId, Integer indSource) { public void saveTaskValues(List<TaskIndValue> values, String taskId, Integer indSource) {
taskIndValueMapper.deleteByTaskAndSource(taskId, indSource); // taskIndValueMapper.deleteByTaskAndSource(taskId, indSource);
taskIndValueMapper.batchDelete(values);
taskIndValueMapper.batchInsert(values); taskIndValueMapper.batchInsert(values);
} }
......
...@@ -158,9 +158,10 @@ public class IndicatorsReportService { ...@@ -158,9 +158,10 @@ public class IndicatorsReportService {
* @Author hzc * @Author hzc
**/ **/
Map<String,Map<String,Integer>> rankMarkMap = new HashMap<>(); Map<String,Map<String,Integer>> rankMarkMap = new HashMap<>();
//报表四数据
List<IndicatorsReportFour> indicatorsReportFours = new ArrayList<>();
for(String indId : indIds) { for(String indId : indIds) {
//报表四数据
List<IndicatorsReportFour> indicatorsReportFours = new ArrayList<>();
List<IndicatorsReportThree> dataList = new ArrayList<>(); List<IndicatorsReportThree> dataList = new ArrayList<>();
Map<String,String> improveValue = new HashMap<>();//定义存储地区指标增幅,用于排名使用 Map<String,String> improveValue = new HashMap<>();//定义存储地区指标增幅,用于排名使用
String indRule = null; String indRule = null;
...@@ -330,10 +331,12 @@ public class IndicatorsReportService { ...@@ -330,10 +331,12 @@ public class IndicatorsReportService {
Map<String,Integer> resultRank = new HashMap<>(); Map<String,Integer> resultRank = new HashMap<>();
resultRank = CalculateUtils.rankValue(improveValue, indRule); resultRank = CalculateUtils.rankValue(improveValue, indRule);
//提升前三 //提升前三
dataList = this.fillImproveHeadAndAfterCount(compareCatalog,resultRank, dataList, 0, code); Map<String, Integer> rankImproveBeforeMap = this.fillImproveHeadAndAfterCount(compareCatalog, resultRank, dataList, 0, code);
this.setRankImproveBeforeAndAfter(indicatorsReportFours,rankImproveBeforeMap,true);
//清空map //清空map
resultRank.clear(); resultRank.clear();
if("0".equals(indRule)) { if("0".equals(indRule)) {
indRule = "1"; indRule = "1";
}else { }else {
...@@ -341,18 +344,34 @@ public class IndicatorsReportService { ...@@ -341,18 +344,34 @@ public class IndicatorsReportService {
} }
resultRank = CalculateUtils.rankValue(improveValue, indRule); resultRank = CalculateUtils.rankValue(improveValue, indRule);
//提升末三 //提升末三
dataList = this.fillImproveHeadAndAfterCount(compareCatalog,resultRank, dataList, 1, code); Map<String, Integer> rankImproveAfterMap = this.fillImproveHeadAndAfterCount(compareCatalog, resultRank, dataList, 1, code);
this.setRankImproveBeforeAndAfter(indicatorsReportFours,rankImproveAfterMap,false);
this.batchSaveOrUpdateReportThree(dataList); this.batchSaveOrUpdateReportThree(dataList);
} }
} //保存报表四数据
//保存报表四数据 if(indicatorsReportFours.size()>0){
if(indicatorsReportFours.size()>0){ log.info("保存报表四数据,条数:{}",indicatorsReportFours.size());
log.info("保存报表四数据,条数:{}",indicatorsReportFours.size()); indicatorsReportFourMapper.batchInsert(indicatorsReportFours);
indicatorsReportFourMapper.batchInsert(indicatorsReportFours); }
} }
}
}
/**
* type true前三 map 排名根据单位id获取,indicatorsReportFours 报表四的结果集填充排名提升前三末三
* @Param [indicatorsReportFours, map, type]
* @Date 2021/3/1 11:36
* @Author hzc
**/
private void setRankImproveBeforeAndAfter(List<IndicatorsReportFour> indicatorsReportFours,Map<String,Integer> map,boolean type){
for (IndicatorsReportFour four : indicatorsReportFours) {
if(type){
four.setRankImproveBefore(map.get(four.getCompareObj()));
}else{
four.setRankImproveAfter(map.get(four.getCompareObj()));
}
}
}
/** /**
* @Description rankMarkAfterMap 末三 ,rankMarkBeforeMap 前三 * @Description rankMarkAfterMap 末三 ,rankMarkBeforeMap 前三
* @Param [calResults, indRule] * @Param [calResults, indRule]
...@@ -396,9 +415,10 @@ public class IndicatorsReportService { ...@@ -396,9 +415,10 @@ public class IndicatorsReportService {
} }
//type:0 前三 1末三 //type:0 前三 1末三
private List<IndicatorsReportThree> fillImproveHeadAndAfterCount(String compareCatalog, private Map<String,Integer> fillImproveHeadAndAfterCount(String compareCatalog,
Map<String,Integer> resultRank,List<IndicatorsReportThree> dataList,Integer type,String code){ Map<String,Integer> resultRank,List<IndicatorsReportThree> dataList,Integer type,String code){
resultRank = CalculateUtils.sortMapByValue(resultRank,0); resultRank = CalculateUtils.sortMapByValue(resultRank,0);
Map<String,Integer> returnMap = new HashMap<>();
for(IndicatorsReportThree indReportData : dataList) { for(IndicatorsReportThree indReportData : dataList) {
//判断是否存在 //判断是否存在
IndicatorsReportThree DBIndReportData = reportThreeMapper.getByParam( IndicatorsReportThree DBIndReportData = reportThreeMapper.getByParam(
...@@ -418,6 +438,7 @@ public class IndicatorsReportService { ...@@ -418,6 +438,7 @@ public class IndicatorsReportService {
for(Map.Entry<String, Integer> map : resultRank.entrySet()) { for(Map.Entry<String, Integer> map : resultRank.entrySet()) {
if(map.getValue()==1 || map.getValue()==2 || map.getValue()==3) { if(map.getValue()==1 || map.getValue()==2 || map.getValue()==3) {
if(indReportData.getCompareObj().equals(map.getKey())) { if(indReportData.getCompareObj().equals(map.getKey())) {
returnMap.put(map.getKey(), map.getValue());
if(type==0) { if(type==0) {
//填充提升前三指标个数 //填充提升前三指标个数
if(indReportData.getIndImproveHeadThreeCount()==null) { if(indReportData.getIndImproveHeadThreeCount()==null) {
...@@ -441,7 +462,7 @@ public class IndicatorsReportService { ...@@ -441,7 +462,7 @@ public class IndicatorsReportService {
} }
} }
} }
return dataList; return returnMap;
} }
//填充排名前三末三指标个数 //填充排名前三末三指标个数
......
...@@ -5,14 +5,15 @@ ...@@ -5,14 +5,15 @@
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
insert into indicators_report_four( insert into indicators_report_four(
result_id,compare_id,ind_id,ind_name,compare_obj,compare_obj_desc,ind_rule,compare_date,`value`,value_rank,same_value,average,code, result_id,compare_id,ind_id,ind_name,compare_obj,compare_obj_desc,ind_rule,
trend,rank_mark_before,rank_mark_after,compare_avg,compare_catalog) compare_date,`value`,value_rank,same_value,average,code,
trend,rank_mark_before,rank_mark_after,rank_improve_before,rank_improve_after,compare_avg,compare_catalog)
values values
<foreach collection="indicatorsReportFours" item="val" separator=","> <foreach collection="indicatorsReportFours" item="val" separator=",">
( (
#{val.resultId},#{val.compareId},#{val.indId},#{val.indName},#{val.compareObj},#{val.compareObjDesc},#{val.indRule}, #{val.resultId},#{val.compareId},#{val.indId},#{val.indName},#{val.compareObj},#{val.compareObjDesc},#{val.indRule},
#{val.compareDate},#{val.value},#{val.valueRank},#{val.sameValue},#{val.average},#{val.code},#{val.trend},#{val.rankMarkBefore},#{val.rankMarkAfter}, #{val.compareDate},#{val.value},#{val.valueRank},#{val.sameValue},#{val.average},#{val.code},
#{val.compareAvg},#{val.compareCatalog} #{val.trend},#{val.rankMarkBefore},#{val.rankMarkAfter},#{val.rankImproveBefore},#{val.rankImproveAfter},#{val.compareAvg},#{val.compareCatalog}
) )
</foreach> </foreach>
</insert> </insert>
......
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