|
@ -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,241 @@ 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 patientAnalysis(String endDate, String area, int level,String index) throws Exception{
|
|
|
JSONObject res = new JSONObject();
|
|
|
|
|
|
String areaLevel = "6";
|
|
|
if("42".equals(index)){
|
|
|
areaLevel = "4";
|
|
|
//新生儿
|
|
|
//是否入学
|
|
|
List<SaveModel> statusList = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL,null,null,areaLevel);
|
|
|
JSONArray statusArray = new JSONArray();
|
|
|
for(int i=0;i<statusList.size();i++){
|
|
|
SaveModel saveModel = statusList.get(i);
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("num",saveModel.getResult2().longValue());
|
|
|
json.put("code",saveModel.getSlaveKey1());
|
|
|
json.put("name",saveModel.getSlaveKey1Name());
|
|
|
statusArray.add(json);
|
|
|
}
|
|
|
res.put("statusList",statusArray);
|
|
|
}else{
|
|
|
//老人
|
|
|
//能力评估
|
|
|
List<SaveModel> levelList = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL,null,null,areaLevel);
|
|
|
JSONArray levelArray = new JSONArray();
|
|
|
for(int i=0;i<levelList.size();i++){
|
|
|
SaveModel saveModel = levelList.get(i);
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("num",saveModel.getResult2().longValue());
|
|
|
json.put("code",saveModel.getSlaveKey1());
|
|
|
json.put("name",saveModel.getSlaveKey1Name());
|
|
|
levelArray.add(json);
|
|
|
}
|
|
|
res.put("levelList",levelArray);
|
|
|
|
|
|
//年龄分布
|
|
|
List<SaveModel> ageList = elasticsearchUtil.findDateAllQuotaLevel3(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL,null,null);
|
|
|
JSONArray ageArray = new JSONArray();
|
|
|
for(int i=0;i<ageList.size();i++){
|
|
|
SaveModel saveModel = ageList.get(i);
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("num",saveModel.getResult2().longValue());
|
|
|
json.put("code",saveModel.getSlaveKey3());
|
|
|
json.put("name",saveModel.getSlaveKey3Name());
|
|
|
ageArray.add(json);
|
|
|
}
|
|
|
res.put("ageList",ageArray);
|
|
|
}
|
|
|
|
|
|
//性别
|
|
|
List<SaveModel> sexList = elasticsearchUtil.findDateAllQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL,null,null,areaLevel);
|
|
|
JSONArray sexArray = new JSONArray();
|
|
|
for(int i=0;i<sexList.size();i++){
|
|
|
SaveModel saveModel = sexList.get(i);
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("num",saveModel.getResult2().longValue());
|
|
|
json.put("code",saveModel.getSlaveKey2());
|
|
|
json.put("name",saveModel.getSlaveKey2Name());
|
|
|
sexArray.add(json);
|
|
|
}
|
|
|
res.put("sexList",sexArray);
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 生活照料分析
|
|
|
*/
|
|
|
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
|