提交 e3b67fec 编写于 作者: tangyaolong's avatar tangyaolong

修改导出模型逻辑

上级 eddcb8b5
......@@ -3,7 +3,11 @@ package cn.ibizlab.core.extensions.service;
import cn.ibizlab.core.analysis.domain.DABuild;
import cn.ibizlab.core.analysis.domain.DADimension;
import cn.ibizlab.core.analysis.domain.DAMetric;
import cn.ibizlab.core.analysis.filter.DABuildSearchContext;
import cn.ibizlab.core.analysis.filter.DADimensionSearchContext;
import cn.ibizlab.core.analysis.filter.DAMetricSearchContext;
import cn.ibizlab.core.analysis.service.IDABuildService;
import cn.ibizlab.core.analysis.service.IDADimensionService;
import cn.ibizlab.core.analysis.service.IDAMetricService;
import cn.ibizlab.core.extensions.domain.AssembleModel;
import cn.ibizlab.core.lite.domain.*;
......@@ -14,6 +18,7 @@ import cn.ibizlab.core.lite.extensions.model.DataModel;
import cn.ibizlab.core.lite.extensions.model.Property;
import cn.ibizlab.core.lite.extensions.service.LiteModelService;
import cn.ibizlab.core.lite.filter.DstDataSourceSearchContext;
import cn.ibizlab.core.lite.filter.MetaFieldSearchContext;
import cn.ibizlab.core.lite.service.*;
import cn.ibizlab.core.lite.service.impl.MetaModelServiceImpl;
import cn.ibizlab.core.rule.domain.RuleItem;
......@@ -24,6 +29,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Joiner;
import liquibase.pro.packaged.D;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -43,6 +49,7 @@ import java.io.*;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* 实体[模型] 自定义服务对象
......@@ -67,6 +74,10 @@ public class MetaModelExService extends MetaModelServiceImpl {
@Lazy
public IDAMetricService idaMetricService;
@Resource
@Lazy
public IDADimensionService idaDimensionService;
@Resource
@Lazy
private LiteModelService liteModelService;
......@@ -253,11 +264,13 @@ public class MetaModelExService extends MetaModelServiceImpl {
Map<String, DstSystem> systemMap = new HashMap();
LinkedHashSet<String> entities = new LinkedHashSet<>();
List<DstDataSource> dataSources = new ArrayList<>();
// 查询模型
MetaModel metaModel = metaModelService.get(et.getId());
// 查询模型对应的N个规则
/*if(!ObjectUtils.isEmpty(metaModel.getRuleitems())){
for (RuleItem ruleItem : metaModel.getRuleitems()) {
List<RuleItem> ruleItems = ruleItemService.selectByModelId(metaModel.getId());
if(!ObjectUtils.isEmpty(ruleItems)){
for (RuleItem ruleItem : ruleItems) {
JSONObject fieldSet = JSONObject.parseObject(ruleItem.getFieldSet());
if (!ObjectUtils.isEmpty(fieldSet)) {
for (String entityName : fieldSet.keySet()) {
......@@ -268,31 +281,39 @@ public class MetaModelExService extends MetaModelServiceImpl {
}
}
}
// 查询模型对应的N个(分析)构建
if (!ObjectUtils.isEmpty(metaModel.getBuilds())) {
for (DABuild build : metaModel.getBuilds()) {
build = idaBuildService.get(build.getBuildId());
// 维度中用到的实体
if (!ObjectUtils.isEmpty(build.getDadimension())) {
for (DADimension dimension : build.getDadimension()) {
if (!ObjectUtils.isEmpty(dimension.getName())) {
entities.add(dimension.getName());
}
}
// 查询模型下的N个构建
List<DABuild> daBuilds = dabuildService.selectByModelId(metaModel.getId());
List<String> daBuildIds = daBuilds.stream().map(DABuild::getBuildId).collect(Collectors.toList());
// 查询构建下关联的N个指标
DAMetricSearchContext damSearchContext = new DAMetricSearchContext();
damSearchContext.setN_buildid_in(Joiner.on(";").join(daBuildIds));
Page<DAMetric> daMetrics = idaMetricService.searchDefault(damSearchContext);
// 查询构建下关联的N个维度
DADimensionSearchContext dadSearchContext = new DADimensionSearchContext();
dadSearchContext.setN_buildid_in(Joiner.on(";").join(daBuildIds));
Page<DADimension> daDimensions = idaDimensionService.searchDefault(dadSearchContext);
// 维度中用到的实体
if (!ObjectUtils.isEmpty(daDimensions.getContent())) {
for (DADimension dimension : daDimensions.getContent()) {
if (!ObjectUtils.isEmpty(dimension.getName())) {
entities.add(dimension.getName());
}
// 指标
if (!ObjectUtils.isEmpty(build.getMetrics())) {
for (DAMetric metric : build.getMetrics()) {
JSONObject fieldSet = JSON.parseObject(metric.getFieldSet());
for (String entityName : fieldSet.keySet()) {
if (entityName.endsWith("entity")) {
entities.add(entityName);
}
}
}
}
// 指标中用到的实体
if (!ObjectUtils.isEmpty(daMetrics.getContent())) {
for (DAMetric metric : daMetrics.getContent()) {
JSONObject fieldSet = JSON.parseObject(metric.getFieldSet());
for (String entityName : fieldSet.keySet()) {
if (entityName.endsWith("entity")) {
entities.add(entityName);
}
metrics.addAll(build.getMetrics());
}
}
metrics.addAll(daMetrics.getContent());
}
// 用到的数据源和系统
List<EntityModel> entityModels = getEntityModel(modelId);
......@@ -303,21 +324,22 @@ public class MetaModelExService extends MetaModelServiceImpl {
systemMap.put(entityModel.getEntity().getSystem().getPssystemid(), entityModel.getEntity().getSystem());
}
}
// 查询数据源
if(masterDsName.size()>0){
DstDataSourceSearchContext searchContext = new DstDataSourceSearchContext();
searchContext.setN_dsid_in(Joiner.on(";").join(masterDsName));
searchContext.setSize(entityModels.size());
Page<DstDataSource> dstDataSources = dstDataSourceService.searchDefault(searchContext);
DstDataSourceSearchContext dstDataSourceSearchContext = new DstDataSourceSearchContext();
dstDataSourceSearchContext.setN_dsid_in(Joiner.on(";").join(masterDsName));
dstDataSourceSearchContext.setSize(entityModels.size());
Page<DstDataSource> dstDataSources = dstDataSourceService.searchDefault(dstDataSourceSearchContext);
dataSources.addAll(dstDataSources.getContent());
}
models.setMetrics(metrics);
models.setMetaModel(metaModel);
models.setEntityModels(entityModels);
models.setDaBuilds(metaModel.getBuilds());
models.setRuleItems(metaModel.getRuleitems());
models.setDaBuilds(daBuilds);
models.setRuleItems(ruleItems);
models.setDataSources(dataSources);
models.setSystems(new ArrayList<>(systemMap.values()));*/
models.setSystems(new ArrayList<>(systemMap.values()));
return models;
}
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册