|
@ -31,7 +31,7 @@ import java.util.List;
|
|
|
* Created by janseny on 2018/9/19.
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping(ApiVersion.Version1_0)
|
|
|
@RequestMapping(ApiVersion.Version1_0 + "/cube")
|
|
|
@Api(description = "OLAP 多维数据集 控制入口")
|
|
|
public class CubeController extends BaseController {
|
|
|
|
|
@ -41,10 +41,11 @@ public class CubeController extends BaseController {
|
|
|
private CubeMappingService cubeMappingService;
|
|
|
@Autowired
|
|
|
private CubeMemberMappingService cubeMemberMappingService;
|
|
|
|
|
|
@Autowired
|
|
|
private ElasticSearchHandler esHandler;
|
|
|
|
|
|
@ApiOperation(value = "创建多维数据集ES的mapping结构 ")
|
|
|
@RequestMapping(value = "tj/getQuotaReport", method = RequestMethod.GET)
|
|
|
@RequestMapping(value = "/elasticSearchMapping", method = RequestMethod.GET)
|
|
|
public Envelop getQuotaReport(
|
|
|
@ApiParam(name = "id", value = "多维数据集ID", required = true)
|
|
|
@RequestParam(value = "id", required = true) int id
|
|
@ -61,48 +62,70 @@ public class CubeController extends BaseController {
|
|
|
if(cube.getIndexType() != null){
|
|
|
type = cube.getIndexType();
|
|
|
}
|
|
|
boolean isExist = esHandler.isExistsIndex(index,esHandler.getTransportClient());
|
|
|
if(isExist){
|
|
|
envelop.setSuccessFlg(false);
|
|
|
envelop.setErrorMsg("索引已存在");
|
|
|
return envelop;
|
|
|
}
|
|
|
|
|
|
// 数据集维度
|
|
|
List<CubeMappingModel> cubeMappingModels = cubeMappingService.findCubeMappingModels(id);
|
|
|
for(CubeMappingModel cubeMappingModel : cubeMappingModels){
|
|
|
FieldInfo fieldInfo = new FieldInfo();
|
|
|
String fieldName = cubeMappingModel.getDimensionCode();
|
|
|
fieldInfo.setField(fieldName);
|
|
|
fieldInfo.setDataType(cubeMappingModel.getDataType());
|
|
|
if(StringUtils.isNotEmpty(cubeMappingModel.getDict())){
|
|
|
//数据字典 扩展
|
|
|
List<FieldInfo> childDictFieldiList = new ArrayList<>();
|
|
|
FieldInfo childFieldCode = new FieldInfo();
|
|
|
childFieldCode.setField(fieldName + "Name");
|
|
|
childFieldCode.setDataType("String");
|
|
|
FieldInfo childFieldName = new FieldInfo();
|
|
|
childFieldName.setField(fieldName + "Code");
|
|
|
childFieldName.setDataType("String");
|
|
|
childDictFieldiList.add(childFieldCode);
|
|
|
childDictFieldiList.add(childFieldName);
|
|
|
fieldInfo.setFieldInfos(childDictFieldiList);
|
|
|
}else{
|
|
|
// 子成员 扩展
|
|
|
List<CubeMemberMappingModel> cubeMemberMappingModels = cubeMemberMappingService.findCubeMappingModels(cubeMappingModel.getId());
|
|
|
if(cubeMemberMappingModels != null){
|
|
|
List<FieldInfo> childFieldiList = new ArrayList<>();
|
|
|
for(CubeMemberMappingModel cubeMemberMappingModel : cubeMemberMappingModels){
|
|
|
FieldInfo childFieldInfo = new FieldInfo();
|
|
|
childFieldInfo.setField(cubeMemberMappingModel.getDimensionCode());
|
|
|
childFieldInfo.setDataType(cubeMemberMappingModel.getDataType());
|
|
|
childFieldiList.add(childFieldInfo);
|
|
|
String fieldCode = cubeMappingModel.getDimensionCode();
|
|
|
fieldInfo.setField(fieldCode);
|
|
|
// 子成员 扩展
|
|
|
List<CubeMemberMappingModel> cubeMemberMappingModels = cubeMemberMappingService.findCubeMappingModels(cubeMappingModel.getId());
|
|
|
if(cubeMemberMappingModels != null){
|
|
|
//如果存在子集设置 子集属性
|
|
|
if(cubeMappingModel.getChildSaveType() != null){
|
|
|
if(cubeMappingModel.getChildSaveType().equals(1)){
|
|
|
fieldInfo.setDataType("object");
|
|
|
}else if(cubeMappingModel.getChildSaveType().equals(2)){
|
|
|
fieldInfo.setDataType("nested");
|
|
|
}
|
|
|
fieldInfo.setFieldInfos(childFieldiList);
|
|
|
}
|
|
|
List<FieldInfo> childFieldiList = new ArrayList<>();
|
|
|
for(CubeMemberMappingModel cubeMemberMappingModel : cubeMemberMappingModels){
|
|
|
FieldInfo childFieldInfo = new FieldInfo();
|
|
|
childFieldInfo.setField(cubeMemberMappingModel.getDimensionCode());
|
|
|
childFieldInfo.setDataType(cubeMemberMappingModel.getDataType());
|
|
|
childFieldiList.add(childFieldInfo);
|
|
|
if(StringUtils.isNotEmpty(cubeMemberMappingModel.getDict())){
|
|
|
//子集 的 数据字典 扩展
|
|
|
FieldInfo dictFieldCode = new FieldInfo();
|
|
|
dictFieldCode.setField(fieldCode + "Name");
|
|
|
dictFieldCode.setDataType("String");
|
|
|
FieldInfo dictFieldName = new FieldInfo();
|
|
|
dictFieldName.setField(fieldCode + "Code");
|
|
|
dictFieldName.setDataType("String");
|
|
|
childFieldiList.add(dictFieldCode);
|
|
|
childFieldiList.add(dictFieldName);
|
|
|
}
|
|
|
}
|
|
|
fieldInfo.setFieldInfos(childFieldiList);
|
|
|
}else {
|
|
|
fieldInfo.setDataType(cubeMappingModel.getDataType());
|
|
|
}
|
|
|
fieldInfoList.add(fieldInfo);
|
|
|
if(StringUtils.isNotEmpty(cubeMappingModel.getDict())){
|
|
|
//数据字典 扩展
|
|
|
FieldInfo dictFieldCode = new FieldInfo();
|
|
|
dictFieldCode.setField(fieldCode + "Name");
|
|
|
dictFieldCode.setDataType("String");
|
|
|
FieldInfo dictFieldName = new FieldInfo();
|
|
|
dictFieldName.setField(fieldCode + "Code");
|
|
|
dictFieldName.setDataType("String");
|
|
|
fieldInfoList.add(dictFieldCode);
|
|
|
fieldInfoList.add(dictFieldName);
|
|
|
}
|
|
|
}
|
|
|
ElasticSearchHandler esHandler = new ElasticSearchHandler();
|
|
|
TransportClient client = esHandler.getTransportClient();
|
|
|
esHandler.createIndexAndCreateMapping(index, type, fieldInfoList, client);
|
|
|
|
|
|
esHandler.createIndexAndCreateMapping(index, type, fieldInfoList, esHandler.getTransportClient());
|
|
|
envelop.setSuccessFlg(true);
|
|
|
return envelop;
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
invalidUserException(e, -1, "创建失败:" + e.getMessage());
|
|
|
}
|
|
|
envelop.setSuccessFlg(false);
|