|
@ -251,7 +251,9 @@ public class DataCorrectService extends DataQualityBaseService {
|
|
|
double totalNum = 0;//平台总数
|
|
|
double totalHospitalNum = 0;//医院总数
|
|
|
//机构数据
|
|
|
List<Map<String,Object>> groupList = getOrgDataMap(dataLevel,"create_date",startDate,end,null);
|
|
|
//List<Map<String,Object>> groupList = getOrgDataMap(dataLevel,"create_date",startDate,end,null);
|
|
|
//准确性算法,由于之前算法依赖到 医院总数据量, 医院数据量经常未做上报,导致数据问题,先改成 根据接收总数计算
|
|
|
List<Map<String,Object>> groupList = getReceiveMap(dataLevel,startDate,end,null);
|
|
|
//平台接收错误数据量
|
|
|
Map<String, Object> platformErrorGroup = getErrorPlatformData(dataLevel,"receive_date",startDate, endDate,null);
|
|
|
// 计算
|
|
@ -301,7 +303,9 @@ public class DataCorrectService extends DataQualityBaseService {
|
|
|
double totalNum = 0;//平台总数
|
|
|
double totalHospitalNum = 0;//医院总数
|
|
|
//机构数据
|
|
|
List<Map<String,Object>> groupList = getOrgDataMap(dataLevel,"create_date",startDate,end,areaCode);
|
|
|
// List<Map<String,Object>> groupList = getOrgDataMap(dataLevel,"create_date",startDate,end,areaCode);
|
|
|
//准确性算法,由于之前算法依赖到 医院总数据量, 医院数据量经常未做上报,导致数据问题,先改成 根据接收总数计算
|
|
|
List<Map<String,Object>> groupList = getReceiveMap(dataLevel,startDate,end,areaCode);
|
|
|
//平台接收数据量
|
|
|
Map<String, Object> platformDataGroup = getErrorPlatformData(dataLevel,"receive_date",startDate, endDate,areaCode);
|
|
|
// 计算
|
|
@ -344,4 +348,86 @@ public class DataCorrectService extends DataQualityBaseService {
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取医院总数据量
|
|
|
* (1. orgArea为空时,根据区域分组查询
|
|
|
* 2. orgArea不为空时,根据机构分组查询)
|
|
|
* @param dataLevel 数据级别: 0:区县,1:机构
|
|
|
* @param start
|
|
|
* @param end
|
|
|
* @param orgArea
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String, Object>> getReceiveMap(Integer dataLevel,String start, String end, String orgArea) throws IOException {
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
double totalAreaCout = 0;
|
|
|
try {
|
|
|
String dateStr = DateUtil.toString(new Date());
|
|
|
if (StringUtils.isBlank(start)) {
|
|
|
start = dateStr;
|
|
|
}
|
|
|
if (StringUtils.isBlank(end)) {
|
|
|
end = dateStr;
|
|
|
}
|
|
|
start = start +" 00:00:00";
|
|
|
end = end +" 23:59:59";
|
|
|
List<String> fields = new ArrayList<String>();
|
|
|
String sql1 = "";
|
|
|
if (StringUtils.isNotEmpty(orgArea)) {
|
|
|
fields.add("org_code");
|
|
|
sql1 = "SELECT org_code,count(distinct profile_id) as count from json_archives where org_area='" + orgArea + "' and receive_date>='" + start + "' and receive_date<='" + end + "' group by org_code";
|
|
|
} else {
|
|
|
if (dataLevel == 0) {
|
|
|
fields.add("org_area");
|
|
|
sql1 = "SELECT org_area,count(distinct profile_id) as count from json_archives where " +
|
|
|
"receive_date >='" + start + "' and receive_date <='" + end + "' group by org_area";
|
|
|
}else {
|
|
|
fields.add("org_code");
|
|
|
sql1 = "SELECT org_code,count(distinct profile_id) as count from json_archives where " +
|
|
|
"receive_date >='" + start + "' and receive_date <='" + end + "' group by org_code";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
fields.add("count");
|
|
|
resultList = elasticSearchUtil.findBySql(fields, sql1);
|
|
|
|
|
|
//设置机构,区域名称
|
|
|
if (resultList != null && resultList.size() > 0) {
|
|
|
for (Map<String, Object> map1 : resultList) {
|
|
|
String name = "";
|
|
|
if (StringUtils.isNotEmpty(orgArea) || ( dataLevel ==1 && StringUtils.isEmpty(orgArea))) {
|
|
|
String code = (String) map1.get("org_code");
|
|
|
name = redisClient.get("organizations:" + code + ":name");
|
|
|
}else {
|
|
|
String code = map1.get("org_area").toString();
|
|
|
name = redisClient.get("area:" + code + ":name");
|
|
|
totalAreaCout += getDoubleValue( map1.get("count"));
|
|
|
}
|
|
|
map1.put("name",name);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (!resultList.isEmpty()) {
|
|
|
Map<String, Object> total = new HashMap<>();
|
|
|
if (dataLevel ==0) {
|
|
|
// 临时写死上饶市
|
|
|
total.put("name", "上饶市");
|
|
|
total.put("org_area", "");
|
|
|
total.put("", totalAreaCout);
|
|
|
total.put("count", totalAreaCout);
|
|
|
} else {
|
|
|
total.put("name", "全部机构");
|
|
|
total.put("org_code", "");
|
|
|
total.put("count", totalAreaCout);
|
|
|
}
|
|
|
resultList.add(0, total);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return resultList;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|