| 
					
				 | 
			
			
				@ -164,13 +164,13 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //问诊量表格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //专家咨询数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> specialistSaveModels = elasticsearchUtil.findDateQuotaLevel0(startDate, endDate, area, level, "4", SaveModel.timeLevel_ZL,null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> specialistSaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"1",null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //协同门诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> syngySaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"2",null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> syngySaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"12",null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //图文复诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> topicSaveModels = elasticsearchUtil.findDateQuotaLevel2(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"1","1",null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> topicSaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"9",null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ///视频复诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> vedioSaveModels = elasticsearchUtil.findDateQuotaLevel2(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"1","2",null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> vedioSaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL,"16",null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray array = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<String> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -196,7 +196,7 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Double synegy =0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (index.equalsIgnoreCase("3")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    specialist = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else if (index.equalsIgnoreCase("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else if (index.equalsIgnoreCase("5")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (SaveModel saveModel:specialistSaveModels){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (level2_type.equals(SaveModel.deptLevel)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (StringUtils.isNoneBlank(saveModel.getDept())&&code.equalsIgnoreCase(saveModel.getDept())){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -402,15 +402,23 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //协同门诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel1 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "12"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //图文复诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel2 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel2 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //saveModel2 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "9"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //视频复诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel3 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel3 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel3 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "16"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Double specialistCount =0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(index.equalsIgnoreCase("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //专科咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel4 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        specialistCount = saveModel4.getResult1();//专家咨询数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        /*if(index.equalsIgnoreCase("5")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //专家咨询数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SaveModel saveModel = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotEmpty(level2_type)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -422,7 +430,7 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (index.equalsIgnoreCase("3")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            specialistCount = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Double synergyCount = saveModel1.getResult1();//协同门诊数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Double topicCount = saveModel2.getResult1();//图文复诊数量 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -458,10 +466,10 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //问诊总量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel1 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int total = saveModel1.getResult1().intValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SaveModel> saveModels = elasticsearchUtil.findDateQuotaLevel0(endDate,endDate,area,level,index,SaveModel.timeLevel_DDL,null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SaveModel> saveModels = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,SaveModel.timeLevel_ZL,null,level2_type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<JSONObject> result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (SaveModel saveModel:saveModels){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -516,16 +524,16 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getOutPatientTypeline(String startDate, String endDate, String area, int level, String index, String level2_type) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //专家咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray specialistArray = dateTotalStatistics2(startDate,endDate,area,level,"4",null,SaveModel.timeLevel_ZL,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray specialistArray = dateTotalStatistics2(startDate,endDate,area,level,index,"1",SaveModel.timeLevel_ZL,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("specialistArray",specialistArray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //协同复诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray syngeryArray = dateTotalStatistics2(startDate,endDate,area,level,index,"2",SaveModel.timeLevel_ZL,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray syngeryArray = dateTotalStatistics2(startDate,endDate,area,level,index,"12",SaveModel.timeLevel_ZL,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("syngeryArray",syngeryArray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //图文复诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray topicArray = dateTotalStatistics2(startDate,endDate,area,level,index,"1",SaveModel.timeLevel_ZL,"1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray topicArray = dateTotalStatistics2(startDate,endDate,area,level,index,"9",SaveModel.timeLevel_ZL,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("topicArray",topicArray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //视频复诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray vedioArray = dateTotalStatistics2(startDate,endDate,area,level,index,"1",SaveModel.timeLevel_ZL,"2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray vedioArray = dateTotalStatistics2(startDate,endDate,area,level,index,"16",SaveModel.timeLevel_ZL,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("vedioArray",vedioArray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -797,13 +805,13 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            object.put("data",array); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (flag==2){//活跃医生 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //图文 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> topicModels = elasticsearchUtil.findDateQuotaLevel2(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, "1","1",null, "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> topicModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, "9",null, "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> vedioModels = elasticsearchUtil.findDateQuotaLevel2(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, "1","2",null, "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> vedioModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, "16",null, "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //协同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> synegyModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, "2",null, "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> synegyModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, "12",null, "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //专科 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> specialistModels = elasticsearchUtil.findDateQuotaLevel0(startDate, endDate, area, level,"4", SaveModel.timeLevel_ZL,null, "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<SaveModel> specialistModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level,index, SaveModel.timeLevel_ZL,"1",null, "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String deptSql = "select hd.CODE,hd.NAME from DICT_HOSPITAL_DEPT hd where CONSULT_DEPT_FLAG=1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (level==4){//科室 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -969,6 +977,18 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Double getDoubleRange(Double first, Double second, int i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (second == 0 && first > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return 100.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (second == 0 && first == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Double size =first / second; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Double filesize = Double.parseDouble(df.format(size)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return filesize ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 总体分析 折线图 按日--0级维度1级维度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1208,7 +1228,11 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (SaveModel saveModel : saveModels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String range = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (saveModel.getQuotaDate() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    range = df.format(saveModel.getQuotaDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Calendar quotaDate = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    quotaDate.setTime(saveModel.getQuotaDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    quotaDate.add(Calendar.DATE, 6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    range = df.format(quotaDate.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject json = countResult.get(range); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //因为上述时间集提前一天  但是前端是显示当前时间,所以这里给调整回去 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1384,4 +1408,320 @@ public class StatisticsEsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 专科咨询统计总量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 开始时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 结束时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 区域 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getSpecialConsultHead(String startDate, String endDate, String area, int level, String index) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //总量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //已回复 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel1 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //已结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel2 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //未回复 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel3 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //居民取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel4 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //进行中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel5 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "7", SaveModel.timeLevel_DDL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "6", SaveModel.timeLevel_DDL,"1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel3 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "6", SaveModel.timeLevel_DDL,"0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "7", SaveModel.timeLevel_DDL,"-1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel5 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "7", SaveModel.timeLevel_DDL,"0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "7", SaveModel.timeLevel_DDL,"1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("specialConsultTotal",saveModel.getResult1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("haveReplyTotal",saveModel1.getResult1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("endTotal",saveModel2.getResult1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("notReplyTotal",saveModel3.getResult1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("cancelTotal",saveModel4.getResult1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("comingTotal",saveModel5.getResult1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("notReplyRate",getRange(saveModel3.getResult1().intValue(),saveModel.getResult1().intValue(),2));//未回复率 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 专科咨询统计曲线 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param interval 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level2_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getSpecialConsultLine(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //问诊量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (interval==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            object.put("data",array); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (interval==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            object.put("data",array); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (interval==3){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            object.put("data",array); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 专科咨询统计表格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param lowLevel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getConsultingStatisticsList(String startTime,String endTime,int level, String area, String lowLevel) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        timeKey= "2017-11-01 00:00:00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //已结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SaveModel> endTotal = elasticsearchUtil.findListDateQuotaLevel1(endTime, endTime, area, level, "7", SaveModel.timeLevel_DDL, lowLevel,"1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //咨询总数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel0(endTime, endTime, area, level, "6", SaveModel.timeLevel_DDL, lowLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //未回复数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel1(endTime, endTime, area, level, "6", SaveModel.timeLevel_DDL, lowLevel,"0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        JSONArray rely = new JSONArray(relyVal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        JSONArray total = new JSONArray(relyTotal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        JSONArray noRely = new JSONArray(noRelyTotal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("resultList", getCoutList(level, lowLevel, endTotal, total, noRelyTotal)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String, Object>> getCoutList(Integer level, String lowLevel, List<SaveModel> endConsult, List<SaveModel> total, List<SaveModel> noRely) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> relyMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> totalMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> noRelyMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        org.json.JSONObject result = new org.json.JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String low_level = StringUtils.isEmpty(lowLevel) ? String.valueOf(level + 1) : lowLevel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //转换结束数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (SaveModel saveModel : endConsult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (SaveModel.doctorLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                relyMap.put(saveModel.getDoctor(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (SaveModel.deptLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                relyMap.put(saveModel.getDept(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if (SaveModel.OrgLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                relyMap.put(saveModel.getHospital(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //转换总咨询数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (SaveModel saveModel : total) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (SaveModel.doctorLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                totalMap.put(saveModel.getDoctor(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (SaveModel.deptLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                totalMap.put(saveModel.getDept(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if (SaveModel.OrgLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                totalMap.put(saveModel.getHospital(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //转换已结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (SaveModel saveModel : noRely) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (SaveModel.doctorLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                noRelyMap.put(saveModel.getDoctor(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (SaveModel.deptLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                noRelyMap.put(saveModel.getDept(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if (SaveModel.OrgLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                noRelyMap.put(saveModel.getHospital(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultMaps = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (String key : totalMap.keySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> rs = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SaveModel relyRs = (SaveModel) relyMap.get(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SaveModel totalRs = (SaveModel) totalMap.get(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SaveModel onRelyRs = (SaveModel) noRelyMap.get(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (relyRs == null || totalRs == null || onRelyRs == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //合并结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer totalNm = totalRs.getResult2().intValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer endNm = relyRs.getResult2().intValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer noRelyNm = onRelyRs.getResult2().intValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            rs.put("name", relyRs.get(area+"Name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (SaveModel.doctorLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("name", relyRs.getDoctorName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (SaveModel.deptLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("name", relyRs.getDeptName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (SaveModel.OrgLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("name", relyRs.getHospitalName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("noRelyCount", noRelyNm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("endCount", endNm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("total", totalNm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("code", key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (totalNm != null && totalNm != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (endNm != null && endNm != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    double rr = (double) endNm / totalNm * 100; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    DecimalFormat df = new DecimalFormat("0.00"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.put("endRate", df.format(rr) + "%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.put("endDoubleRate", rr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.put("endRate", "0.00%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.put("endDoubleRate", 0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (noRelyNm != null && noRelyNm != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    double rr = (double) noRelyNm / totalNm * 100; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    DecimalFormat df = new DecimalFormat("0.00"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.put("noRelyRate", df.format(rr) + "%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.put("noRelyDoubleRate", rr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.put("noRelyRate", "0.00%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rs.put("noRelyDoubleRate", 0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("endRate", "0.00%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("endDoubleRate", 0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("noRelyRate", "0.00%"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("noRelyDoubleRate", 0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultMaps.add(rs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //根据为回复数排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Collections.sort(resultMaps, new Comparator<Map<String, Object>>() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            public int compare(Map<String, Object> o1, Map<String, Object> o2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return (Integer) o1.get("total") < (Integer) o2.get("total") ? 1 : ((Integer) o1.get("total") == (Integer) o2.get("total") ? 0 : -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return resultMaps; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 服务评分平均分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getScoreHead(String startDate, String endDate, String area, int level, String index) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //总评分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaveModel saveModel = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Double scoreTotal = saveModel.getResult1();//总评分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Double people = saveModel.getResult2();//评价总人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("scoreTotal",scoreTotal);//总评分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("people",people);//总人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("scoreRate",getDoubleRange(scoreTotal,people,0));//平均评分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 服务评分曲线 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param interval 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level2_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getScoreLine(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //服务评分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray array = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (interval==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            array = dateTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (interval==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            array = weekTotalStatistics(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (interval==3){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (int i=0;i<array.size();i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject jsonObject = array.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Long amount = jsonObject.getLong("amount"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double num = jsonObject.getDouble("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.put("scoreRate",getDoubleRange(num,amount.doubleValue(),0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("data",array); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getScoreList(String startTime,String endTime,int level, String area, String lowLevel) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result1 = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //咨询总数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel0(endTime, endTime, area, level, "9", SaveModel.timeLevel_DDL, lowLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> totalMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        org.json.JSONObject result = new org.json.JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String low_level = StringUtils.isEmpty(lowLevel) ? String.valueOf(level + 1) : lowLevel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //转换总咨询数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (SaveModel saveModel : total) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (SaveModel.doctorLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                totalMap.put(saveModel.getDoctor(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (SaveModel.deptLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                totalMap.put(saveModel.getDept(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if (SaveModel.OrgLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                totalMap.put(saveModel.getHospital(), saveModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultMaps = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (String key : totalMap.keySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> rs = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SaveModel totalRs = (SaveModel) totalMap.get(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (totalRs == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //合并结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double totalNm = totalRs.getResult2();//总人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Double scoreNm = totalRs.getResult1();//总分数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (SaveModel.doctorLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("name", totalRs.getDoctorName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (SaveModel.deptLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("name", totalRs.getDeptName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (SaveModel.OrgLevel.equals(low_level)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                rs.put("name", totalRs.getHospitalName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("total", totalNm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("scoreRate",getDoubleRange(scoreNm,totalNm,0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("code", key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultMaps.add(rs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //根据为回复数排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Collections.sort(resultMaps, new Comparator<Map<String, Object>>() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            public int compare(Map<String, Object> o1, Map<String, Object> o2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return (Double) o1.get("scoreRate") < (Double) o2.get("scoreRate") ? 1 : ((Double) o1.get("scoreRate") == (Double) o2.get("scoreRate") ? 0 : -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result1.put("resultList", resultMaps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |