|
@ -149,27 +149,43 @@ public class AggregationBuildHandler {
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String, Object>> tableDataParsing(String viewCode ,Map<String, Aggregation> map){
|
|
|
List<String> rowList = new LinkedList<>();
|
|
|
rowList.add("town_terms");
|
|
|
rowList.add("total");
|
|
|
List<String> cloumnList = new ArrayList<>();
|
|
|
cloumnList.add("total_count_result");
|
|
|
cloumnList.add("sex_terms");
|
|
|
// List<String> rowList = new LinkedList<>();
|
|
|
// rowList.add("town_terms");
|
|
|
// rowList.add("total");
|
|
|
// List<String> cloumnList = new ArrayList<>();
|
|
|
// cloumnList.add("total_count_result");
|
|
|
// cloumnList.add("sex_terms");
|
|
|
|
|
|
View view = viewDao.findByCode(viewCode);
|
|
|
// if(view == null){
|
|
|
// logger.debug("视图不存在");
|
|
|
// return null;
|
|
|
// }
|
|
|
// rowList = getRowDimensionList(view.getId());
|
|
|
// cloumnList = getColumnDimensionList(view.getId());
|
|
|
if(view == null){
|
|
|
logger.debug("视图不存在");
|
|
|
return null;
|
|
|
}
|
|
|
List<String> rowList = getRowDimensionList(view.getId());
|
|
|
List<String> cloumnList = getColumnDimensionList(view.getId());
|
|
|
|
|
|
List<ViewQuota> viewQuotas = viewQuotaDao.findByViewId(view.getId());
|
|
|
// List<ViewQuotaFilter> viewFilters = viewQuotaFilterDao.findByRelationId(view.getId());
|
|
|
Map<String, Object> quotaMap = new HashMap<>();
|
|
|
for(ViewQuota viewQuota :viewQuotas){
|
|
|
List<ViewQuotaFilter> viewQuotaFilters = viewQuotaFilterDao.findByRelationId(viewQuota.getId());
|
|
|
String filter = "noFilter";
|
|
|
if(viewQuotaFilters != null && viewQuotaFilters.size() > 0){
|
|
|
filter = "yesFilter";
|
|
|
}
|
|
|
quotaMap.put(viewQuota.getCode(),filter);
|
|
|
//指标也作为列维度
|
|
|
cloumnList.add(viewQuota.getBasicFormulaType() +"-result");
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> resultList = new LinkedList<Map<String, Object>>();
|
|
|
//合计行 数据处理 开始
|
|
|
boolean total = false;
|
|
|
Map<String, Object> totalResultMap = new HashMap<>();
|
|
|
totalResultMap.put(rowList.get(0),"total");//默认第一个行维度
|
|
|
for(String rowAggCode: rowList) {
|
|
|
if (rowAggCode.contains("total")) {
|
|
|
total = true;
|
|
|
for (String cloumnAggCode : cloumnList) {
|
|
|
for(String aggCode:map.keySet()) {
|
|
|
Aggregation aggregation = map.get(aggCode);
|
|
@ -187,8 +203,10 @@ public class AggregationBuildHandler {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
resultList.add(totalResultMap);
|
|
|
//合计行 数据处理 接收
|
|
|
if(total){
|
|
|
resultList.add(totalResultMap);
|
|
|
//合计行 数据处理 接收
|
|
|
}
|
|
|
|
|
|
//非合计数据处理
|
|
|
for(String rowAggCode: rowList){
|
|
@ -362,10 +380,12 @@ public class AggregationBuildHandler {
|
|
|
// 视图各组组内顶层行维度(升序)
|
|
|
List<ViewDimension> groupTopRowDimensionList = viewDimensionDao.getGroupTopRowDimensionList(viewId);
|
|
|
for (ViewDimension viewDimension : groupTopRowDimensionList) {
|
|
|
String dataType = cubeService.findDimensionDataType("cubeCode:1", viewDimension.getDimensionCode());
|
|
|
String aggType = "-terms";
|
|
|
if(dataType.equals("date")){
|
|
|
aggType = "-date_histogram";
|
|
|
String dataType = cubeService.findDimensionDataType("cubeCode:1", viewDimension.getDimensionCode());
|
|
|
if(!StringUtils.isEmpty(dataType)){
|
|
|
if(dataType.equals("date")){
|
|
|
aggType = "-date_histogram";
|
|
|
}
|
|
|
}
|
|
|
rowList.add(viewDimension.getDimensionCode() + aggType);
|
|
|
List<ViewDimension> otherRowDimensionList = viewDimensionDao.getGroupOtherRowDimensionList(viewId, viewDimension.getGroupRow());
|