|
@ -8,6 +8,7 @@ import com.yihu.ehr.util.datetime.DateUtil;
|
|
|
import com.yihu.quota.etl.formula.AgeGroupFunc;
|
|
|
import com.yihu.quota.etl.formula.DictFunc;
|
|
|
import com.yihu.quota.etl.formula.DivisionFunc;
|
|
|
import com.yihu.quota.model.cube.CubeMemberMapping;
|
|
|
import com.yihu.quota.util.ElasticSearchHandler;
|
|
|
import com.yihu.quota.vo.CubeMappingModel;
|
|
|
import com.yihu.quota.vo.CubeMemberMappingModel;
|
|
@ -38,7 +39,6 @@ public class ElasticSearchDataProcessService {
|
|
|
private static String id_k = "_id";
|
|
|
private static String rowKey_k = "rowkey";
|
|
|
private static String profileId_k = "profile_id";
|
|
|
private static String subRowKey_k = "subRowkey";
|
|
|
private static String action_k = "action";
|
|
|
|
|
|
@Autowired
|
|
@ -131,11 +131,14 @@ public class ElasticSearchDataProcessService {
|
|
|
List<CubeMemberMappingModel> cubeMemberMappingModels = cubeMemberMappingService.findCubeMemberMappingModels(table,hbaseColCode);
|
|
|
if(cubeMemberMappingModels != null && cubeMemberMappingModels.size() > 0){
|
|
|
for(CubeMemberMappingModel cubeMemberMappingModel :cubeMemberMappingModels){
|
|
|
CubeMemberMapping primaryCubeMember = cubeMemberMappingService.findCubeMemberMappingPrimary(cubeMemberMappingModel.getCubeMappingId());
|
|
|
String index = cubeMemberMappingModel.getIndexName();
|
|
|
String type = cubeMemberMappingModel.getIndexType();
|
|
|
String primaryKey = primaryCubeMember.getDimensionCode();
|
|
|
String subRowKey = rowKey;
|
|
|
if(action.contains(action_put)){
|
|
|
//维度成员数据扩展保存
|
|
|
source = dimensionMemberDataExtendToMap(cubeMemberMappingModel,keyValue,rowKey,profileId);
|
|
|
source = dimensionMemberDataExtendToMap(cubeMemberMappingModel,keyValue,subRowKey,profileId,primaryKey);
|
|
|
saveElasticSearchData(index, type,profileId,source);
|
|
|
}
|
|
|
}
|
|
@ -189,7 +192,8 @@ public class ElasticSearchDataProcessService {
|
|
|
* @param subRowKey
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String,Object> dimensionMemberDataExtendToMap(CubeMemberMappingModel cubeMemberMappingModel,String cloumnValue,String subRowKey,String profileId) throws Exception {
|
|
|
public Map<String,Object> dimensionMemberDataExtendToMap(CubeMemberMappingModel cubeMemberMappingModel,String cloumnValue,String subRowKey
|
|
|
,String profileId,String primaryKey) throws Exception {
|
|
|
Map<String, Object> source = new HashMap<>();
|
|
|
String cloumnCode = cubeMemberMappingModel.getDimensionCode();
|
|
|
String parentCode = cubeMemberMappingModel.getParentCode();
|
|
@ -222,8 +226,8 @@ public class ElasticSearchDataProcessService {
|
|
|
if(childList != null && childList.size() > 0){
|
|
|
boolean isexist = false;
|
|
|
for(Map<String, Object> map : childList){
|
|
|
if(subRowKey.equals(map.get(subRowKey_k).toString())){
|
|
|
map.put(subRowKey_k,subRowKey);
|
|
|
if(subRowKey.equals(map.get(primaryKey).toString())){
|
|
|
map.put(primaryKey,subRowKey);
|
|
|
map.put(cloumnCode,dataConver(dataType,cloumnValue));
|
|
|
if(StringUtils.isNotEmpty(dict)){
|
|
|
map = extendDictData(map,cloumnCode,dict,cloumnValue);
|
|
@ -236,7 +240,7 @@ public class ElasticSearchDataProcessService {
|
|
|
}
|
|
|
if( !isexist){
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
map.put(subRowKey_k,subRowKey);
|
|
|
map.put(primaryKey,subRowKey);
|
|
|
map.put(cloumnCode,dataConver(dataType,cloumnValue));
|
|
|
if(StringUtils.isNotEmpty(dict)){
|
|
|
map = extendDictData(map,cloumnCode,dict,cloumnValue);
|
|
@ -248,7 +252,7 @@ public class ElasticSearchDataProcessService {
|
|
|
source.put(parentCode, nestedList);
|
|
|
}else{
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
map.put(subRowKey_k,subRowKey);
|
|
|
map.put(primaryKey,subRowKey);
|
|
|
map.put(cloumnCode,dataConver(dataType,cloumnValue));
|
|
|
nestedList.add(map);
|
|
|
source.put(parentCode, nestedList);
|