|
@ -1,144 +0,0 @@
|
|
|
package com.yihu.quota.service.cube;
|
|
|
|
|
|
import com.yihu.ehr.query.BaseJpaService;
|
|
|
import com.yihu.quota.dao.cube.CubeMappingDao;
|
|
|
import com.yihu.quota.dao.cube.CubeMemberMappingDao;
|
|
|
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.vo.CubeMemberMappingModel;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 多维数据集的维度的成员 service
|
|
|
* Created by janseny on 2018/9/10.
|
|
|
* @author janseny
|
|
|
*/
|
|
|
@Service
|
|
|
public class CubeMemberMappingService extends BaseJpaService<CubeMemberMapping, CubeMemberMappingDao> {
|
|
|
|
|
|
@Autowired
|
|
|
private CubeMemberMappingDao cubeMemberMappingDao;
|
|
|
/**
|
|
|
* 保存接口
|
|
|
* @param cubeMemberMapping
|
|
|
* @return 保存之后的id
|
|
|
*/
|
|
|
public Integer saveOlapCubeMemberMapping(CubeMemberMapping cubeMemberMapping) {
|
|
|
cubeMemberMapping = cubeMemberMappingDao.save(cubeMemberMapping);
|
|
|
return cubeMemberMapping.getId();
|
|
|
}
|
|
|
|
|
|
public void deleteOlapcubeMemberMapping(Integer id) {
|
|
|
cubeMemberMappingDao.delete(id);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据数据集维度ID 查询对应的维度成员信息
|
|
|
* @param id
|
|
|
* @return
|
|
|
*/
|
|
|
public List<CubeMemberMappingModel> findCubeMemberMappingModelsById(Integer id) {
|
|
|
String sql = "SELECT ocmm.*,odm.data_type from olap_cube_member_mapping ocmm ,olap_dimension_member odm " +
|
|
|
" where ocmm.dimension_member_id = odm.id AND ocmm.cube_mapping_id = ? order by ocmm.id asc ";
|
|
|
List<CubeMemberMappingModel> cubeMemberMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMemberMappingModel.class), id);
|
|
|
return cubeMemberMappingModels;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据 表编码和字段编码 查询对应的维度信息
|
|
|
* @param fieldCode
|
|
|
* @return
|
|
|
*/
|
|
|
public List<CubeMemberMappingModel> findCubeMemberMappingModels(String tableCode,String fieldCode) {
|
|
|
String sql = "SELECT ocmm.*,oc.index_name,oc.index_type,ocm.dimension_code as parentCode,ocm.child_save_type,odstf.field_code,odm.dict,odm.data_type,odm.`algorithm`,odm.parm from olap_cube_member_mapping ocmm " +
|
|
|
" LEFT JOIN olap_data_sources_table_field odstf ON ocmm.data_field_id = odstf.id " +
|
|
|
" LEFT JOIN olap_data_sources_table odst ON odst.id = odstf.table_id " +
|
|
|
" LEFT JOIN olap_dimension_member odm ON ocmm.dimension_member_id = odm.id " +
|
|
|
" LEFT JOIN olap_cube_mapping ocm ON ocm.id = ocmm.cube_mapping_id " +
|
|
|
" LEFT JOIN olap_cube oc ON oc.id = ocm.cube_id " +
|
|
|
" where ocmm.dimension_member_id is not null and odstf.field_code = ? and odst.table_code = ? ";
|
|
|
String param[] = {fieldCode,tableCode};
|
|
|
List<CubeMemberMappingModel> cubeMemberMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMemberMappingModel.class), param);
|
|
|
return cubeMemberMappingModels;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据 表编码 查询对应的 保存索引和类型
|
|
|
* @param tableCode
|
|
|
* @return
|
|
|
*/
|
|
|
public Cube findCubeByTableCode(String tableCode) {
|
|
|
String sql = "SELECT oc.* from olap_cube oc " +
|
|
|
" LEFT JOIN olap_cube_mapping ocm ON oc.id = ocm.cube_id " +
|
|
|
" LEFT JOIN olap_data_sources_table_field odst ON odst.id = ocm.data_field_id " +
|
|
|
" LEFT JOIN olap_data_sources_table ods ON ods.id = odst.table_id " +
|
|
|
" where ods.table_code = ? ";
|
|
|
String param[] = {tableCode};
|
|
|
List<Cube> cubes = jdbcTemplate.query(sql, new BeanPropertyRowMapper(Cube.class), param);
|
|
|
if(cubes != null && cubes.size() > 0){
|
|
|
return cubes.get(0);
|
|
|
}else {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询子集中 主键字段
|
|
|
* @param cubeMappingId
|
|
|
* @return
|
|
|
*/
|
|
|
public CubeMemberMapping findCubeMemberMappingPrimary(int cubeMappingId){
|
|
|
String[] fields = {"cubeMappingId","isPrimarykey"};
|
|
|
Object[] values = {cubeMappingId,1};
|
|
|
List<CubeMemberMapping> cubeMemberMappings = findByFields(fields,values);
|
|
|
if(cubeMemberMappings != null && cubeMemberMappings.size() > 0){
|
|
|
return cubeMemberMappings.get(0);
|
|
|
}else {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据数据集和维度编码 查询对应的维度信息
|
|
|
* @param dimensionCode 维度编码
|
|
|
* @param cubeMappingId 父级维度ID
|
|
|
* @return
|
|
|
*/
|
|
|
public CubeMemberMappingModel findCubeMemberMappingModelByCubeAndCode(int dimensionCode,String cubeMappingId) {
|
|
|
String sql = "SELECT ocmm.*,odm.data_type from olap_cube_member_mapping ocmm " +
|
|
|
" LEFT JOIN olap_cube_mapping ocm on ocm.id = ocmm.cube_mapping_id " +
|
|
|
" LEFT JOIN olap_dimension_member odm on odm.dimension_id = ocmm.dimension_member_id " +
|
|
|
" where ocmm.dimension_code = ? and ocmm.cube_mapping_id= ? ";
|
|
|
Object param[] = {dimensionCode,cubeMappingId};
|
|
|
List<CubeMemberMappingModel> cubeMemberMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMemberMappingModel.class), param);
|
|
|
if(cubeMemberMappingModels != null && cubeMemberMappingModels.size() > 0){
|
|
|
return cubeMemberMappingModels.get(0);
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据 表编码和关联字段编码 查询对应的维度信息
|
|
|
* @param relationFieldCode 关联字段
|
|
|
* @return
|
|
|
*/
|
|
|
public List<CubeMemberMappingModel> findRelationMemberMappingModels(String tableCode,String relationFieldCode) {
|
|
|
String sql = "SELECT ocmm.*,oc.index_name,oc.index_type,ocm.dimension_code as parentCode,ocm.child_save_type,odstf.field_code,odm.dict,odm.data_type,odm.`algorithm`,odm.parm from olap_cube_member_mapping ocmm " +
|
|
|
" LEFT JOIN olap_data_sources_table_field odstf ON ocmm.relation_field_id = odstf.id " +
|
|
|
" LEFT JOIN olap_data_sources_table odst ON odst.id = odstf.table_id " +
|
|
|
" LEFT JOIN olap_dimension_member odm ON ocmm.dimension_member_id = odm.id " +
|
|
|
" LEFT JOIN olap_cube_mapping ocm ON ocm.id = ocmm.cube_mapping_id " +
|
|
|
" LEFT JOIN olap_cube oc ON oc.id = ocm.cube_id " +
|
|
|
" where odstf.field_code = ? and odst.table_code = ? ";
|
|
|
String param[] = {relationFieldCode,tableCode};
|
|
|
List<CubeMemberMappingModel> cubeMemberMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMemberMappingModel.class), param);
|
|
|
return cubeMemberMappingModels;
|
|
|
}
|
|
|
|
|
|
}
|