|
@ -6904,33 +6904,114 @@ public class StatisticsEsService {
|
|
|
*/
|
|
|
public List<JSONObject> businessRanking(ScreenQvo qvo) throws Exception{
|
|
|
String level2_type = qvo.getLevel2_type();
|
|
|
List<SaveModel> saveModels = elasticsearchUtil.findDateQuotaLevel2New(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(),
|
|
|
|
|
|
List<SaveModel> wz_model = elasticsearchUtil.findDateQuotaLevel2New(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(),
|
|
|
"5", "1", null, null,null,level2_type);
|
|
|
List<SaveModel> cf_model = elasticsearchUtil.findDateQuotaLevel2New(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(),
|
|
|
"2", "1", null, null,null,level2_type);
|
|
|
List<SaveModel> jz_model = elasticsearchUtil.findDateQuotaLevel2New(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(),
|
|
|
"12,14,16", "1", "9,16,12,1,17", "1",null,level2_type);
|
|
|
|
|
|
//门诊转住院
|
|
|
String sql = "select COUNT(DISTINCT r.id) zzyNum,column_tmp from wlyy_outpatient_hospitalization r,base_doctor_hospital bdh,base_doctor bd,dict_hospital_dept hd " +
|
|
|
"WHERE r.doctor=bdh.doctor_code and bdh.doctor_code = bd.id AND hd.code= bdh.dept_code " +
|
|
|
"AND bdh.del=1 AND hd.CONSULT_DEPT_FLAG='1' AND bd.job_title_code IN('1201','1301','1401','1101','066','067','061','1310','061','065','1','2','3','4') ";
|
|
|
//本周期
|
|
|
String sql01 = sql + " and r.create_time>='"+qvo.getStartDate()+"' and r.create_time<='"+qvo.getEndDate()+" 23:59:59'";
|
|
|
if("5".equals(qvo.getLevel())){
|
|
|
//科室
|
|
|
sql01 += " and hd.code='"+qvo.getArea()+"' ";
|
|
|
}
|
|
|
if("6".equals(qvo.getLevel())){
|
|
|
//医生
|
|
|
sql01 += " and r.doctor='"+qvo.getArea()+"' ";
|
|
|
}
|
|
|
if("5".equals(level2_type)){
|
|
|
//科室
|
|
|
sql01 += " group by hd.code";
|
|
|
sql01 = sql01.replace("column_tmp","hd.code dept,hd.name deptName");
|
|
|
}
|
|
|
if("6".equals(level2_type)){
|
|
|
//医生
|
|
|
sql01 += " group by r.doctor ";
|
|
|
sql01 = sql01.replace("column_tmp","r.doctor,r.doctor doctorName");
|
|
|
}
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql01);
|
|
|
|
|
|
Map<String,String> codeMap = new HashMap<>();
|
|
|
Map<String,Double> wzMap = new HashMap<>();
|
|
|
Map<String,Double> cfMap = new HashMap<>();
|
|
|
Map<String,Double> jzMap = new HashMap<>();
|
|
|
Map<String,Double> zzyMap = new HashMap<>();
|
|
|
if (level2_type.equals(SaveModel.deptLevel)) {
|
|
|
for (SaveModel saveModel : wz_model) {
|
|
|
wzMap.put(saveModel.getDept(),saveModel.getResult1());
|
|
|
codeMap.put(saveModel.getDept(),saveModel.getDeptName());
|
|
|
}
|
|
|
for (SaveModel saveModel : cf_model) {
|
|
|
cfMap.put(saveModel.getDept(),saveModel.getResult1());
|
|
|
if(!codeMap.containsKey(saveModel.getDept())){
|
|
|
codeMap.put(saveModel.getDept(),saveModel.getDeptName());
|
|
|
}
|
|
|
}
|
|
|
for (SaveModel saveModel : jz_model) {
|
|
|
jzMap.put(saveModel.getDept(),saveModel.getResult1());
|
|
|
if(!codeMap.containsKey(saveModel.getDept())){
|
|
|
codeMap.put(saveModel.getDept(),saveModel.getDeptName());
|
|
|
}
|
|
|
}
|
|
|
for (Map<String,Object> map : list) {
|
|
|
zzyMap.put(map.get("dept")+"",Double.valueOf(map.get("zzyNum")+""));
|
|
|
if(!codeMap.containsKey(map.get("dept")+"")){
|
|
|
codeMap.put(map.get("dept")+"",map.get("deptName")+"");
|
|
|
}
|
|
|
}
|
|
|
} else if (level2_type.equals(SaveModel.doctorLevel)) {
|
|
|
for (SaveModel saveModel : wz_model) {
|
|
|
wzMap.put(saveModel.getDoctor(),saveModel.getResult1());
|
|
|
codeMap.put(saveModel.getDoctor(),saveModel.getDoctorName());
|
|
|
}
|
|
|
for (SaveModel saveModel : cf_model) {
|
|
|
cfMap.put(saveModel.getDoctor(),saveModel.getResult1());
|
|
|
if(!codeMap.containsKey(saveModel.getDoctor())){
|
|
|
codeMap.put(saveModel.getDoctor(),saveModel.getDoctorName());
|
|
|
}
|
|
|
}
|
|
|
for (SaveModel saveModel : jz_model) {
|
|
|
jzMap.put(saveModel.getDoctor(),saveModel.getResult1());
|
|
|
if(!codeMap.containsKey(saveModel.getDoctor())){
|
|
|
codeMap.put(saveModel.getDoctor(),saveModel.getDoctorName());
|
|
|
}
|
|
|
}
|
|
|
for (Map<String,Object> map : list) {
|
|
|
zzyMap.put(map.get("doctor")+"",Double.valueOf(map.get("zzyNum")+""));
|
|
|
if(!codeMap.containsKey(map.get("doctor")+"")){
|
|
|
codeMap.put(map.get("doctor")+"",map.get("doctorName")+"");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//【接诊率】= 接诊量 ÷ 问诊量 ×100%
|
|
|
List<JSONObject> result = new ArrayList<>();
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
|
for (Map.Entry<String,String> entry:codeMap.entrySet()){
|
|
|
JSONObject object1 = new JSONObject();
|
|
|
if (level2_type.equals(SaveModel.deptLevel)) {
|
|
|
object1.put("dept", saveModel.getDept());
|
|
|
object1.put("deptName", saveModel.getDeptName());
|
|
|
} else if (level2_type.equals(SaveModel.doctorLevel)) {
|
|
|
object1.put("doctor", saveModel.getDoctor());
|
|
|
object1.put("doctorName", saveModel.getDoctorName());
|
|
|
} else if (level2_type.equals(SaveModel.OrgLevel)) {
|
|
|
object1.put("hospital", saveModel.getHospital());
|
|
|
object1.put("hospitalName", saveModel.getHospitalName());
|
|
|
}
|
|
|
object1.put("result1", saveModel.getResult1());
|
|
|
object1.put("result2", saveModel.getResult2());
|
|
|
String key = entry.getKey();
|
|
|
object1.put("code", key);
|
|
|
object1.put("name", entry.getValue());
|
|
|
object1.put("wzNum", nullToZero(wzMap.get(key)));
|
|
|
object1.put("cfNum", nullToZero(cfMap.get(key)));
|
|
|
object1.put("jzNum", nullToZero(jzMap.get(key)));
|
|
|
object1.put("zzyNum", nullToZero(zzyMap.get(key)));
|
|
|
object1.put("jzRate", getRange(nullToZero(jzMap.get(key)).intValue(), nullToZero(wzMap.get(key)).intValue(), 0));
|
|
|
result.add(object1);
|
|
|
}
|
|
|
// 排序
|
|
|
result.sort(new Comparator<JSONObject>() {
|
|
|
@Override
|
|
|
public int compare(JSONObject o1, JSONObject o2) {
|
|
|
if (o1.getString("result1").compareTo(o2.getString("result1")) > 0) {
|
|
|
if (o1.getInteger("wzNum").compareTo(o2.getInteger("wzNum")) > 0) {
|
|
|
return -1;
|
|
|
} else if (o1.getString("result1").compareTo(o2.getString("result1")) < 0) {
|
|
|
} else if (o1.getInteger("wzNum").compareTo(o2.getInteger("wzNum")) < 0) {
|
|
|
return 1;
|
|
|
} else {
|
|
|
return 0;
|
|
@ -6940,6 +7021,13 @@ public class StatisticsEsService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public Double nullToZero(Double d){
|
|
|
if (d==null){
|
|
|
return 0d;
|
|
|
}
|
|
|
return d;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 收入情况
|
|
|
1、【总收入】=药品费+诊查费;
|