|
@ -0,0 +1,111 @@
|
|
|
package com.yihu.quota.controller;
|
|
|
|
|
|
import com.yihu.ehr.constants.ApiVersion;
|
|
|
import com.yihu.ehr.constants.ServiceApi;
|
|
|
import com.yihu.ehr.util.rest.Envelop;
|
|
|
import com.yihu.quota.model.cube.Cube;
|
|
|
import com.yihu.quota.model.cube.CubeMapping;
|
|
|
import com.yihu.quota.model.cube.CubeMemberMapping;
|
|
|
import com.yihu.quota.model.rest.FieldInfo;
|
|
|
import com.yihu.quota.service.cube.CubeMappingService;
|
|
|
import com.yihu.quota.service.cube.CubeMemberMappingService;
|
|
|
import com.yihu.quota.service.cube.CubeService;
|
|
|
import com.yihu.quota.util.ElasticSearchHandler;
|
|
|
import com.yihu.quota.vo.CubeMappingModel;
|
|
|
import com.yihu.quota.vo.CubeMemberMappingModel;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.elasticsearch.client.transport.TransportClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* Created by janseny on 2018/9/19.
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping(ApiVersion.Version1_0)
|
|
|
@Api(description = "OLAP 多维数据集 控制入口")
|
|
|
public class CubeController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private CubeService cubeService;
|
|
|
@Autowired
|
|
|
private CubeMappingService cubeMappingService;
|
|
|
@Autowired
|
|
|
private CubeMemberMappingService cubeMemberMappingService;
|
|
|
|
|
|
|
|
|
@ApiOperation(value = "创建多维数据集ES的mapping结构 ")
|
|
|
@RequestMapping(value = "tj/getQuotaReport", method = RequestMethod.GET)
|
|
|
public Envelop getQuotaReport(
|
|
|
@ApiParam(name = "id", value = "多维数据集ID", required = true)
|
|
|
@RequestParam(value = "id", required = true) int id
|
|
|
) {
|
|
|
Envelop envelop = new Envelop();
|
|
|
try {
|
|
|
List<FieldInfo> fieldInfoList = new ArrayList<>();
|
|
|
Cube cube = cubeService.findOne(id);
|
|
|
String index = "";
|
|
|
String type = "";
|
|
|
if(cube.getIndexName() != null){
|
|
|
index = cube.getIndexName();
|
|
|
}
|
|
|
if(cube.getIndexType() != null){
|
|
|
type = cube.getIndexType();
|
|
|
}
|
|
|
// 数据集维度
|
|
|
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);
|
|
|
}
|
|
|
fieldInfo.setFieldInfos(childFieldiList);
|
|
|
}
|
|
|
}
|
|
|
fieldInfoList.add(fieldInfo);
|
|
|
}
|
|
|
ElasticSearchHandler esHandler = new ElasticSearchHandler();
|
|
|
TransportClient client = esHandler.getTransportClient();
|
|
|
esHandler.createIndexAndCreateMapping(index, type, fieldInfoList, client);
|
|
|
|
|
|
envelop.setSuccessFlg(true);
|
|
|
return envelop;
|
|
|
} catch (Exception e) {
|
|
|
invalidUserException(e, -1, "创建失败:" + e.getMessage());
|
|
|
}
|
|
|
envelop.setSuccessFlg(false);
|
|
|
return envelop;
|
|
|
}
|
|
|
}
|