提交 cb3a98b0 编写于 作者: sq3536's avatar sq3536

提交

上级 3c56a765
package cn.ibizlab.core.extensions.domain;
package cn.ibizlab.core.extensions.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
......
package cn.ibizlab.core.extensions.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.util.StringUtils;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@JsonIgnoreProperties(ignoreUnknown = true)
@Getter
@Setter
@NoArgsConstructor
@Accessors(chain = true)
public class FetchParam {
private String reportId;
private String chartId;
private String buildId;
// 表格展示类型:1. default(维度数据以行的形式展示),2. LIST_BOX(维度数据以列的形式展示)
private String displayType = "default";
private String dimDict = "DST_cl_dst_region";
private List<String> dimValues;
private String dimValue;
private boolean includeChild = true;
private List<String> metricIds;
private String metricId;
@JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone = "GMT+8")
@JSONField(name = "startTime", format = "yyyy-MM-dd")
private Timestamp startTime;
@JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone = "GMT+8")
@JSONField(name = "endTime", format = "yyyy-MM-dd")
private Timestamp endTime;
private int page = 0;
private int size = 100;
public List<String> getDimValues()
{
if(dimValues == null&&(!includeChild)&&(!StringUtils.isEmpty(dimValue)))
{
dimValues = new ArrayList<>();
dimValues.add(dimValue);
}
return dimValues;
}
public List<String> getMetricIds()
{
if(metricIds == null)
{
metricIds = new ArrayList<>();
if(StringUtils.isEmpty(metricId))
metricIds.add(metricId);
}
return metricIds;
}
@JsonIgnore
@JSONField(serialize = false)
private Map<String,List<String>> dimTables;
@JsonIgnore
@JSONField(serialize = false)
public Map<String,List<String>> getDimTables()
{
if(dimTables==null)
dimTables = new LinkedHashMap<>();
return dimTables;
}
@JsonIgnore
@JSONField(serialize = false)
public FetchParam getDimTables(Map<String,List<String>> dimTables)
{
this.dimTables = dimTables;
return this;
}
}
package cn.ibizlab.core.extensions.dto;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.util.*;
@Getter
@Setter
@NoArgsConstructor
@Accessors(chain = true)
public class VMConfig {
private String headerName;
private String width;
@JSONField(name = "entity")
@JsonProperty("entity")
private String buildId;
@JSONField(name = "field")
@JsonProperty("field")
private String metricId;
private List<VMConfig> children;
public Map<String, Set<String>> getBuilds(Map<String,Set<String>> builds)
{
if(builds == null)
{
builds = new LinkedHashMap<>();
}
if((!StringUtils.isEmpty(buildId)) && (!StringUtils.isEmpty(metricId)))
{
if(builds.containsKey(buildId))
{
builds.get(buildId).add(metricId);
}
else
{
Set<String> metricIds = new LinkedHashSet<>();
metricIds.add(metricId);
builds.put(buildId,metricIds);
}
}
if(!ObjectUtils.isEmpty(children))
{
for(VMConfig item:children)
item.getBuilds(builds);
}
return builds;
}
public static Map<String, Set<String>> getBuilds(String vmConfig)
{
if(!StringUtils.isEmpty(vmConfig))
{
List<VMConfig> cols= JSONArray.parseArray(vmConfig,VMConfig.class);
return getBuilds(cols);
}
return new LinkedHashMap<>();
}
public static Map<String, Set<String>> getBuilds(List<VMConfig> list)
{
Map<String,Set<String>> builds = new LinkedHashMap<>();
list.forEach(item->{
item.getBuilds(builds);
});
return builds;
}
}
package cn.ibizlab.core.extensions.service;
import cn.ibizlab.core.analysis.domain.DAChart;
import cn.ibizlab.core.analysis.domain.DAReport;
import cn.ibizlab.core.analysis.service.IDAChartService;
import cn.ibizlab.core.analysis.service.impl.DAReportServiceImpl;
import cn.ibizlab.core.dict.extensions.service.DictDstService;
import cn.ibizlab.core.extensions.cql.ExecResult;
import cn.ibizlab.core.extensions.cql.ExecResultRepository;
import cn.ibizlab.core.extensions.domain.BuildResult;
import com.datastax.driver.core.LocalDate;
import com.datastax.driver.core.PagingState;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Statement;
import cn.ibizlab.core.extensions.dto.BuildResult;
import cn.ibizlab.core.extensions.dto.FetchParam;
import cn.ibizlab.core.extensions.dto.VMConfig;
import cn.ibizlab.util.dict.CodeItem;
import cn.ibizlab.util.dict.CodeList;
import com.alibaba.fastjson.JSONArray;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import static com.datastax.driver.core.querybuilder.QueryBuilder.*;
import static com.datastax.driver.core.querybuilder.QueryBuilder.lte;
@Service
......@@ -34,6 +39,76 @@ public class BuildResultService {
@Lazy
private ExecResultRepository execResultRepository;
@Autowired
@Lazy
private DictDstService dictDstService;
@Autowired
@Lazy
private DAReportServiceImpl daReportService;
@Autowired
@Lazy
private IDAChartService daChartService;
@Autowired
@Lazy
private DABuildExService daBuildExService;
private void prepareFetchParam(FetchParam fetchParam)
{
if( (!StringUtils.isEmpty(fetchParam.getDimDict())) && (!StringUtils.isEmpty(fetchParam.getDimValue())) && fetchParam.isIncludeChild() && fetchParam.getDimValues() == null)
{
List<String> dimValues = new ArrayList<>();
dimValues.add(fetchParam.getDimValue());
CodeList dict = dictDstService.getCodeListCatalog(fetchParam.getDimDict());
if(dict!=null)
{
CodeItem code= dict.findChildren(fetchParam.getDimValue());
if(code!=null && code.getChildren()!=null) {
code.getChildren().forEach(codeItem -> {
dimValues.add(codeItem.getValue().toString());
});
}
}
fetchParam.setDimValues(dimValues);
}
if(ObjectUtils.isEmpty(fetchParam.getMetricIds()))
{
String vmConfig="";
if(!StringUtils.isEmpty(fetchParam.getReportId()))
{
DAReport daReport = daReportService.getById(fetchParam.getReportId());
if(daReport != null)
vmConfig = daReport.getConfig();
}
else if(!StringUtils.isEmpty(fetchParam.getChartId()))
{
DAChart daChart = daChartService.getById(fetchParam.getChartId());
if(daChart != null)
vmConfig = daChart.getConfig();
}
Map<String, Set<String>> builds = null;
if(StringUtils.isEmpty(vmConfig))
builds = VMConfig.getBuilds(vmConfig);
else
{
builds = new LinkedHashMap<>();
if(StringUtils.isEmpty(fetchParam.getBuildId())) {
builds.put(fetchParam.getBuildId(), new LinkedHashSet<>());
}
}
builds.keySet().forEach(key->{
});
}
}
public List<BuildResult> sum(List<String> ruleids, Integer retValue, List<String> dims, Timestamp start, Timestamp end) {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册