|  | @ -1,5 +1,6 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.care.service.statistics;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONArray;
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.util.ConstantUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.dict.dao.DictHospitalDeptDao;
 | 
	
	
		
			
				|  | @ -17,6 +18,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.util.Calendar;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  *
 | 
	
	
		
			
				|  | @ -72,9 +74,175 @@ public class StatisticsService {
 | 
	
		
			
				|  |  |         return res;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 咨询分析
 | 
	
		
			
				|  |  |      * type 1幼儿 2老人
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject consultAnalysis(String endDate, String area, int level, String type) throws Exception{
 | 
	
		
			
				|  |  |         JSONObject res = new JSONObject();
 | 
	
		
			
				|  |  |         String totalIndex = "28";
 | 
	
		
			
				|  |  |         String noReplyIndex = "29";
 | 
	
		
			
				|  |  |         String inTimeIndex = "30";
 | 
	
		
			
				|  |  |         if("2".equals(type)){
 | 
	
		
			
				|  |  |             totalIndex = "31";
 | 
	
		
			
				|  |  |             noReplyIndex = "32";
 | 
	
		
			
				|  |  |             inTimeIndex = "33";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //咨询总数
 | 
	
		
			
				|  |  |         SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         //未回复数
 | 
	
		
			
				|  |  |         SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, noReplyIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         //及时回复数
 | 
	
		
			
				|  |  |         SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, inTimeIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         res.put("total",saveModel1.getResult2().longValue());
 | 
	
		
			
				|  |  |         res.put("noReply",saveModel2.getResult2().longValue());
 | 
	
		
			
				|  |  |         res.put("inTime",saveModel3.getResult2().longValue());
 | 
	
		
			
				|  |  |         res.put("noReplyRate",statisticsUtilService.getTwoRange(saveModel2.getResult2(),saveModel1.getResult2()));
 | 
	
		
			
				|  |  |         res.put("inTimeRate",statisticsUtilService.getTwoRange(saveModel3.getResult2(),saveModel1.getResult2()));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return res;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 上门辅导分析
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject doorCoachAnalysis(String endDate, String area, int level) throws Exception{
 | 
	
		
			
				|  |  |         JSONObject res = new JSONObject();
 | 
	
		
			
				|  |  |         String totalIndex = "34";
 | 
	
		
			
				|  |  |         String noReplyIndex = "35";
 | 
	
		
			
				|  |  |         String inTimeIndex = "36";
 | 
	
		
			
				|  |  |         //幼儿数
 | 
	
		
			
				|  |  |         SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         //工单数
 | 
	
		
			
				|  |  |         SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, noReplyIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         //服务费用
 | 
	
		
			
				|  |  |         SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, inTimeIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         res.put("patientNum",saveModel1.getResult2().longValue());
 | 
	
		
			
				|  |  |         res.put("orderNum",saveModel2.getResult2().longValue());
 | 
	
		
			
				|  |  |         res.put("fee",saveModel3.getResult1());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //服务项目分析
 | 
	
		
			
				|  |  |         JSONArray jsonArray = new JSONArray();
 | 
	
		
			
				|  |  |         List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,inTimeIndex,SaveModel.timeLevel_DDL,null,null);
 | 
	
		
			
				|  |  |         for(int i=0;(i<list.size()&&i<5);i++){
 | 
	
		
			
				|  |  |             SaveModel saveModel = list.get(i);
 | 
	
		
			
				|  |  |             JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |             json.put("num",saveModel.getResult2().longValue());
 | 
	
		
			
				|  |  |             json.put("code",saveModel.getSlaveKey1());
 | 
	
		
			
				|  |  |             json.put("name",saveModel.getSlaveKey1Name());
 | 
	
		
			
				|  |  |             jsonArray.add(json);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         res.put("items",jsonArray);
 | 
	
		
			
				|  |  |         return res;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 上门辅导服务项目
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray doorCoachItems(String endDate, String area, int level) throws Exception{
 | 
	
		
			
				|  |  |         //服务项目分析
 | 
	
		
			
				|  |  |         JSONArray jsonArray = new JSONArray();
 | 
	
		
			
				|  |  |         List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,"36",SaveModel.timeLevel_DDL,null,null);
 | 
	
		
			
				|  |  |         for(int i=0;i<list.size();i++){
 | 
	
		
			
				|  |  |             SaveModel saveModel = list.get(i);
 | 
	
		
			
				|  |  |             JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |             json.put("num",saveModel.getResult2().longValue());
 | 
	
		
			
				|  |  |             json.put("code",saveModel.getSlaveKey1());
 | 
	
		
			
				|  |  |             json.put("name",saveModel.getSlaveKey1Name());
 | 
	
		
			
				|  |  |             jsonArray.add(json);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return jsonArray;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 通用增量趋势接口
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray addLine(String startDate,String endDate, String area, int level,String index,String timeLevel,String interval,String lowLevel)throws Exception{
 | 
	
		
			
				|  |  |         List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,timeLevel,interval,lowLevel);
 | 
	
		
			
				|  |  |         JSONArray result = new JSONArray();
 | 
	
		
			
				|  |  |         for (SaveModel saveModel : list) {
 | 
	
		
			
				|  |  |             JSONObject range = new JSONObject();
 | 
	
		
			
				|  |  |             range.put("range", DateUtil.dateToStr(saveModel.getQuotaDate(), "yyyy-MM-dd"));
 | 
	
		
			
				|  |  |             range.put("amount", saveModel.getResult2());
 | 
	
		
			
				|  |  |             result.add(range);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 生活照料分析
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONObject lifeCareAnalysis(String endDate, String area, int level) throws Exception{
 | 
	
		
			
				|  |  |         JSONObject res = new JSONObject();
 | 
	
		
			
				|  |  |         String totalIndex = "38";
 | 
	
		
			
				|  |  |         String noReplyIndex = "39";
 | 
	
		
			
				|  |  |         String inTimeIndex = "40";
 | 
	
		
			
				|  |  |         //老人数
 | 
	
		
			
				|  |  |         SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         //工单数
 | 
	
		
			
				|  |  |         SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, noReplyIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         //服务费用
 | 
	
		
			
				|  |  |         SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, inTimeIndex, SaveModel.timeLevel_DDL);
 | 
	
		
			
				|  |  |         res.put("patientNum",saveModel1.getResult2().longValue());
 | 
	
		
			
				|  |  |         res.put("orderNum",saveModel2.getResult2().longValue());
 | 
	
		
			
				|  |  |         res.put("fee",saveModel3.getResult1());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //服务项目分析
 | 
	
		
			
				|  |  |         JSONArray jsonArray = new JSONArray();
 | 
	
		
			
				|  |  |         List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,inTimeIndex,SaveModel.timeLevel_DDL,null,null);
 | 
	
		
			
				|  |  |         for(int i=0;(i<list.size()&&i<5);i++){
 | 
	
		
			
				|  |  |             SaveModel saveModel = list.get(i);
 | 
	
		
			
				|  |  |             JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |             json.put("num",saveModel.getResult2().longValue());
 | 
	
		
			
				|  |  |             json.put("code",saveModel.getSlaveKey1());
 | 
	
		
			
				|  |  |             json.put("name",saveModel.getSlaveKey1Name());
 | 
	
		
			
				|  |  |             jsonArray.add(json);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         res.put("items",jsonArray);
 | 
	
		
			
				|  |  |         return res;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 生活照料服务项目
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray lifeCareItems(String endDate, String area, int level) throws Exception{
 | 
	
		
			
				|  |  |         //服务项目分析
 | 
	
		
			
				|  |  |         JSONArray jsonArray = new JSONArray();
 | 
	
		
			
				|  |  |         List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,"40",SaveModel.timeLevel_DDL,null,null);
 | 
	
		
			
				|  |  |         for(int i=0;i<list.size();i++){
 | 
	
		
			
				|  |  |             SaveModel saveModel = list.get(i);
 | 
	
		
			
				|  |  |             JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |             json.put("num",saveModel.getResult2().longValue());
 | 
	
		
			
				|  |  |             json.put("code",saveModel.getSlaveKey1());
 | 
	
		
			
				|  |  |             json.put("name",saveModel.getSlaveKey1Name());
 | 
	
		
			
				|  |  |             jsonArray.add(json);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return jsonArray;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 能力评估评估类型
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray capacityAssessment(String endDate, String area, int level) throws Exception{
 | 
	
		
			
				|  |  |         //评估类型
 | 
	
		
			
				|  |  |         JSONArray jsonArray = new JSONArray();
 | 
	
		
			
				|  |  |         List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,"37",SaveModel.timeLevel_DDL,null,null);
 | 
	
		
			
				|  |  |         for(int i=0;i<list.size();i++){
 | 
	
		
			
				|  |  |             SaveModel saveModel = list.get(i);
 | 
	
		
			
				|  |  |             JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |             json.put("num",saveModel.getResult2().longValue());
 | 
	
		
			
				|  |  |             json.put("code",saveModel.getSlaveKey1());
 | 
	
		
			
				|  |  |             json.put("name",saveModel.getSlaveKey1Name());
 | 
	
		
			
				|  |  |             jsonArray.add(json);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return jsonArray;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |         /**
 | 
	
		
			
				|  |  |          * 统计首页头部数据
 | 
	
		
			
				|  |  |          * @param area
 |