|  | @ -977,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级维度
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -1593,5 +1605,119 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 服务评分平均分
 | 
	
		
			
				|  |  |      * @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;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |