|  | @ -28,6 +28,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.xml.soap.SAAJMetaFactory;
 | 
	
		
			
				|  |  | import java.security.acl.LastOwnerException;
 | 
	
		
			
				|  |  | import java.text.DecimalFormat;
 | 
	
		
			
				|  |  | import java.text.ParseException;
 | 
	
		
			
				|  |  | import java.text.SimpleDateFormat;
 | 
	
	
		
			
				|  | @ -153,12 +155,36 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |         if (interval==1){
 | 
	
		
			
				|  |  |             JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |             JSONArray array1 = dateTotalStatistics2(startDate,endDate,area,level,"5","1",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("specialistData",array1);
 | 
	
		
			
				|  |  |             JSONArray array2 = dateTotalStatistics2(startDate,endDate,area,level,"5","9",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("topicData",array2);
 | 
	
		
			
				|  |  |             JSONArray array3 = dateTotalStatistics2(startDate,endDate,area,level,"5","12",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("synergyData",array3);
 | 
	
		
			
				|  |  |             JSONArray array4 = dateTotalStatistics2(startDate,endDate,area,level,"5","16",SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("vedioData",array4);
 | 
	
		
			
				|  |  |         }else if (interval==2){
 | 
	
		
			
				|  |  |             JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |             JSONArray array1 = weekTotalStatistics(startDate,endDate,area,level,"5","1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("specialistData",array1);
 | 
	
		
			
				|  |  |             JSONArray array2 = weekTotalStatistics(startDate,endDate,area,level,"5","9",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("topicData",array2);
 | 
	
		
			
				|  |  |             JSONArray array3 = weekTotalStatistics(startDate,endDate,area,level,"5","12",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("synergyData",array3);
 | 
	
		
			
				|  |  |             JSONArray array4 = weekTotalStatistics(startDate,endDate,area,level,"5","16",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("vedioData",array4);
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |             JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,"5","1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("specialistData",array1);
 | 
	
		
			
				|  |  |             JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,"5","9",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("topicData",array2);
 | 
	
		
			
				|  |  |             JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,"5","12",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("synergyData",array3);
 | 
	
		
			
				|  |  |             JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,"5","16",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("vedioData",array4);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(level2_type)){
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -976,6 +1002,17 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |         return filesize + "%";
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public String getTwoRange(int first, int second, int i) {
 | 
	
		
			
				|  |  |         if (second == 0 && first > 0) {
 | 
	
		
			
				|  |  |             return "100%";
 | 
	
		
			
				|  |  |         } else if (second == 0 && first == 0) {
 | 
	
		
			
				|  |  |             return "0%";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         float size = (float) (first * 100) / second;
 | 
	
		
			
				|  |  |         DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
 | 
	
		
			
				|  |  |         String filesize = df.format(size);
 | 
	
		
			
				|  |  |         return filesize + "%";
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Double getDoubleRange(Double first, Double second, int i) {
 | 
	
		
			
				|  |  |         if (second == 0 && first > 0) {
 | 
	
	
		
			
				|  | @ -1409,6 +1446,141 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 按月统计 折线图-排班
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param index
 | 
	
		
			
				|  |  |      * @param lowCode
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     private JSONArray monthTotalStatistics2AndMonth(String startDate, String endDate, String area, int level, String index, String lowCode, String timelevel) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 起始日期
 | 
	
		
			
				|  |  |         Calendar start = Calendar.getInstance();
 | 
	
		
			
				|  |  |         start.setTime(DateUtil.strToDate(startDate, DateUtil.YYYY_MM_DD));
 | 
	
		
			
				|  |  |         // 结束日期
 | 
	
		
			
				|  |  |         Calendar end = Calendar.getInstance();
 | 
	
		
			
				|  |  |         //因为统计时间是统计到当前时间的前一天,所以这里的时间是提前一天
 | 
	
		
			
				|  |  |         Calendar temp = Calendar.getInstance();
 | 
	
		
			
				|  |  |         temp.setTime(DateUtil.strToDate(endDate, DateUtil.YYYY_MM_DD));
 | 
	
		
			
				|  |  | //        temp.add(Calendar.DAY_OF_MONTH, -1);
 | 
	
		
			
				|  |  |         end.setTime(temp.getTime());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 日期集合
 | 
	
		
			
				|  |  |         List<Calendar> days = new ArrayList<>();
 | 
	
		
			
				|  |  |         days.add(start);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         boolean flag = true;
 | 
	
		
			
				|  |  |         int k = 0;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (startDate.compareTo(endDate) == 0) {
 | 
	
		
			
				|  |  |             flag = false;
 | 
	
		
			
				|  |  |        /*     days.add(end);*/
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 统计日期计算
 | 
	
		
			
				|  |  |         while (flag) {
 | 
	
		
			
				|  |  |             Calendar next = Calendar.getInstance();
 | 
	
		
			
				|  |  |             next.setTime(days.get(days.size() - 1).getTime());
 | 
	
		
			
				|  |  |             if (k == 0) {
 | 
	
		
			
				|  |  |                 next.add(Calendar.MONTH, 1);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 next.add(Calendar.MONTH, 1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             /*next.set(Calendar.DAY_OF_MONTH, 1);
 | 
	
		
			
				|  |  |             next.add(Calendar.DAY_OF_MONTH, -1);*/
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (next.getTime().before(DateUtil.strToDate(endDate, "yyyy-MM-dd"))) {
 | 
	
		
			
				|  |  |                 days.add(next);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |          /*       days.add(end);*/
 | 
	
		
			
				|  |  |                 flag = false;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             k++;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 统计结果
 | 
	
		
			
				|  |  |         Map<String, JSONObject> countResult = new HashMap<>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         for (int i = 0; i < days.size(); i++) {
 | 
	
		
			
				|  |  |             String endStr = df.format(days.get(i).getTime());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             JSONObject range = new JSONObject();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             range.put("range", endStr);
 | 
	
		
			
				|  |  |             range.put("amount", 0);
 | 
	
		
			
				|  |  |             range.put("num",0.0);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             countResult.put(endStr, range);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (startDate.equals(df.format(new Date()))) {
 | 
	
		
			
				|  |  |             Calendar preDate = Calendar.getInstance();
 | 
	
		
			
				|  |  |             preDate.setTime(df.parse(endDate));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             startDate = df.format(preDate.getTime());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<SaveModel> saveModels = new ArrayList<>();
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(lowCode)) {
 | 
	
		
			
				|  |  |             saveModels = elasticsearchUtil.findDateQuotaLevel0AndPaibanLine(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month, lowCode);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             saveModels = elasticsearchUtil.findDateQuotaLevel0AndPaibanLine(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month,null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (saveModels != null) {
 | 
	
		
			
				|  |  |             // 计算结果
 | 
	
		
			
				|  |  |             for (SaveModel saveModel : saveModels) {
 | 
	
		
			
				|  |  |                 String range = "";
 | 
	
		
			
				|  |  |                 if (saveModel.getQuotaDate() != null) {
 | 
	
		
			
				|  |  |                     range = df.format(saveModel.getQuotaDate());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 JSONObject json = countResult.get(range);
 | 
	
		
			
				|  |  |                 //因为上述时间集提前一天  但是前端是显示当前时间,所以这里给调整回去
 | 
	
		
			
				|  |  |                 /*if (range.equals(df.format(temp.getTime()))) {
 | 
	
		
			
				|  |  |                     json.put("range", endDate);
 | 
	
		
			
				|  |  |                 }*/
 | 
	
		
			
				|  |  |                 if (json != null) {
 | 
	
		
			
				|  |  |                     long amount = saveModel.getResult2().longValue();
 | 
	
		
			
				|  |  |                     double num = saveModel.getResult1();
 | 
	
		
			
				|  |  |                     json.put("amount", amount);
 | 
	
		
			
				|  |  |                     json.put("num",num);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             List<JSONObject> result = new ArrayList<>(countResult.values());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             // 排序
 | 
	
		
			
				|  |  |             result.sort(new Comparator<JSONObject>() {
 | 
	
		
			
				|  |  |                 @Override
 | 
	
		
			
				|  |  |                 public int compare(JSONObject o1, JSONObject o2) {
 | 
	
		
			
				|  |  |                     if (o1.getString("range").compareTo(o2.getString("range")) > 0) {
 | 
	
		
			
				|  |  |                         return 1;
 | 
	
		
			
				|  |  |                     } else if (o1.getString("range").compareTo(o2.getString("range")) < 0) {
 | 
	
		
			
				|  |  |                         return -1;
 | 
	
		
			
				|  |  |                     } else {
 | 
	
		
			
				|  |  |                         return 0;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             });
 | 
	
		
			
				|  |  |             JSONArray jsonArray = new JSONArray();
 | 
	
		
			
				|  |  |             for (JSONObject object:result){
 | 
	
		
			
				|  |  |                 jsonArray.add(object);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return jsonArray;
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return new JSONArray();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 专科咨询统计总量
 | 
	
		
			
				|  |  |      * @param startDate 开始时间
 | 
	
	
		
			
				|  | @ -1505,6 +1677,111 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getCoutList1(Integer level, String lowLevel, List<SaveModel> endConsult, List<SaveModel> total, List<SaveModel> noReceive) {
 | 
	
		
			
				|  |  |         Map<String, Object> relyMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> totalMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> noReceiveMap = 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 : noReceive) {
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 noReceiveMap.put(saveModel.getDoctor(), saveModel);
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 noReceiveMap.put(saveModel.getDept(), saveModel);
 | 
	
		
			
				|  |  |             }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 noReceiveMap.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) noReceiveMap.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("noReceiveCount", 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;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     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<>();
 | 
	
	
		
			
				|  | @ -1671,7 +1948,7 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |     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();
 | 
	
	
		
			
				|  | @ -1711,7 +1988,7 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |             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) {
 | 
	
	
		
			
				|  | @ -1723,5 +2000,940 @@ public class StatisticsEsService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 医生排班
 | 
	
		
			
				|  |  |      * @param startTime
 | 
	
		
			
				|  |  |      * @param endTime
 | 
	
		
			
				|  |  |      * @param index
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getScheduleTotal(String startTime,String endTime,String index,Integer level, String area) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject jsonObject = new JSONObject();
 | 
	
		
			
				|  |  |         String condition = "";
 | 
	
		
			
				|  |  |         if (SaveModel.cityLevel.equalsIgnoreCase(level.toString())){
 | 
	
		
			
				|  |  |             condition +="";
 | 
	
		
			
				|  |  |         }else if (SaveModel.OrgLevel.equalsIgnoreCase(level.toString())){
 | 
	
		
			
				|  |  |             condition +=" and dh.org_code ='"+area+"' ";
 | 
	
		
			
				|  |  |         }else if (SaveModel.townLevel.equalsIgnoreCase(level.toString())){
 | 
	
		
			
				|  |  |             condition +=" ";
 | 
	
		
			
				|  |  |         }else if (SaveModel.deptLevel.equalsIgnoreCase(level.toString())){
 | 
	
		
			
				|  |  |             condition +=" and dh.dept_code = '"+area+"'";
 | 
	
		
			
				|  |  |         }else if (SaveModel.doctorLevel.equalsIgnoreCase(level.toString())){
 | 
	
		
			
				|  |  |             condition +=" and dh.doctor_code = '"+area+"'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String sql = "SELECT COUNT(*) total FROM `base_doctor_role` dr LEFT JOIN base_doctor_hospital dh ON dr.doctor_code = dh.doctor_code where dr.role_code='specialist' "+condition;
 | 
	
		
			
				|  |  |         List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         Long doctorCount = 0L;
 | 
	
		
			
				|  |  |         if (mapList!=null&&mapList.size()!=0){
 | 
	
		
			
				|  |  |             doctorCount = Long.parseLong(mapList.get(0).get("total").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<SaveModel> saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, SaveModel.interval_day);
 | 
	
		
			
				|  |  |         Set<String> set = new HashSet<>();
 | 
	
		
			
				|  |  |         Long days = 0L;
 | 
	
		
			
				|  |  |         for (SaveModel saveModel1:saveModels){
 | 
	
		
			
				|  |  |             if(saveModel1.getResult1()!=0){
 | 
	
		
			
				|  |  |                 days+=1;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<SaveModel> saveModels1 = elasticsearchUtil.findDateQuotaLevel0(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, SaveModel.interval_day,SaveModel.doctorLevel);
 | 
	
		
			
				|  |  |         for (SaveModel saveModel1:saveModels1){
 | 
	
		
			
				|  |  |             if(saveModel1.getResult1()!=0){
 | 
	
		
			
				|  |  |                 set.add(saveModel1.getDoctor());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Integer total = set.size();
 | 
	
		
			
				|  |  |         jsonObject.put("rate",getTwoRange(total,doctorCount.intValue(),0));//排班比例
 | 
	
		
			
				|  |  |         jsonObject.put("doctorCount",doctorCount);
 | 
	
		
			
				|  |  |         jsonObject.put("days",days);
 | 
	
		
			
				|  |  |         jsonObject.put("total",total);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return  jsonObject;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 通用查询曲线
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param index
 | 
	
		
			
				|  |  |      * @param interval 1按日统计,2按周统计,3按月统计
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getScheduleLine(String startDate, String endDate, String area, int level, String index,int interval) 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 = monthTotalStatistics2AndMonth(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public JSONObject getScheduleList(String startTime,String endTime,String index,int level, String area, String lowLevel) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject result1 = new JSONObject();
 | 
	
		
			
				|  |  |         List<SaveModel> total = elasticsearchUtil.findDateQuotaLevel0(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL,null, lowLevel);
 | 
	
		
			
				|  |  |         List<SaveModel> total1 = elasticsearchUtil.findDateQuotaLevel0AndPaibanList(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL,null, lowLevel);
 | 
	
		
			
				|  |  |         Map<String, Object> totalMap = new HashMap<>();
 | 
	
		
			
				|  |  |         String low_level = StringUtils.isEmpty(lowLevel) ? String.valueOf(level + 1) : lowLevel;
 | 
	
		
			
				|  |  |         List<String> codes = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (SaveModel saveModel:total){
 | 
	
		
			
				|  |  |             for (SaveModel saveModel1:total1){
 | 
	
		
			
				|  |  |                 if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                     if (saveModel.getDoctor().equalsIgnoreCase(saveModel1.getDoctor())){
 | 
	
		
			
				|  |  |                         saveModel.setResult1(saveModel1.getResult1());
 | 
	
		
			
				|  |  |                         saveModel.setResult2(saveModel1.getResult2());
 | 
	
		
			
				|  |  |                         codes.add(saveModel1.getDoctor());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                     if (saveModel.getDept().equalsIgnoreCase(saveModel1.getDept())){
 | 
	
		
			
				|  |  |                         saveModel.setResult1(saveModel1.getResult1());
 | 
	
		
			
				|  |  |                         saveModel.setResult2(saveModel1.getResult2());
 | 
	
		
			
				|  |  |                         codes.add(saveModel1.getDept());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                     if (saveModel.getHospital().equalsIgnoreCase(saveModel1.getHospital())){
 | 
	
		
			
				|  |  |                         saveModel.setResult1(saveModel1.getResult1());
 | 
	
		
			
				|  |  |                         saveModel.setResult2(saveModel1.getResult2());
 | 
	
		
			
				|  |  |                         codes.add(saveModel1.getHospital());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (SaveModel saveModel:total){
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 if (!codes.contains(saveModel.getDoctor())){
 | 
	
		
			
				|  |  |                     saveModel.setResult1(0.0);
 | 
	
		
			
				|  |  |                     saveModel.setResult2(0.0);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 if (!codes.contains(saveModel.getDept())){
 | 
	
		
			
				|  |  |                     saveModel.setResult1(0.0);
 | 
	
		
			
				|  |  |                     saveModel.setResult2(0.0);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 if (!codes.contains(saveModel.getHospital())){
 | 
	
		
			
				|  |  |                     saveModel.setResult1(0.0);
 | 
	
		
			
				|  |  |                     saveModel.setResult2(0.0);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         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());
 | 
	
		
			
				|  |  |                 BaseDoctorDO doctorDO = doctorDao.findById(totalRs.getDoctor());
 | 
	
		
			
				|  |  |                 rs.put("doctorJob",doctorDO.getJobTitleName());
 | 
	
		
			
				|  |  |             } 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("total") < (Double) o2.get("total") ? 1 : ((Double) o1.get("total") == (Double) o2.get("total") ? 0 : -1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |         result1.put("resultList", resultMaps);
 | 
	
		
			
				|  |  |         return result1;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 咨询统计总量
 | 
	
		
			
				|  |  |      * @param startDate 开始时间
 | 
	
		
			
				|  |  |      * @param endDate 结束时间
 | 
	
		
			
				|  |  |      * @param area 区域
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param index 专家咨询6,图文复诊11,专家协同13,视频复诊15
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultHead(String startDate, String endDate, String area, int level, String index) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         if (index.equalsIgnoreCase("6")){
 | 
	
		
			
				|  |  |             //总量
 | 
	
		
			
				|  |  |             SaveModel saveModel = null;
 | 
	
		
			
				|  |  |             //已回复
 | 
	
		
			
				|  |  |             SaveModel saveModel1 = null;
 | 
	
		
			
				|  |  |             //已结束
 | 
	
		
			
				|  |  |             SaveModel saveModel2 = null;
 | 
	
		
			
				|  |  |             //未回复
 | 
	
		
			
				|  |  |             SaveModel saveModel3 = null;
 | 
	
		
			
				|  |  |             //居民取消
 | 
	
		
			
				|  |  |             SaveModel saveModel4 = null;
 | 
	
		
			
				|  |  |             //进行中
 | 
	
		
			
				|  |  |             SaveModel saveModel5 = null;
 | 
	
		
			
				|  |  |             String index1= (Integer.parseInt(index)+1)+"";
 | 
	
		
			
				|  |  |             saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, index1, SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index, SaveModel.timeLevel_ZL,"1");
 | 
	
		
			
				|  |  |             saveModel3 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index, SaveModel.timeLevel_ZL,"0");
 | 
	
		
			
				|  |  |             saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index1, SaveModel.timeLevel_ZL,"-1");
 | 
	
		
			
				|  |  |             saveModel5 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index1, SaveModel.timeLevel_ZL,"0");
 | 
	
		
			
				|  |  |             saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index1, SaveModel.timeLevel_ZL,"1");
 | 
	
		
			
				|  |  |             object.put("consultTotal",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));//未回复率
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             //总量
 | 
	
		
			
				|  |  |             SaveModel saveModel = null;
 | 
	
		
			
				|  |  |             //已接诊
 | 
	
		
			
				|  |  |             SaveModel saveModel1 = null;
 | 
	
		
			
				|  |  |             //未接诊
 | 
	
		
			
				|  |  |             SaveModel saveModel2 = null;
 | 
	
		
			
				|  |  |             //已结束
 | 
	
		
			
				|  |  |             SaveModel saveModel3 = null;
 | 
	
		
			
				|  |  |             //居民取消
 | 
	
		
			
				|  |  |             SaveModel saveModel4 = null;
 | 
	
		
			
				|  |  |          /*   //进行中
 | 
	
		
			
				|  |  |             SaveModel saveModel5 = null;*/
 | 
	
		
			
				|  |  |             String index1= (Integer.parseInt(index)+1)+"";
 | 
	
		
			
				|  |  |             saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, index1, SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index1, SaveModel.timeLevel_ZL,"1");
 | 
	
		
			
				|  |  |             saveModel3 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index, SaveModel.timeLevel_ZL,"2");
 | 
	
		
			
				|  |  |             saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index, SaveModel.timeLevel_ZL,"-1");
 | 
	
		
			
				|  |  | /*
 | 
	
		
			
				|  |  |             saveModel5 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index1, SaveModel.timeLevel_ZL,"0");
 | 
	
		
			
				|  |  | */
 | 
	
		
			
				|  |  |             saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, area, level, index1, SaveModel.timeLevel_ZL,"0");
 | 
	
		
			
				|  |  |             object.put("consultTotal",saveModel.getResult1());//咨询总量
 | 
	
		
			
				|  |  |             object.put("haveReceiveTotal",saveModel1.getResult1());//已接诊
 | 
	
		
			
				|  |  |             object.put("noReceiveTotal",saveModel2.getResult1());//未接诊
 | 
	
		
			
				|  |  |             object.put("endTotal",saveModel3.getResult1());//已结束
 | 
	
		
			
				|  |  |             object.put("cancelTotal",saveModel4.getResult1());//居民取消
 | 
	
		
			
				|  |  | /*            object.put("comingTotal",saveModel5.getResult1());*/
 | 
	
		
			
				|  |  |             object.put("notReceiveRate",getRange(saveModel2.getResult1().intValue(),saveModel.getResult1().intValue(),2));//未接诊比例
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 咨询统计曲线
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param index 专家咨询6,图文复诊11,专家协同13,视频复诊15
 | 
	
		
			
				|  |  |      * @param interval
 | 
	
		
			
				|  |  |      * @param level2_type
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultLine(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception {
 | 
	
		
			
				|  |  |         String index1= (Integer.parseInt(index)+1)+"";
 | 
	
		
			
				|  |  |         //问诊量
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         if (interval==1){
 | 
	
		
			
				|  |  |             JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }else if (interval==2){
 | 
	
		
			
				|  |  |             JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("data",array);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 咨询统计表格
 | 
	
		
			
				|  |  |      * @param startTime
 | 
	
		
			
				|  |  |      * @param endTime
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param lowLevel
 | 
	
		
			
				|  |  |      * @param  index 专家咨询6,图文复诊11,专家协同13,视频复诊15
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultingList(String startTime,String endTime,int level, String area, String lowLevel,String index) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject result = new JSONObject();
 | 
	
		
			
				|  |  |         if(index.equalsIgnoreCase("6")){
 | 
	
		
			
				|  |  |             String index1= (Integer.parseInt(index)+1)+"";
 | 
	
		
			
				|  |  |             //已结束
 | 
	
		
			
				|  |  |             List<SaveModel> endTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel,"1");
 | 
	
		
			
				|  |  |             //咨询总数
 | 
	
		
			
				|  |  |             List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel0(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel);
 | 
	
		
			
				|  |  |             //未回复数
 | 
	
		
			
				|  |  |             List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"0");
 | 
	
		
			
				|  |  |             result.put("resultList", getCoutList(level, lowLevel, endTotal, total, noRelyTotal));
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             String index1= (Integer.parseInt(index)+1)+"";
 | 
	
		
			
				|  |  |             //未接诊
 | 
	
		
			
				|  |  |             List<SaveModel> noReceiveTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel,"0");
 | 
	
		
			
				|  |  |             //咨询总数
 | 
	
		
			
				|  |  |             List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel0(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel);
 | 
	
		
			
				|  |  |             //已结束
 | 
	
		
			
				|  |  |             List<SaveModel> endTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"2");
 | 
	
		
			
				|  |  |             result.put("resultList", getCoutList1(level, lowLevel, endTotal, total, noReceiveTotal));
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * app端首页门诊量统计
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level 专家咨询6,图文复诊11,专家协同13,视频复诊15
 | 
	
		
			
				|  |  |      * @param index
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultTotalApp(String startDate, String endDate, String area, int level, String index) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         String str[] = new String[]{};
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(index)){
 | 
	
		
			
				|  |  |             str =index.split(",");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (int i=0;i<str.length;i++){
 | 
	
		
			
				|  |  |             String index1 = (Integer.parseInt(str[i])+1)+"";
 | 
	
		
			
				|  |  |             SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level,index1 , SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |             object.put("index_"+str[i],saveModel.getResult1());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * app端门诊量统计维度-圆形比例
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultCircularApp(String startDate, String endDate, String area, int level) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         //协同门诊
 | 
	
		
			
				|  |  |         SaveModel saveModel1 = null;
 | 
	
		
			
				|  |  |         saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, "14", SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |         //图文复诊
 | 
	
		
			
				|  |  |         SaveModel saveModel2 = null;
 | 
	
		
			
				|  |  |         saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, "12", SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |         //视频复诊
 | 
	
		
			
				|  |  |         SaveModel saveModel3 = null;
 | 
	
		
			
				|  |  |         saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, "16", SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |         Double specialistCount =0.0;
 | 
	
		
			
				|  |  |         //专科咨询
 | 
	
		
			
				|  |  |         SaveModel saveModel4 = null;
 | 
	
		
			
				|  |  |         saveModel4 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, "7", SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |         specialistCount = saveModel4.getResult1();//专家咨询数量
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Double synergyCount = saveModel1.getResult1();//协同门诊数量
 | 
	
		
			
				|  |  |         Double topicCount = saveModel2.getResult1();//图文复诊数量
 | 
	
		
			
				|  |  |         Double videoCount = saveModel3.getResult1();//视频复诊数量
 | 
	
		
			
				|  |  |         Double total = specialistCount+synergyCount+topicCount+videoCount;//总量
 | 
	
		
			
				|  |  |         object.put("specialistCount",specialistCount);//专家咨询数
 | 
	
		
			
				|  |  |         object.put("specialistRate",getRange(specialistCount.intValue(),total.intValue(),0));
 | 
	
		
			
				|  |  |         object.put("synergyCount",synergyCount);//专家咨询数
 | 
	
		
			
				|  |  |         object.put("synergyRate",getRange(synergyCount.intValue(),total.intValue(),0));
 | 
	
		
			
				|  |  |         object.put("topicCount",topicCount);//图文复诊数量
 | 
	
		
			
				|  |  |         object.put("topicRate",getRange(topicCount.intValue(),total.intValue(),0));
 | 
	
		
			
				|  |  |         object.put("videoCount",videoCount);//视频复诊数量
 | 
	
		
			
				|  |  |         object.put("videoRate",getRange(videoCount.intValue(),total.intValue(),0));
 | 
	
		
			
				|  |  |         object.put("total",total);
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * app端门诊量统计-按照日周月
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param index
 | 
	
		
			
				|  |  |      * @param interval
 | 
	
		
			
				|  |  |      * @param level2_type
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultLineApp(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;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 门诊量统计-app端
 | 
	
		
			
				|  |  |      * @param startTime
 | 
	
		
			
				|  |  |      * @param endTime
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param lowLevel
 | 
	
		
			
				|  |  |      * @param index
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultListApp(String startTime,String endTime,int level, String area, String lowLevel,String index) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject result1 = new JSONObject();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //门诊量总数
 | 
	
		
			
				|  |  |         List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel0(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, 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 consultNm = 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("consultRate",getDoubleRange(consultNm,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("total") < (Double) o2.get("total") ? 1 : ((Double) o1.get("total") == (Double) o2.get("total") ? 0 : -1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |         result1.put("resultList", resultMaps);
 | 
	
		
			
				|  |  |         return result1;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 咨询统计曲线-PC
 | 
	
		
			
				|  |  |      * @param startDate
 | 
	
		
			
				|  |  |      * @param endDate
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param index 专家咨询6,图文复诊11,专家协同13,视频复诊15
 | 
	
		
			
				|  |  |      * @param interval
 | 
	
		
			
				|  |  |      * @param level2_type
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultLinePC(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception {
 | 
	
		
			
				|  |  |         String index1= (Integer.parseInt(index)+1)+"";
 | 
	
		
			
				|  |  |         //问诊量
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         if (interval==1){
 | 
	
		
			
				|  |  |             if (index.equalsIgnoreCase("6")){
 | 
	
		
			
				|  |  |                 JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("totalData",array);//新增量
 | 
	
		
			
				|  |  |                 JSONArray array1 = dateTotalStatistics2(startDate,endDate,area,level,index,"0",SaveModel.timeLevel_ZL,null);//未回复
 | 
	
		
			
				|  |  |                 object.put("noReplyData",array1);//未回复
 | 
	
		
			
				|  |  |                 JSONArray array2 = dateTotalStatistics2(startDate,endDate,area,level,index,"1",SaveModel.timeLevel_ZL,null);//已回复
 | 
	
		
			
				|  |  |                 object.put("replyData",array2);//已回复
 | 
	
		
			
				|  |  |                 JSONArray array3 = dateTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL,null);//进行中
 | 
	
		
			
				|  |  |                 object.put("commingData",array3);//进行中
 | 
	
		
			
				|  |  |                 JSONArray array4 = dateTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL,null);//已完成
 | 
	
		
			
				|  |  |                 object.put("endData",array4);//已完成
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL,null);
 | 
	
		
			
				|  |  |                 object.put("totalData",array);//新增量
 | 
	
		
			
				|  |  |                 JSONArray array1 = dateTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL,null);//未接诊
 | 
	
		
			
				|  |  |                 object.put("noReceiveData",array1);//未接诊
 | 
	
		
			
				|  |  |                 JSONArray array2 = dateTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL,null);//已接诊
 | 
	
		
			
				|  |  |                 object.put("haveReceiveData",array2);//已接诊
 | 
	
		
			
				|  |  |                 JSONArray array3 = dateTotalStatistics2(startDate,endDate,area,level,index,"-1",SaveModel.timeLevel_ZL,null);//患者取消
 | 
	
		
			
				|  |  |                 object.put("concleData",array3);//患者取消
 | 
	
		
			
				|  |  |                 JSONArray array4 = dateTotalStatistics2(startDate,endDate,area,level,index,"2",SaveModel.timeLevel_ZL,null);//已结束
 | 
	
		
			
				|  |  |                 object.put("endData",array4);//已结束
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }else if (interval==2){
 | 
	
		
			
				|  |  |             if (index.equalsIgnoreCase("6")){
 | 
	
		
			
				|  |  |                 JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("totalData",array);//新增量
 | 
	
		
			
				|  |  |                 JSONArray array1 = weekTotalStatistics(startDate,endDate,area,level,index,"0",SaveModel.timeLevel_ZL);//未回复
 | 
	
		
			
				|  |  |                 object.put("noReplyData",array1);;//未回复
 | 
	
		
			
				|  |  |                 JSONArray array2 = weekTotalStatistics(startDate,endDate,area,level,index,"1",SaveModel.timeLevel_ZL);//已回复
 | 
	
		
			
				|  |  |                 object.put("replyData",array2);//已回复
 | 
	
		
			
				|  |  |                 JSONArray array3 = weekTotalStatistics(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL);//进行中
 | 
	
		
			
				|  |  |                 object.put("commingData",array3);//进行中
 | 
	
		
			
				|  |  |                 JSONArray array4 = weekTotalStatistics(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL);//已完成
 | 
	
		
			
				|  |  |                 object.put("endData",array3);//进行中
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 JSONArray array = weekTotalStatistics(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("totalData",array);//新增量
 | 
	
		
			
				|  |  |                 JSONArray array1 = weekTotalStatistics(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL);//未接诊
 | 
	
		
			
				|  |  |                 object.put("noReceiveData",array1);;//未接诊
 | 
	
		
			
				|  |  |                 JSONArray array2 = weekTotalStatistics(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL);//已接诊
 | 
	
		
			
				|  |  |                 object.put("haveReceiveData",array2);//已接诊
 | 
	
		
			
				|  |  |                 JSONArray array3 = weekTotalStatistics(startDate,endDate,area,level,index,"-1",SaveModel.timeLevel_ZL);//患者取消
 | 
	
		
			
				|  |  |                 object.put("concleData",array3);//患者取消
 | 
	
		
			
				|  |  |                 JSONArray array4 = weekTotalStatistics(startDate,endDate,area,level,index,"2",SaveModel.timeLevel_ZL);//已结束
 | 
	
		
			
				|  |  |                 object.put("endData",array3);//已结束
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }else if (interval==3){
 | 
	
		
			
				|  |  |             if (index.equalsIgnoreCase("6")){
 | 
	
		
			
				|  |  |                 JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("totalData",array);
 | 
	
		
			
				|  |  |                 JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,index,"0",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("noReplyData",array1);
 | 
	
		
			
				|  |  |                 JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,index,"1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("replyData",array2);
 | 
	
		
			
				|  |  |                 JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("commingData",array3);
 | 
	
		
			
				|  |  |                 JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("endData",array4);
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index1,null,SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("totalData",array);
 | 
	
		
			
				|  |  |                 JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,index1,"0",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("noReceiveData",array1);
 | 
	
		
			
				|  |  |                 JSONArray array2 = monthTotalStatistics2(startDate,endDate,area,level,index1,"1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("haveReceiveData",array2);
 | 
	
		
			
				|  |  |                 JSONArray array3 = monthTotalStatistics2(startDate,endDate,area,level,index,"-1",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("concleData",array3);
 | 
	
		
			
				|  |  |                 JSONArray array4 = monthTotalStatistics2(startDate,endDate,area,level,index,"2",SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 object.put("endData",array4);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 咨询统计表格-PC
 | 
	
		
			
				|  |  |      * @param startTime
 | 
	
		
			
				|  |  |      * @param endTime
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param area
 | 
	
		
			
				|  |  |      * @param lowLevel
 | 
	
		
			
				|  |  |      * @param  index 专家咨询6,图文复诊11,专家协同13,视频复诊15
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getConsultingListPC(String startTime,String endTime,int level, String area, String lowLevel,String index) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject result = new JSONObject();
 | 
	
		
			
				|  |  |         String index1= (Integer.parseInt(index)+1)+"";
 | 
	
		
			
				|  |  | //        timeKey= "2017-11-01 00:00:00";
 | 
	
		
			
				|  |  |         if(index.equalsIgnoreCase("6")){
 | 
	
		
			
				|  |  |             //已结束
 | 
	
		
			
				|  |  |             List<SaveModel> endTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel,"1");
 | 
	
		
			
				|  |  |             //进行中
 | 
	
		
			
				|  |  |             List<SaveModel> comingTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel,"0");
 | 
	
		
			
				|  |  |             //咨询总数
 | 
	
		
			
				|  |  |             List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel0(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel);
 | 
	
		
			
				|  |  |             //未回复数
 | 
	
		
			
				|  |  |             List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"0");
 | 
	
		
			
				|  |  |             //已回复数
 | 
	
		
			
				|  |  |             List<SaveModel> relyTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"1");
 | 
	
		
			
				|  |  |             result.put("resultList", getCoutListPC(level, lowLevel, endTotal, total, noRelyTotal,relyTotal,comingTotal));
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             //已结束
 | 
	
		
			
				|  |  |             List<SaveModel> endTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"2");
 | 
	
		
			
				|  |  |             //居民取消
 | 
	
		
			
				|  |  |             List<SaveModel> concleTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"-1");
 | 
	
		
			
				|  |  |             //咨询总数
 | 
	
		
			
				|  |  |             List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel0(startTime, endTime, area, level, index1, SaveModel.timeLevel_ZL, lowLevel);
 | 
	
		
			
				|  |  |             //已接诊
 | 
	
		
			
				|  |  |             List<SaveModel> haveReceiveTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"1");
 | 
	
		
			
				|  |  |             //未接诊
 | 
	
		
			
				|  |  |             List<SaveModel> noReceiveTotal = elasticsearchUtil.findListDateQuotaLevel1(startTime, endTime, area, level, index, SaveModel.timeLevel_ZL, lowLevel,"0");
 | 
	
		
			
				|  |  |             result.put("resultList", getCoutListPC1(level, lowLevel, endTotal, total, haveReceiveTotal,noReceiveTotal,concleTotal));
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 在线复诊、协同复诊转换
 | 
	
		
			
				|  |  |      * @param level
 | 
	
		
			
				|  |  |      * @param lowLevel
 | 
	
		
			
				|  |  |      * @param endConsult
 | 
	
		
			
				|  |  |      * @param total
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getCoutListPC1(Integer level, String lowLevel, List<SaveModel> endConsult, List<SaveModel> total, List<SaveModel> haveReceive,List<SaveModel> noReceive,List<SaveModel> concle) {
 | 
	
		
			
				|  |  |         Map<String, Object> endMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> totalMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> noReceiveMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> concleMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> haveReceiveMap = 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)) {
 | 
	
		
			
				|  |  |                 endMap.put(saveModel.getDoctor(), saveModel);
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 endMap.put(saveModel.getDept(), saveModel);
 | 
	
		
			
				|  |  |             }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 endMap.put(saveModel.getHospital(), saveModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //转换已接诊
 | 
	
		
			
				|  |  |         for (SaveModel saveModel : haveReceive) {
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 haveReceiveMap.put(saveModel.getDoctor(), saveModel);
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 haveReceiveMap.put(saveModel.getDept(), saveModel);
 | 
	
		
			
				|  |  |             }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 haveReceiveMap.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 : noReceive) {
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 noReceiveMap.put(saveModel.getDoctor(), saveModel);
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 noReceiveMap.put(saveModel.getDept(), saveModel);
 | 
	
		
			
				|  |  |             }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 noReceiveMap.put(saveModel.getHospital(), saveModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //转换已取消
 | 
	
		
			
				|  |  |         for (SaveModel saveModel : concle) {
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 concleMap.put(saveModel.getDoctor(), saveModel);
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 concleMap.put(saveModel.getDept(), saveModel);
 | 
	
		
			
				|  |  |             }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 concleMap.put(saveModel.getHospital(), saveModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String, Object>> resultMaps = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (String key : totalMap.keySet()) {
 | 
	
		
			
				|  |  |             Map<String, Object> rs = new HashMap<>();
 | 
	
		
			
				|  |  |             SaveModel endRs = (SaveModel) endMap.get(key);
 | 
	
		
			
				|  |  |             SaveModel totalRs = (SaveModel) totalMap.get(key);
 | 
	
		
			
				|  |  |             SaveModel concleRs = (SaveModel) concleMap.get(key);
 | 
	
		
			
				|  |  |             SaveModel noReceiveRs = (SaveModel) noReceiveMap.get(key);
 | 
	
		
			
				|  |  |             SaveModel haveReceiveRs = (SaveModel) haveReceiveMap.get(key);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (endRs == null || totalRs == null || concleRs == null || noReceiveRs==null || haveReceiveRs == null) {
 | 
	
		
			
				|  |  |                 continue;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //合并结果集
 | 
	
		
			
				|  |  |             Integer totalNm = totalRs.getResult2().intValue();
 | 
	
		
			
				|  |  |             Integer endNm = endRs.getResult2().intValue();
 | 
	
		
			
				|  |  |             Integer concleNm = concleRs.getResult2().intValue();
 | 
	
		
			
				|  |  |             Integer noReceiveNm = noReceiveRs.getResult2().intValue();
 | 
	
		
			
				|  |  |             Integer haveReceiveNm = haveReceiveRs.getResult2().intValue();
 | 
	
		
			
				|  |  | //            rs.put("name", relyRs.get(area+"Name"));
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 rs.put("name", endRs.getDoctorName());
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 rs.put("name", endRs.getDeptName());
 | 
	
		
			
				|  |  |             } else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 rs.put("name", endRs.getHospitalName());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             rs.put("concleCount", concleNm);
 | 
	
		
			
				|  |  |             rs.put("endCount", endNm);
 | 
	
		
			
				|  |  |             rs.put("total", totalNm);
 | 
	
		
			
				|  |  |             rs.put("noReceiveCount", noReceiveNm);
 | 
	
		
			
				|  |  |             rs.put("haveReceiveCount", haveReceiveNm);
 | 
	
		
			
				|  |  |             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 (Integer) o1.get("total") < (Integer) o2.get("total") ? 1 : ((Integer) o1.get("total") == (Integer) o2.get("total") ? 0 : -1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |         return resultMaps;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getCoutListPC(Integer level, String lowLevel, List<SaveModel> endConsult, List<SaveModel> total, List<SaveModel> noRely,List<SaveModel> reply,List<SaveModel> coming) {
 | 
	
		
			
				|  |  |         Map<String, Object> endMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> totalMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> noRelyMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> relyMap = new HashMap<>();
 | 
	
		
			
				|  |  |         Map<String, Object> comingMap = 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)) {
 | 
	
		
			
				|  |  |                 endMap.put(saveModel.getDoctor(), saveModel);
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 endMap.put(saveModel.getDept(), saveModel);
 | 
	
		
			
				|  |  |             }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 endMap.put(saveModel.getHospital(), saveModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //转换进行数
 | 
	
		
			
				|  |  |         for (SaveModel saveModel : coming) {
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 comingMap.put(saveModel.getDoctor(), saveModel);
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 comingMap.put(saveModel.getDept(), saveModel);
 | 
	
		
			
				|  |  |             }else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 comingMap.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);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //转换已回复
 | 
	
		
			
				|  |  |         for (SaveModel saveModel : reply) {
 | 
	
		
			
				|  |  |             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);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String, Object>> resultMaps = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (String key : totalMap.keySet()) {
 | 
	
		
			
				|  |  |             Map<String, Object> rs = new HashMap<>();
 | 
	
		
			
				|  |  |             SaveModel endRs = (SaveModel) endMap.get(key);
 | 
	
		
			
				|  |  |             SaveModel totalRs = (SaveModel) totalMap.get(key);
 | 
	
		
			
				|  |  |             SaveModel onRelyRs = (SaveModel) noRelyMap.get(key);
 | 
	
		
			
				|  |  |             SaveModel relyRs = (SaveModel) relyMap.get(key);
 | 
	
		
			
				|  |  |             SaveModel comingRs = (SaveModel) relyMap.get(key);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (endRs == null || totalRs == null || onRelyRs == null || relyRs==null || comingRs == null) {
 | 
	
		
			
				|  |  |                 continue;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //合并结果集
 | 
	
		
			
				|  |  |             Integer totalNm = totalRs.getResult2().intValue();
 | 
	
		
			
				|  |  |             Integer endNm = endRs.getResult2().intValue();
 | 
	
		
			
				|  |  |             Integer noRelyNm = onRelyRs.getResult2().intValue();
 | 
	
		
			
				|  |  |             Integer relyNm = relyRs.getResult2().intValue();
 | 
	
		
			
				|  |  |             Integer comingNm = comingRs.getResult2().intValue();
 | 
	
		
			
				|  |  | //            rs.put("name", relyRs.get(area+"Name"));
 | 
	
		
			
				|  |  |             if (SaveModel.doctorLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 rs.put("name", endRs.getDoctorName());
 | 
	
		
			
				|  |  |             } else if (SaveModel.deptLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 rs.put("name", endRs.getDeptName());
 | 
	
		
			
				|  |  |             } else if (SaveModel.OrgLevel.equals(low_level)) {
 | 
	
		
			
				|  |  |                 rs.put("name", endRs.getHospitalName());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             rs.put("noRelyCount", noRelyNm);
 | 
	
		
			
				|  |  |             rs.put("endCount", endNm);
 | 
	
		
			
				|  |  |             rs.put("total", totalNm);
 | 
	
		
			
				|  |  |             rs.put("relyCount", relyNm);
 | 
	
		
			
				|  |  |             rs.put("comingCount", comingNm);
 | 
	
		
			
				|  |  |             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 6专家,13协同,17、在线复诊
 | 
	
		
			
				|  |  |      * @param timeLevel
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject getIndexTotalApp(String startDate, String endDate, String area, int level, String index,String timeLevel) throws Exception {
 | 
	
		
			
				|  |  |         JSONObject object = new JSONObject();
 | 
	
		
			
				|  |  |         String str[] = new String[]{};
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(index)){
 | 
	
		
			
				|  |  |             str =index.split(",");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         for (int i=0;i<str.length;i++){
 | 
	
		
			
				|  |  |             String index1 = (Integer.parseInt(str[i])+1)+"";
 | 
	
		
			
				|  |  |             if (index1.equalsIgnoreCase("12")){
 | 
	
		
			
				|  |  |                 SaveModel saveModel1 = null;//图文
 | 
	
		
			
				|  |  |                 SaveModel saveModel2 = null;//视频
 | 
	
		
			
				|  |  |                 if (timeLevel.equalsIgnoreCase(SaveModel.timeLevel_ZL)){
 | 
	
		
			
				|  |  |                     saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level,"12" , SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                     saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level,"16" , SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 }else if (timeLevel.equalsIgnoreCase(SaveModel.timeLevel_DDL)){
 | 
	
		
			
				|  |  |                     saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level,"12" , SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |                     saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level,"16" , SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 Double topicTotal = saveModel1.getResult1();
 | 
	
		
			
				|  |  |                 Double vedioTotal = saveModel2.getResult1();
 | 
	
		
			
				|  |  |                 object.put("index_11_15",vedioTotal+topicTotal);//在线复诊
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 SaveModel saveModel = null;
 | 
	
		
			
				|  |  |                 if (timeLevel.equalsIgnoreCase(SaveModel.timeLevel_ZL)){
 | 
	
		
			
				|  |  |                     saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level,index1 , SaveModel.timeLevel_ZL);
 | 
	
		
			
				|  |  |                 }else if (timeLevel.equalsIgnoreCase(SaveModel.timeLevel_DDL)){
 | 
	
		
			
				|  |  |                     saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level,index1 , SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 object.put("index_"+str[i],saveModel.getResult1());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return object;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |