|
@ -3286,6 +3286,20 @@ public class StatisticsESService {
|
|
|
}
|
|
|
}
|
|
|
rs.add(map);
|
|
|
Collections.sort(rs, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
Integer map1value = Integer.valueOf(String.valueOf(o1.get("val")));
|
|
|
Integer map2value = Integer.valueOf(String.valueOf(o2.get("val")));
|
|
|
|
|
|
if (map1value - map2value > 0) {
|
|
|
return -1;
|
|
|
} else if (map1value - map2value < 0) {
|
|
|
return 1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
@ -3509,6 +3523,20 @@ public class StatisticsESService {
|
|
|
|
|
|
rs.add(map);
|
|
|
}
|
|
|
Collections.sort(rs, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
Integer map1value = Integer.valueOf(String.valueOf(o1.get("val")));
|
|
|
Integer map2value = Integer.valueOf(String.valueOf(o2.get("val")));
|
|
|
|
|
|
if (map1value - map2value > 0) {
|
|
|
return -1;
|
|
|
} else if (map1value - map2value < 0) {
|
|
|
return 1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
@ -3785,12 +3813,8 @@ public class StatisticsESService {
|
|
|
public List<Map<String, Object>> getPrescriptionCostLowLevel(String level, String lowlevel, String area, String disease, String type) throws Exception {
|
|
|
String index61 = "61";//统计长处方费用总数疾病维度
|
|
|
String index66 = "66";//费用的指标code
|
|
|
String index63 = "63";//统计长处方年龄疾病人数(按照患者去重)
|
|
|
String index68 = "68";//统计长处方年龄人数(按照患者去重)
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
List<SaveModel> costList = null;
|
|
|
Map<String, SaveModel> costMap = new HashedMap();
|
|
|
List<SaveModel> numList = null;
|
|
|
//获取费用
|
|
|
if (org.springframework.util.StringUtils.isEmpty(disease)) {
|
|
|
costList = elasticsearchUtil.findListDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), index66, SaveModel.timeLevel_DDL, lowlevel);
|
|
@ -3818,52 +3842,49 @@ public class StatisticsESService {
|
|
|
} else {
|
|
|
//2.平均值
|
|
|
//费用list转map
|
|
|
|
|
|
for (SaveModel one : costList) {
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
costMap.put(one.getTown(), one);
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
costMap.put(one.getHospital(), one);
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
costMap.put(one.getTeam(), one);
|
|
|
}
|
|
|
}
|
|
|
//获取人数
|
|
|
if (org.springframework.util.StringUtils.isEmpty(disease)) {
|
|
|
numList = elasticsearchUtil.findListDateQuotaLevel1NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index68, SaveModel.timeLevel_DDL, lowlevel);
|
|
|
} else {
|
|
|
numList = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index63, SaveModel.timeLevel_DDL, lowlevel, disease);
|
|
|
}
|
|
|
for (SaveModel one : numList) {
|
|
|
String avg = "0.0";
|
|
|
map = new HashMap<>();
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|
|
|
SaveModel costOne = costMap.get(one.getTown());
|
|
|
if (costOne != null) {
|
|
|
avg = decimalFormat.format(costOne.getResult1() / one.getResult1());
|
|
|
if (one != null&&one.getResult2()>0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
|
|
|
}
|
|
|
map.put("val", avg);
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getHospital());
|
|
|
map.put("name", one.getHospitalName());
|
|
|
SaveModel costOne = costMap.get(one.getHospital());
|
|
|
if (costOne != null) {
|
|
|
avg = decimalFormat.format(costOne.getResult1() / one.getResult1());
|
|
|
if (one != null&&one.getResult2()>0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
|
|
|
}
|
|
|
map.put("val", avg);
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTeam());
|
|
|
map.put("name", one.getTeamName());
|
|
|
SaveModel costOne = costMap.get(one.getTeam());
|
|
|
if (costOne != null) {
|
|
|
avg = decimalFormat.format(costOne.getResult1() / one.getResult1());
|
|
|
if (one != null&&one.getResult2()>0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
|
|
|
}
|
|
|
map.put("val", avg);
|
|
|
}
|
|
|
countList.add(map);
|
|
|
}
|
|
|
}
|
|
|
Collections.sort(countList, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
Double map1value = Double.valueOf(String.valueOf(o1.get("val")));
|
|
|
Double map2value = Double.valueOf(String.valueOf(o2.get("val")));
|
|
|
|
|
|
if (map1value - map2value > 0) {
|
|
|
return -1;
|
|
|
} else if (map1value - map2value < 0) {
|
|
|
return 1;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
return countList;
|
|
|
}
|
|
|
|
|
@ -3880,13 +3901,8 @@ public class StatisticsESService {
|
|
|
public List<Map<String, Object>> getPrescriptionCostAvgLine(String level, String area, String disease, String startDate, String endDate, String type) throws Exception {
|
|
|
String index61 = "61";//统计长处方费用总数疾病维度
|
|
|
String index66 = "66";//费用的指标code
|
|
|
String index63 = "63";//统计长处方年龄疾病人数(按照患者去重)
|
|
|
String index68 = "68";//统计长处方年龄人数(按照患者去重)
|
|
|
|
|
|
List<SaveModel> costList = null;
|
|
|
Map<String, SaveModel> costMap = new HashedMap();
|
|
|
List<SaveModel> numList = null;
|
|
|
|
|
|
|
|
|
startDate = elasticsearchUtil.changeTime(startDate += " 00:00:00");
|
|
|
endDate = elasticsearchUtil.changeTime(endDate += " 23:59:59");
|
|
@ -3896,27 +3912,9 @@ public class StatisticsESService {
|
|
|
} else {
|
|
|
costList = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, Integer.parseInt(level), index61, SaveModel.timeLevel_ZL, type, disease);
|
|
|
}
|
|
|
//获取人数
|
|
|
if (org.springframework.util.StringUtils.isEmpty(disease)) {
|
|
|
numList = elasticsearchUtil.findLineChartDateQuotaLevel1NoSlaveKey1(startDate, endDate, area, Integer.parseInt(level), index68, SaveModel.timeLevel_ZL, type);
|
|
|
} else {
|
|
|
numList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey1(startDate, endDate, area, Integer.parseInt(level), index63, SaveModel.timeLevel_ZL, type, disease);
|
|
|
}
|
|
|
//费用list转map
|
|
|
for (SaveModel one : costList) {
|
|
|
String key = null;
|
|
|
if (SaveModel.interval_day.equals(type)) {
|
|
|
key = dateFormat.format(one.getQuotaDate());
|
|
|
} else if (SaveModel.interval_week.equals(type)) {
|
|
|
key = dateFormat.format(one.getQuotaDate());
|
|
|
} else {
|
|
|
key = DateUtil.getMonth(dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
costMap.put(key, one);
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> countList = new ArrayList<>(); //map date avg
|
|
|
for (SaveModel one : numList) {
|
|
|
for (SaveModel one : costList) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
//获取key
|
|
|
String key = null;
|
|
@ -3927,10 +3925,9 @@ public class StatisticsESService {
|
|
|
} else {
|
|
|
key = DateUtil.getMonth(dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
SaveModel costOne = costMap.get(key);
|
|
|
String avg = "0.0";
|
|
|
if (costOne != null) {
|
|
|
avg = decimalFormat.format(one.getResult1() / costOne.getResult1());
|
|
|
if (one.getResult2()!=0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
|
|
|
}
|
|
|
map.put("val", avg);
|
|
|
map.put("date", key);
|
|
@ -3942,33 +3939,23 @@ public class StatisticsESService {
|
|
|
|
|
|
public Map<String, Object> getPrescriptionCost(String level, String area, String disease) throws Exception {
|
|
|
SaveModel costSaveModel = null;
|
|
|
SaveModel numSaveModel = null;
|
|
|
String index61 = "61";//统计长处方费用总数疾病维度
|
|
|
String index66 = "66";//费用的指标code
|
|
|
String index63 = "63";//统计长处方年龄疾病人数(按照患者去重)
|
|
|
String index68 = "68";//统计长处方年龄人数(按照患者去重)
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
if (StringUtils.isNotEmpty(disease)) {
|
|
|
costSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index61, "2", disease);
|
|
|
} else {
|
|
|
costSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), index66, "2");
|
|
|
}
|
|
|
//获取人数
|
|
|
if (StringUtils.isNotEmpty(disease)) {
|
|
|
numSaveModel = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index63, "2", disease);
|
|
|
} else {
|
|
|
numSaveModel = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(quotaDate, area, Integer.parseInt(level), index68, "2");
|
|
|
}
|
|
|
|
|
|
Long num = numSaveModel.getResult1().longValue();
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
BigDecimal s = BigDecimal.valueOf(costSaveModel.getResult1());
|
|
|
BigDecimal a = null;
|
|
|
|
|
|
if (num == 0) {
|
|
|
if (costSaveModel.getResult2() == 0.0D) {
|
|
|
a = BigDecimal.valueOf(0.0);
|
|
|
} else {
|
|
|
a = BigDecimal.valueOf(costSaveModel.getResult1().longValue() / num);
|
|
|
a = BigDecimal.valueOf(costSaveModel.getResult1().longValue() / costSaveModel.getResult2().longValue());
|
|
|
}
|
|
|
rs.put("sum", s.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));//费用总计 单位是分 所以除以100四舍五入
|
|
|
rs.put("avg", a.divide((new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP));//人均费用 单位是分 所以除以100四舍五入
|