Commit 4a85d4db by hzc

测试报表四新增两个字段

parent 3b6e1ff3
......@@ -117,6 +117,16 @@ public class IndicatorsReportFour implements Serializable {
@Column(name = "rank_mark_after" )
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小于
*/
@Column(name = "compare_avg" )
......
......@@ -212,7 +212,8 @@ public class TaskServiceImpl implements TaskService {
@Override
@Transactional(rollbackFor = Exception.class)
public void saveTaskValues(List<TaskIndValue> values, String taskId, Integer indSource) {
taskIndValueMapper.deleteByTaskAndSource(taskId, indSource);
// taskIndValueMapper.deleteByTaskAndSource(taskId, indSource);
taskIndValueMapper.batchDelete(values);
taskIndValueMapper.batchInsert(values);
}
......
......@@ -158,9 +158,10 @@ public class IndicatorsReportService {
* @Author hzc
**/
Map<String,Map<String,Integer>> rankMarkMap = new HashMap<>();
//报表四数据
List<IndicatorsReportFour> indicatorsReportFours = new ArrayList<>();
for(String indId : indIds) {
//报表四数据
List<IndicatorsReportFour> indicatorsReportFours = new ArrayList<>();
List<IndicatorsReportThree> dataList = new ArrayList<>();
Map<String,String> improveValue = new HashMap<>();//定义存储地区指标增幅,用于排名使用
String indRule = null;
......@@ -330,10 +331,12 @@ public class IndicatorsReportService {
Map<String,Integer> resultRank = new HashMap<>();
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
resultRank.clear();
if("0".equals(indRule)) {
indRule = "1";
}else {
......@@ -341,18 +344,34 @@ public class IndicatorsReportService {
}
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);
}
}
//保存报表四数据
if(indicatorsReportFours.size()>0){
log.info("保存报表四数据,条数:{}",indicatorsReportFours.size());
indicatorsReportFourMapper.batchInsert(indicatorsReportFours);
//保存报表四数据
if(indicatorsReportFours.size()>0){
log.info("保存报表四数据,条数:{}",indicatorsReportFours.size());
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 前三
* @Param [calResults, indRule]
......@@ -396,9 +415,10 @@ public class IndicatorsReportService {
}
//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){
resultRank = CalculateUtils.sortMapByValue(resultRank,0);
Map<String,Integer> returnMap = new HashMap<>();
for(IndicatorsReportThree indReportData : dataList) {
//判断是否存在
IndicatorsReportThree DBIndReportData = reportThreeMapper.getByParam(
......@@ -418,6 +438,7 @@ public class IndicatorsReportService {
for(Map.Entry<String, Integer> map : resultRank.entrySet()) {
if(map.getValue()==1 || map.getValue()==2 || map.getValue()==3) {
if(indReportData.getCompareObj().equals(map.getKey())) {
returnMap.put(map.getKey(), map.getValue());
if(type==0) {
//填充提升前三指标个数
if(indReportData.getIndImproveHeadThreeCount()==null) {
......@@ -441,7 +462,7 @@ public class IndicatorsReportService {
}
}
}
return dataList;
return returnMap;
}
//填充排名前三末三指标个数
......
......@@ -5,14 +5,15 @@
<insert id="batchInsert" parameterType="java.util.List">
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,
trend,rank_mark_before,rank_mark_after,compare_avg,compare_catalog)
result_id,compare_id,ind_id,ind_name,compare_obj,compare_obj_desc,ind_rule,
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
<foreach collection="indicatorsReportFours" item="val" separator=",">
(
#{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.compareAvg},#{val.compareCatalog}
#{val.compareDate},#{val.value},#{val.valueRank},#{val.sameValue},#{val.average},#{val.code},
#{val.trend},#{val.rankMarkBefore},#{val.rankMarkAfter},#{val.rankImproveBefore},#{val.rankImproveAfter},#{val.compareAvg},#{val.compareCatalog}
)
</foreach>
</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