|
@ -18,6 +18,7 @@ import com.yihu.jw.redis.schema.StdDataSetKeySchema;
|
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
|
import com.yihu.jw.entity.ehr.resource.*;
|
|
|
import com.yihu.jw.restmodel.web.ListEnvelop;
|
|
|
import com.yihu.jw.restmodel.web.PageEnvelop;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@ -194,70 +195,70 @@ public class ResourceBrowseDao {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
// public Envelop getEhrCenter (String resourcesCode, String roleId, String saas, String queryParams, Integer page, Integer size) throws Exception {
|
|
|
// //获取Saas权限
|
|
|
// StringBuilder q = new StringBuilder();
|
|
|
// if (saas != null && !"*".equals(saas)) {
|
|
|
// q.append(saas);
|
|
|
// }
|
|
|
// String fq = "";
|
|
|
// final Map<String, String> sort = new HashMap<>();
|
|
|
// Map<String, String> query = new HashMap<>();
|
|
|
// if (queryParams != null) {
|
|
|
// query = objectMapper.readValue(queryParams, Map.class);
|
|
|
// if (query.containsKey("q") && !query.get("q").trim().equals("*:*")) {
|
|
|
// if (q.length() > 0) {
|
|
|
// q.append(" AND (");
|
|
|
// q.append(query.get("q"));
|
|
|
// q.append(")");
|
|
|
// } else {
|
|
|
// q.append(query.get("q"));
|
|
|
// }
|
|
|
// }
|
|
|
// if (query.containsKey("fq")) {
|
|
|
// fq = query.get("fq");
|
|
|
// }
|
|
|
// if (query.containsKey("sort")) {
|
|
|
// Map<String, String> temp = objectMapper.readValue((String) query.get("sort"), Map.class);
|
|
|
// temp.forEach((key, value) -> {
|
|
|
// sort.put(key, value);
|
|
|
// });
|
|
|
// }
|
|
|
// }
|
|
|
// //通过资源代码获取默认参数
|
|
|
// List<RsResourceDefaultParam> paramsList = resourceDefaultParamDao.findByResourcesCode(resourcesCode);
|
|
|
// for (RsResourceDefaultParam param : paramsList) {
|
|
|
// if (param.getParamKey().equals("sort")) {
|
|
|
// Map<String, String> temp = objectMapper.readValue(param.getParamValue(), Map.class);
|
|
|
// temp.forEach((key, value) -> {
|
|
|
// sort.put(key, value);
|
|
|
// });
|
|
|
// }
|
|
|
// if (param.getParamKey().equals("q")) {
|
|
|
// List<QueryCondition> ql = parseCondition(param.getParamValue());
|
|
|
// if (q.length() > 0) {
|
|
|
// q.append(" AND ");
|
|
|
public Envelop getEhrCenter (String resourcesCode, String roleId, String saas, String queryParams, Integer page, Integer size) throws Exception {
|
|
|
//获取Saas权限
|
|
|
StringBuilder q = new StringBuilder();
|
|
|
if (saas != null && !"*".equals(saas)) {
|
|
|
q.append(saas);
|
|
|
}
|
|
|
String fq = "";
|
|
|
final Map<String, String> sort = new HashMap<>();
|
|
|
Map<String, String> query = new HashMap<>();
|
|
|
if (queryParams != null) {
|
|
|
query = objectMapper.readValue(queryParams, Map.class);
|
|
|
if (query.containsKey("q") && !query.get("q").trim().equals("*:*")) {
|
|
|
if (q.length() > 0) {
|
|
|
q.append(" AND (");
|
|
|
q.append(query.get("q"));
|
|
|
q.append(")");
|
|
|
} else {
|
|
|
q.append(query.get("q"));
|
|
|
}
|
|
|
}
|
|
|
if (query.containsKey("fq")) {
|
|
|
fq = query.get("fq");
|
|
|
}
|
|
|
if (query.containsKey("sort")) {
|
|
|
Map<String, String> temp = objectMapper.readValue((String) query.get("sort"), Map.class);
|
|
|
temp.forEach((key, value) -> {
|
|
|
sort.put(key, value);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
//通过资源代码获取默认参数
|
|
|
List<RsResourceDefaultParam> paramsList = resourceDefaultParamDao.findByResourcesCode(resourcesCode);
|
|
|
for (RsResourceDefaultParam param : paramsList) {
|
|
|
if (param.getParamKey().equals("sort")) {
|
|
|
Map<String, String> temp = objectMapper.readValue(param.getParamValue(), Map.class);
|
|
|
temp.forEach((key, value) -> {
|
|
|
sort.put(key, value);
|
|
|
});
|
|
|
}
|
|
|
if (param.getParamKey().equals("q")) {
|
|
|
List<QueryCondition> ql = parseCondition(param.getParamValue());
|
|
|
if (q.length() > 0) {
|
|
|
q.append(" AND ");
|
|
|
// q.append(solrQuery.conditionToString(ql));
|
|
|
// } else {
|
|
|
} else {
|
|
|
// q.append(solrQuery.conditionToString(ql));
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// if (resourcesCode != null) {
|
|
|
// RsResource rsResources = rsResourceService.getResourceByCategory(resourcesCode,"standard");
|
|
|
// //获取资源结构权限,该部分新增其他标准数据集的判断
|
|
|
// List<DtoResourceMetadata> metadataList = getAccessMetadata(rsResources, roleId, new HashMap<>());
|
|
|
// if (metadataList != null && metadataList.size() > 0) {
|
|
|
// //数据元信息字段
|
|
|
// List<String> metadataIdList = new ArrayList<>();
|
|
|
// for (DtoResourceMetadata metadata : metadataList) {
|
|
|
// String id = metadata.getId();
|
|
|
// metadataIdList.add(id);
|
|
|
// String dictCode = metadata.getDictCode();
|
|
|
// if (!StringUtils.isEmpty(dictCode)) {
|
|
|
// metadataIdList.add(id + "_VALUE");
|
|
|
// }
|
|
|
// }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (resourcesCode != null) {
|
|
|
RsResource rsResources = rsResourceService.getResourceByCategory(resourcesCode,"standard");
|
|
|
//获取资源结构权限,该部分新增其他标准数据集的判断
|
|
|
List<DtoResourceMetadata> metadataList = getAccessMetadata(rsResources, roleId, new HashMap<>());
|
|
|
if (metadataList != null && metadataList.size() > 0) {
|
|
|
//数据元信息字段
|
|
|
List<String> metadataIdList = new ArrayList<>();
|
|
|
for (DtoResourceMetadata metadata : metadataList) {
|
|
|
String id = metadata.getId();
|
|
|
metadataIdList.add(id);
|
|
|
String dictCode = metadata.getDictCode();
|
|
|
if (!StringUtils.isEmpty(dictCode)) {
|
|
|
metadataIdList.add(id + "_VALUE");
|
|
|
}
|
|
|
}
|
|
|
// Page<Map<String, Object>> result = hbaseQuery.queryBySolr(ResourceCore.MasterTable, q.toString(), objectMapper.writeValueAsString(sort), fq, StringUtils.join(ResourceCells.getMasterBasicCell(ProfileType.Standard), ","), StringUtils.join(metadataIdList, ","), page, size);
|
|
|
// Envelop envelop = new Envelop();
|
|
|
// envelop.setStatus(200);
|
|
@ -265,17 +266,17 @@ public class ResourceBrowseDao {
|
|
|
// envelop.setPageSize(result.getSize());
|
|
|
// envelop.setTotalCount(new Long(result.getTotalElements()).intValue());
|
|
|
// envelop.setDetailModelList(result.getContent());
|
|
|
// return envelop;
|
|
|
// }
|
|
|
// } else {
|
|
|
// String basicFl = "";
|
|
|
// String dFl = "";
|
|
|
// if (query.containsKey("basicFl")) {
|
|
|
// basicFl = query.get("basicFl");
|
|
|
// }
|
|
|
// if (query.containsKey("dFl")) {
|
|
|
// dFl = query.get("dFl");
|
|
|
// }
|
|
|
return PageEnvelop.getSuccess("");
|
|
|
}
|
|
|
} else {
|
|
|
String basicFl = "";
|
|
|
String dFl = "";
|
|
|
if (query.containsKey("basicFl")) {
|
|
|
basicFl = query.get("basicFl");
|
|
|
}
|
|
|
if (query.containsKey("dFl")) {
|
|
|
dFl = query.get("dFl");
|
|
|
}
|
|
|
// Page<Map<String, Object>> result = hbaseQuery.queryBySolr(ResourceCore.MasterTable, q.toString(), objectMapper.writeValueAsString(sort), fq, basicFl, dFl, page, size);
|
|
|
// Envelop envelop = new Envelop();
|
|
|
// envelop.setStatus(200);
|
|
@ -283,10 +284,10 @@ public class ResourceBrowseDao {
|
|
|
// envelop.setPageSize(result.getSize());
|
|
|
// envelop.setTotalCount(new Long(result.getTotalElements()).intValue());
|
|
|
// envelop.setDetailModelList(result.getContent());
|
|
|
// return envelop;
|
|
|
// }
|
|
|
// throw new ApiException("资源无相关数据元");
|
|
|
// }
|
|
|
return PageEnvelop.getSuccess("");
|
|
|
}
|
|
|
throw new ApiException("资源无相关数据元");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param resourcesCode 资源编码
|
|
@ -298,77 +299,77 @@ public class ResourceBrowseDao {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
// public Envelop getEhrCenterSub (String resourcesCode, String roleId, String saas, String queryParams, Integer page, Integer size) throws Exception {
|
|
|
// //获取Saas权限
|
|
|
// StringBuilder q = new StringBuilder();
|
|
|
// if (saas != null && !"*".equals(saas)) {
|
|
|
// q.append(saas);
|
|
|
// }
|
|
|
// String fq = "";
|
|
|
// final Map<String, String> sort = new HashMap<>();
|
|
|
// Map<String, String> query = new HashMap<>();
|
|
|
// if (queryParams != null) {
|
|
|
// query = objectMapper.readValue(queryParams, Map.class);
|
|
|
// if (query.containsKey("q") && !query.get("q").trim().equals("*:*")) {
|
|
|
// if (q.length() > 0) {
|
|
|
// q.append(" AND (");
|
|
|
// q.append(query.get("q"));
|
|
|
// q.append(")");
|
|
|
// } else {
|
|
|
// q.append(query.get("q"));
|
|
|
// }
|
|
|
// }
|
|
|
// if (query.containsKey("fq")) {
|
|
|
// fq = query.get("fq");
|
|
|
// }
|
|
|
// if (query.containsKey("sort")) {
|
|
|
// Map<String, String> temp = objectMapper.readValue((String) query.get("sort"), Map.class);
|
|
|
// temp.forEach((key, value) -> {
|
|
|
// sort.put(key, value);
|
|
|
// });
|
|
|
// }
|
|
|
// }
|
|
|
// //通过资源代码获取默认参数
|
|
|
// List<RsResourceDefaultParam> paramsList = resourceDefaultParamDao.findByResourcesCode(resourcesCode);
|
|
|
// for (RsResourceDefaultParam param : paramsList) {
|
|
|
// if (param.getParamKey().equals("sort")) {
|
|
|
// Map<String, String> temp = objectMapper.readValue(param.getParamValue(), Map.class);
|
|
|
// temp.forEach((key, value) -> {
|
|
|
// sort.put(key, value);
|
|
|
// });
|
|
|
// }
|
|
|
// if (param.getParamKey().equals("table")) {
|
|
|
// if (q.length() > 0) {
|
|
|
// q.append(" AND (rowkey:*$" + param.getParamValue() + "$*)");
|
|
|
// } else {
|
|
|
// q.append("rowkey:*$" + param.getParamValue() + "$*");
|
|
|
// }
|
|
|
// }
|
|
|
// if (param.getParamKey().equals("q")) {
|
|
|
// List<QueryCondition> ql = parseCondition(param.getParamValue());
|
|
|
// if (q.length() > 0) {
|
|
|
// q.append(" AND ");
|
|
|
public Envelop getEhrCenterSub (String resourcesCode, String roleId, String saas, String queryParams, Integer page, Integer size) throws Exception {
|
|
|
//获取Saas权限
|
|
|
StringBuilder q = new StringBuilder();
|
|
|
if (saas != null && !"*".equals(saas)) {
|
|
|
q.append(saas);
|
|
|
}
|
|
|
String fq = "";
|
|
|
final Map<String, String> sort = new HashMap<>();
|
|
|
Map<String, String> query = new HashMap<>();
|
|
|
if (queryParams != null) {
|
|
|
query = objectMapper.readValue(queryParams, Map.class);
|
|
|
if (query.containsKey("q") && !query.get("q").trim().equals("*:*")) {
|
|
|
if (q.length() > 0) {
|
|
|
q.append(" AND (");
|
|
|
q.append(query.get("q"));
|
|
|
q.append(")");
|
|
|
} else {
|
|
|
q.append(query.get("q"));
|
|
|
}
|
|
|
}
|
|
|
if (query.containsKey("fq")) {
|
|
|
fq = query.get("fq");
|
|
|
}
|
|
|
if (query.containsKey("sort")) {
|
|
|
Map<String, String> temp = objectMapper.readValue((String) query.get("sort"), Map.class);
|
|
|
temp.forEach((key, value) -> {
|
|
|
sort.put(key, value);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
//通过资源代码获取默认参数
|
|
|
List<RsResourceDefaultParam> paramsList = resourceDefaultParamDao.findByResourcesCode(resourcesCode);
|
|
|
for (RsResourceDefaultParam param : paramsList) {
|
|
|
if (param.getParamKey().equals("sort")) {
|
|
|
Map<String, String> temp = objectMapper.readValue(param.getParamValue(), Map.class);
|
|
|
temp.forEach((key, value) -> {
|
|
|
sort.put(key, value);
|
|
|
});
|
|
|
}
|
|
|
if (param.getParamKey().equals("table")) {
|
|
|
if (q.length() > 0) {
|
|
|
q.append(" AND (rowkey:*$" + param.getParamValue() + "$*)");
|
|
|
} else {
|
|
|
q.append("rowkey:*$" + param.getParamValue() + "$*");
|
|
|
}
|
|
|
}
|
|
|
if (param.getParamKey().equals("q")) {
|
|
|
List<QueryCondition> ql = parseCondition(param.getParamValue());
|
|
|
if (q.length() > 0) {
|
|
|
q.append(" AND ");
|
|
|
// q.append(solrQuery.conditionToString(ql));
|
|
|
// } else {
|
|
|
} else {
|
|
|
// q.append(solrQuery.conditionToString(ql));
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// if (resourcesCode != null) {
|
|
|
// RsResource rsResources = rsResourceService.getResourceByCategory(resourcesCode,"standard");
|
|
|
// //获取资源结构权限,该部分新增其他标准数据集的判断
|
|
|
// List<DtoResourceMetadata> metadataList = getAccessMetadata(rsResources, roleId, new HashMap<>());
|
|
|
// if (metadataList != null && metadataList.size() > 0) {
|
|
|
// //数据元信息字段
|
|
|
// List<String> metadataIdList = new ArrayList<>();
|
|
|
// for (DtoResourceMetadata metadata : metadataList) {
|
|
|
// String id = metadata.getId();
|
|
|
// metadataIdList.add(id);
|
|
|
// String dictCode = metadata.getDictCode();
|
|
|
// if (!StringUtils.isEmpty(dictCode)) {
|
|
|
// metadataIdList.add(id + "_VALUE");
|
|
|
// }
|
|
|
// }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (resourcesCode != null) {
|
|
|
RsResource rsResources = rsResourceService.getResourceByCategory(resourcesCode,"standard");
|
|
|
//获取资源结构权限,该部分新增其他标准数据集的判断
|
|
|
List<DtoResourceMetadata> metadataList = getAccessMetadata(rsResources, roleId, new HashMap<>());
|
|
|
if (metadataList != null && metadataList.size() > 0) {
|
|
|
//数据元信息字段
|
|
|
List<String> metadataIdList = new ArrayList<>();
|
|
|
for (DtoResourceMetadata metadata : metadataList) {
|
|
|
String id = metadata.getId();
|
|
|
metadataIdList.add(id);
|
|
|
String dictCode = metadata.getDictCode();
|
|
|
if (!StringUtils.isEmpty(dictCode)) {
|
|
|
metadataIdList.add(id + "_VALUE");
|
|
|
}
|
|
|
}
|
|
|
// Page<Map<String, Object>> result = hbaseQuery.queryBySolr(ResourceCore.SubTable, q.toString(), objectMapper.writeValueAsString(sort), fq, StringUtils.join(ResourceCells.getSubBasicCell(ProfileType.Standard), ","), StringUtils.join(metadataIdList, ","), page, size);
|
|
|
// Envelop envelop = new Envelop();
|
|
|
// envelop.setStatus(200);
|
|
@ -376,17 +377,17 @@ public class ResourceBrowseDao {
|
|
|
// envelop.setPageSize(result.getSize());
|
|
|
// envelop.setTotalCount(new Long(result.getTotalElements()).intValue());
|
|
|
// envelop.setDetailModelList(result.getContent());
|
|
|
// return envelop;
|
|
|
// }
|
|
|
// } else {
|
|
|
// String basicFl = "";
|
|
|
// String dFl = "";
|
|
|
// if (query.containsKey("basicFl")) {
|
|
|
// basicFl = query.get("basicFl");
|
|
|
// }
|
|
|
// if (query.containsKey("dFl")) {
|
|
|
// dFl = query.get("dFl");
|
|
|
// }
|
|
|
return PageEnvelop.getSuccess("");
|
|
|
}
|
|
|
} else {
|
|
|
String basicFl = "";
|
|
|
String dFl = "";
|
|
|
if (query.containsKey("basicFl")) {
|
|
|
basicFl = query.get("basicFl");
|
|
|
}
|
|
|
if (query.containsKey("dFl")) {
|
|
|
dFl = query.get("dFl");
|
|
|
}
|
|
|
// Page<Map<String, Object>> result = hbaseQuery.queryBySolr(ResourceCore.SubTable, q.toString(), objectMapper.writeValueAsString(sort), fq, basicFl, dFl, page, size);
|
|
|
// Envelop envelop = new Envelop();
|
|
|
// envelop.setStatus(200);
|
|
@ -394,10 +395,10 @@ public class ResourceBrowseDao {
|
|
|
// envelop.setPageSize(result.getSize());
|
|
|
// envelop.setTotalCount(new Long(result.getTotalElements()).intValue());
|
|
|
// envelop.setDetailModelList(result.getContent());
|
|
|
// return envelop;
|
|
|
// }
|
|
|
// throw new ApiException("资源无相关数据元");
|
|
|
// }
|
|
|
return PageEnvelop.getSuccess("");
|
|
|
}
|
|
|
throw new ApiException("资源无相关数据元");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* habse主表的solr分组统计
|
|
@ -409,9 +410,11 @@ public class ResourceBrowseDao {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
// public Page<Map<String, Object>> countEhrCenter(String queryParams, Integer page, Integer size) throws Exception {
|
|
|
// String core = ResourceCore.MasterTable;
|
|
|
// ObjectMapper objectMapper = new ObjectMapper();
|
|
|
public Page<Map<String, Object>> countEhrCenter(String queryParams, Integer page, Integer size) throws Exception {
|
|
|
String core = ResourceCore.MasterTable;
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
|
return new PageImpl(list);
|
|
|
// Map<String, Object> params = objectMapper.readValue(queryParams, Map.class);
|
|
|
// String q = "";
|
|
|
// String fq = "";
|
|
@ -481,8 +484,8 @@ public class ResourceBrowseDao {
|
|
|
// return solr.getGroupMult(core, groupFields, customGroup, q, fq);
|
|
|
// }
|
|
|
// }
|
|
|
//
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* habse细表的solr分组统计
|
|
@ -493,9 +496,11 @@ public class ResourceBrowseDao {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
// public Page<Map<String, Object>> countEhrCenterSub (String queryParams, Integer page, Integer size) throws Exception {
|
|
|
// String core = ResourceCore.SubTable;
|
|
|
// ObjectMapper objectMapper = new ObjectMapper();
|
|
|
public Page<Map<String, Object>> countEhrCenterSub (String queryParams, Integer page, Integer size) throws Exception {
|
|
|
String core = ResourceCore.SubTable;
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
|
return new PageImpl(list);
|
|
|
// Map<String, String> params = objectMapper.readValue(queryParams, Map.class);
|
|
|
//
|
|
|
// String q = "";
|
|
@ -553,8 +558,8 @@ public class ResourceBrowseDao {
|
|
|
// return solr.getGroupCount(core, groupFields, q, fq, page, size);
|
|
|
// }
|
|
|
// }
|
|
|
//
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取指标数据
|