|
@ -20,6 +20,7 @@ import io.searchbox.client.JestClient;
|
|
|
import io.searchbox.core.Bulk;
|
|
|
import io.searchbox.core.BulkResult;
|
|
|
import io.searchbox.core.Index;
|
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.json.JSONArray;
|
|
|
import org.json.JSONObject;
|
|
@ -59,6 +60,7 @@ public class StatisticsESService {
|
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX");
|
|
|
SimpleDateFormat dateFormat3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
/**
|
|
|
* 获取上次统计时间
|
|
|
*
|
|
@ -190,7 +192,7 @@ public class StatisticsESService {
|
|
|
public long getIntervalIncrement(String startDate, String endDate, String area, int level, String index) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1");
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
// /**
|
|
@ -271,7 +273,7 @@ public class StatisticsESService {
|
|
|
}else{
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1");
|
|
|
}
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -322,9 +324,9 @@ public class StatisticsESService {
|
|
|
map.put("code",saveModel.getTeam());
|
|
|
map.put("name",saveModel.getCityName());
|
|
|
}
|
|
|
map.put("amount",Long.parseLong(saveModel.getResult2()+""));
|
|
|
map.put("amount",saveModel.getResult2().longValue());
|
|
|
map.put("rate",df.format((saveModel.getResult2() * 1.0000) / populationBase.getNum() * 100));
|
|
|
map.put("rateString",saveModel.getResult2()+"/"+populationBase.getNum());
|
|
|
map.put("rateString",saveModel.getResult2().longValue()+"/"+populationBase.getNum());
|
|
|
resultList.add(map);
|
|
|
}
|
|
|
Collections.sort(resultList, new Comparator<Map<String, Object>>() {
|
|
@ -360,7 +362,7 @@ public class StatisticsESService {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("code",saveModel.getSlaveKey1());
|
|
|
map.put("name",saveModel.getSlaveKey1Name());
|
|
|
map.put("amount",Long.parseLong(saveModel.getResult2()+""));
|
|
|
map.put("amount",saveModel.getResult2().longValue());
|
|
|
if (index.equals("7")) {
|
|
|
// 分组指标总数算法
|
|
|
String code = saveModel.getSlaveKey2();
|
|
@ -442,7 +444,7 @@ public class StatisticsESService {
|
|
|
endDate = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,index,timeLevel);
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -456,7 +458,7 @@ public class StatisticsESService {
|
|
|
public long getWeiJiaoFei(String endDate, String area, int level) throws Exception{
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate,area,level,"16","2","0");
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
|
|
@ -478,12 +480,12 @@ public class StatisticsESService {
|
|
|
}
|
|
|
String timeKey = elasticsearchUtil.getQuotaTime();
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey,area,Integer.parseInt(level),renewIndex,"2");
|
|
|
int renewNum = saveModel.getResult2();
|
|
|
int renewNum = saveModel.getResult2().intValue();
|
|
|
//根据年度获取去年的签约数 签约指标是1
|
|
|
String date = year + "-06-30";
|
|
|
String index = "1";
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(date,area,Integer.parseInt(level),index,"2");
|
|
|
int signNum = saveModel2.getResult2();
|
|
|
int signNum = saveModel2.getResult2().intValue();
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("yesterYearSign", signNum);//去年的签约量
|
|
|
jo.put("thisYearRenew", renewNum);//今年的续签量
|
|
@ -502,7 +504,7 @@ public class StatisticsESService {
|
|
|
public JSONObject getSignRate(String endDate, String area, int level, String year) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,"13","2");
|
|
|
long signAmount = saveModel.getResult2();
|
|
|
long signAmount = saveModel.getResult2().longValue();
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
|
JSONObject json = new JSONObject();
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
@ -533,7 +535,7 @@ public class StatisticsESService {
|
|
|
endDate = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,"13","2");
|
|
|
long signAmount = saveModel.getResult2();
|
|
|
long signAmount = saveModel.getResult2().longValue();
|
|
|
PopulationBase peopleNum = getPopulationBase(area, year);
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
JSONObject json = new JSONObject();
|
|
@ -564,7 +566,7 @@ public class StatisticsESService {
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate,endDate,area,level,"17","2",lowCode,null,null);
|
|
|
long total = 0;
|
|
|
if(list.size()>0){
|
|
|
total = list.get(0).getResult2();
|
|
|
total = list.get(0).getResult2().longValue();
|
|
|
}
|
|
|
int num = 0;
|
|
|
int taskNum = 0;
|
|
@ -676,7 +678,7 @@ public class StatisticsESService {
|
|
|
endDate = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate,area,level,"8","2","6");
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -728,7 +730,7 @@ public class StatisticsESService {
|
|
|
for (SaveModel saveModel:list) {
|
|
|
JSONObject range = new JSONObject();
|
|
|
range.put("range", df.format(saveModel.getQuotaDate()));
|
|
|
range.put("amount", saveModel.getResult2());
|
|
|
range.put("amount", saveModel.getResult2().longValue());
|
|
|
result.add(range);
|
|
|
}
|
|
|
json.put("data", new ArrayList<>(result));
|
|
@ -1027,7 +1029,7 @@ public class StatisticsESService {
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult1());
|
|
|
maps.put("amount", one.getResult2().longValue());
|
|
|
if (low_level.equals("3")) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
@ -1251,7 +1253,7 @@ public class StatisticsESService {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getTownName());
|
|
|
jo.put("code", one.getTown());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2(), 2));
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2().intValue(), 2));
|
|
|
ja.put(jo);
|
|
|
});
|
|
|
} else {
|
|
@ -1260,7 +1262,7 @@ public class StatisticsESService {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getHospitalName());
|
|
|
jo.put("code", one.getHospital());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2(), 2));
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2().intValue(), 2));
|
|
|
ja.put(jo);
|
|
|
});
|
|
|
}
|
|
@ -1270,7 +1272,7 @@ public class StatisticsESService {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getHospitalName());
|
|
|
jo.put("code", one.getHospital());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2(), 2));
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2().intValue(), 2));
|
|
|
ja.put(jo);
|
|
|
});
|
|
|
} else if (level == 2) {
|
|
@ -1280,7 +1282,7 @@ public class StatisticsESService {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("name", one.getTeam());
|
|
|
jo.put("code", one.getTeamName());
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2(), 2));
|
|
|
jo.put("avgCount", getRangeDouuble(one.getResult1(), one.getResult2().intValue(), 2));
|
|
|
ja.put(jo);
|
|
|
});
|
|
|
translateTeamLeaderName(ja);
|
|
@ -1312,7 +1314,7 @@ public class StatisticsESService {
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult1());
|
|
|
maps.put("amount", one.getResult2().intValue());
|
|
|
if (low_level.equals("3")) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
@ -1406,7 +1408,7 @@ public class StatisticsESService {
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
|
Map<String, Object> maps = new HashMap<String, Object>();
|
|
|
maps.put("amount", one.getResult1());
|
|
|
maps.put("amount", one.getResult2().intValue());
|
|
|
if (low_level.equals("3")) {
|
|
|
maps.put("code", one.getTown());
|
|
|
maps.put("name", one.getTownName());
|
|
@ -1681,9 +1683,9 @@ public class StatisticsESService {
|
|
|
continue;
|
|
|
}
|
|
|
//合并结果集
|
|
|
Integer totalNm = totalRs.getResult2();
|
|
|
Integer relyNm = relyRs.getResult2();
|
|
|
Integer noRelyNm = onRelyRs.getResult2();
|
|
|
Integer totalNm = totalRs.getResult2().intValue();
|
|
|
Integer relyNm = relyRs.getResult2().intValue();
|
|
|
Integer noRelyNm = onRelyRs.getResult2().intValue();
|
|
|
// rs.put("name", relyRs.get(area+"Name"));
|
|
|
if(level==4){
|
|
|
rs.put("name", relyRs.getHospitalName());
|
|
@ -1876,9 +1878,9 @@ public class StatisticsESService {
|
|
|
|
|
|
//合并结果集
|
|
|
Map<String, Object> rs = new HashMap<>();
|
|
|
Integer totalNm = total.getResult2();
|
|
|
Integer relyNm = rely.getResult2();
|
|
|
Integer noRelyNm = onRely.getResult2();
|
|
|
Integer totalNm = total.getResult2().intValue();
|
|
|
Integer relyNm = rely.getResult2().intValue();
|
|
|
Integer noRelyNm = onRely.getResult2().intValue();
|
|
|
// rs.put("name", rely.get(area + "Name"));
|
|
|
if (SaveModel.cityLevel.equals(level+"")) {
|
|
|
rs.put("code", rely.getCity());
|
|
@ -1971,8 +1973,8 @@ public class StatisticsESService {
|
|
|
//转签量
|
|
|
switchSaveModel=elasticsearchUtil.findOneDateQuotaLevel0(timeKey,area,level,renewIndex,"2");
|
|
|
}
|
|
|
int renewNum = renewSaveModel.getResult2();
|
|
|
int switchNum = switchSaveModel.getResult2();
|
|
|
int renewNum = renewSaveModel.getResult2().intValue();
|
|
|
int switchNum = switchSaveModel.getResult2().intValue();
|
|
|
|
|
|
//根据年度获取去年的签约数 签约指标是1
|
|
|
if(StringUtils.isNoneBlank(lowCode)){
|
|
@ -1992,7 +1994,7 @@ public class StatisticsESService {
|
|
|
signSaveModel=elasticsearchUtil.findOneDateQuotaLevel0(date,area,level,signIndex,"2");
|
|
|
}
|
|
|
//签约量
|
|
|
int signNum = signSaveModel.getResult2();
|
|
|
int signNum = signSaveModel.getResult2().intValue();
|
|
|
jo.put("yesterYearSign", signNum);//去年的签约量
|
|
|
jo.put("thisYearRenew", renewNum);//今年的续签量
|
|
|
jo.put("thisYearSwithch", switchNum);//今年的转签量
|
|
@ -2057,7 +2059,7 @@ public class StatisticsESService {
|
|
|
private int getLevel1NumForRedis(String index, String level, String code, String timeKey) throws Exception{
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey,code,Integer.parseInt(level),index,"2");
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().intValue();
|
|
|
}
|
|
|
/**
|
|
|
* 通用的方法 获取二级维度的数据列表
|
|
@ -2215,11 +2217,11 @@ public class StatisticsESService {
|
|
|
if (renewSaveModels != null && renewSaveModels.size() > 0) {
|
|
|
for (SaveModel saveModel : renewSaveModels) {
|
|
|
if ("3".equals(low_level)) {
|
|
|
renewMap.put(saveModel.getTown(), saveModel.getResult2());
|
|
|
renewMap.put(saveModel.getTown(), saveModel.getResult2().intValue());
|
|
|
} else if ("4".equals(low_level)) {
|
|
|
renewMap.put(saveModel.getHospital(), saveModel.getResult2());
|
|
|
renewMap.put(saveModel.getHospital(), saveModel.getResult2().intValue());
|
|
|
} else if ("5".equals(low_level)) {
|
|
|
renewMap.put(saveModel.getTeam(), saveModel.getResult2());
|
|
|
renewMap.put(saveModel.getTeam(), saveModel.getResult2().intValue());
|
|
|
} else {
|
|
|
continue;
|
|
|
}
|
|
@ -2268,7 +2270,7 @@ public class StatisticsESService {
|
|
|
int signNum = 0;
|
|
|
int renewNum = renewMap.get(reMap.get("code").toString());
|
|
|
if (one != null) {
|
|
|
signNum = Integer.valueOf(one.getResult2());
|
|
|
signNum = one.getResult2().intValue();
|
|
|
}
|
|
|
reMap.put("rate", getRange(renewNum, signNum, 2));//续签率是 续签量/去年的签约数
|
|
|
reMap.put("signNum", signNum);
|
|
@ -2362,24 +2364,290 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getStatTitleInfo(String doctor, String startDate, String endDate) throws Exception {
|
|
|
|
|
|
JSONArray rs = new JSONArray();
|
|
|
AdminTeam admin = adminTeamDao.findByLeaderCode(doctor);
|
|
|
if (admin == null) {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
//1.计算签约总数
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"1","2");
|
|
|
//计算签约总数
|
|
|
Long sc = saveModel.getResult2().longValue();
|
|
|
//查找续签表未转移的记录
|
|
|
JSONObject signTotal = new JSONObject();
|
|
|
signTotal.put("signTotal", sc);
|
|
|
rs.put(signTotal);
|
|
|
|
|
|
|
|
|
//3.平均满意度
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"1","2");
|
|
|
String sql = "SELECT count(1) as num FROM wlyy_consult_team d WHERE d.czrq>= ? and d.czrq<=? and d.admin_team_code =? ";
|
|
|
Map<String, Object> map = jdbcTemplate.queryForMap(sql, startDate, endDate,admin.getId());
|
|
|
Double avgCout = saveModel2.getResult1()/(Integer)map.get("num");
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"28","2");
|
|
|
// String sql = "SELECT count(1) as num FROM wlyy_consult_team d WHERE d.czrq>= ? and d.czrq<=? and d.admin_team_code =? ";
|
|
|
// Map<String, Object> map = jdbcTemplate.queryForMap(sql, startDate, endDate,admin.getId());
|
|
|
SaveModel saveModel21 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"3","2");
|
|
|
Double avgCout = saveModel2.getResult1()/saveModel21.getResult2();
|
|
|
Map<String,Object> avgScore = new HashMap<>();
|
|
|
avgScore.put("avgScore",avgCout);
|
|
|
rs.put(avgScore);
|
|
|
|
|
|
//4.获取咨詢數
|
|
|
SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"3","2");
|
|
|
Map<String,Object> consultCout = new HashMap<>();
|
|
|
consultCout.put("consultCount",saveModel3.getResult2().longValue());
|
|
|
rs.put(consultCout);
|
|
|
|
|
|
//5.获取待预约
|
|
|
SaveModel saveModel4 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"27","2");
|
|
|
Map<String,Object> reservationCout = new HashMap<>();
|
|
|
reservationCout.put("reservationCount",saveModel4.getResult2().longValue());
|
|
|
rs.put(reservationCout);
|
|
|
|
|
|
//6.获取健康教育
|
|
|
SaveModel saveModel5 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"59","2");
|
|
|
Map<String,Object> articleCout = new HashMap<>();
|
|
|
articleCout.put("articleCount",saveModel5.getResult2().longValue());
|
|
|
rs.put(articleCout);
|
|
|
|
|
|
//7.获取健康指导
|
|
|
SaveModel saveModel6 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"5","2");
|
|
|
Map<String,Object> guidanceCout = new HashMap<>();
|
|
|
guidanceCout.put("guidanceCount",saveModel6.getResult2().longValue());
|
|
|
rs.put(guidanceCout);
|
|
|
|
|
|
//8.随访数目
|
|
|
SaveModel saveModel7 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"4","2");
|
|
|
Map<String,Object> followupCout = new HashMap<>();
|
|
|
followupCout.put("followupCount",saveModel7.getResult2().longValue());
|
|
|
rs.put(followupCout);
|
|
|
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询签约
|
|
|
*
|
|
|
* @param type 0 按周,1 按月
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getSignCountLineByType(String doctor, String type, String startDate, String endDate) throws Exception {
|
|
|
|
|
|
AdminTeam admin = adminTeamDao.findByLeaderCode(doctor);
|
|
|
if (admin == null) {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
Long id = admin.getId();
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"1","2",String.valueOf(Integer.parseInt(type)+1));
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
for (SaveModel saveModel:list) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("applyDate",dateFormat3.format(saveModel.getQuotaDate()));
|
|
|
map.put("signCount",saveModel.getResult2().longValue());
|
|
|
rs.add(map);
|
|
|
}
|
|
|
JSONArray rsJs = new JSONArray(rs);
|
|
|
return rsJs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询续签约
|
|
|
*
|
|
|
* @param type 0 按周,1 按月
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getRenewCountLineByType(String doctor, String type, String startDate, String endDate) throws Exception {
|
|
|
|
|
|
AdminTeam admin = adminTeamDao.findByLeaderCode(doctor);
|
|
|
if (admin == null) {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
Long id = admin.getId();
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"42","2",String.valueOf(Integer.parseInt(type)+1));
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
for (SaveModel saveModel:list) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("applyDate",dateFormat3.format(saveModel.getQuotaDate()));
|
|
|
map.put("signCount",saveModel.getResult2().longValue());
|
|
|
rs.add(map);
|
|
|
}
|
|
|
JSONArray rsJs = new JSONArray(rs);
|
|
|
return rsJs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取咨询数和未回复数
|
|
|
* @param doctor
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param isNow
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getReyStatbyTeamNow(String doctor, String startDate, String endDate, String isNow) throws Exception{
|
|
|
|
|
|
AdminTeam admin = adminTeamDao.findByLeaderCode(doctor);
|
|
|
if (admin == null) {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
Long id = admin.getId();
|
|
|
//家庭医生、健康咨询到达量
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"3","2");
|
|
|
Long totalCount = saveModel.getResult2().longValue();
|
|
|
|
|
|
//健康咨询量 未回复到达量
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"22","2");
|
|
|
Long noReyCount = saveModel.getResult2().longValue();
|
|
|
JSONObject rs = new JSONObject();
|
|
|
rs.put("onReyCount", noReyCount);
|
|
|
rs.put("totalCount", totalCount);
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
/***
|
|
|
* 获取平均折线图
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param type 0 周,1月
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getAvgLine(String doctor, String startDate, String endDate, String type) throws Exception{
|
|
|
|
|
|
AdminTeam admin = adminTeamDao.findByLeaderCode(doctor);
|
|
|
if (admin == null) {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
Long id = admin.getId();
|
|
|
//统计评分
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,id+"",Integer.parseInt(SaveModel.teamLevel),"28","2",interval+"");
|
|
|
SaveModel saveModel = null;
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> rs = null;
|
|
|
Double avgCount = 0.0;
|
|
|
for(SaveModel one:list){
|
|
|
String quotaDate = dateFormat.format(one.getQuotaDate());
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,id+"",Integer.parseInt(SaveModel.teamLevel),"59","2");
|
|
|
avgCount = one.getResult1()/saveModel.getResult2();
|
|
|
if(avgCount==0.0){
|
|
|
avgCount = 80.0;
|
|
|
}
|
|
|
map = new HashMap<>();
|
|
|
if("0".equals(type)){
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
map.put("avgCount",avgCount);
|
|
|
rs.add(map);
|
|
|
}
|
|
|
return new JSONArray(rs);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取团队月或周咨询未回复和总数折线图
|
|
|
*
|
|
|
* @param teamCode
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param type 0周,1月
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getTeamConsultCount(String teamCode, String startDate, String endDate, String type) throws Exception{
|
|
|
|
|
|
//咨询未回复
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"22","2",interval+"");
|
|
|
//咨询总数
|
|
|
List<SaveModel> list2 = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"3","2",interval+"");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> noReyList = new ArrayList<>();
|
|
|
for (SaveModel one:list) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}else{
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
map.put("noRely",one.getResult2().longValue());
|
|
|
noReyList.add(map);
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
for (SaveModel one:list) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}else{
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
map.put("noRely",one.getResult2().longValue());
|
|
|
totalList.add(map);
|
|
|
}
|
|
|
JSONObject result = new JSONObject();
|
|
|
result.put("noReyList", noReyList);
|
|
|
result.put("totalList", totalList);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取团队随访量折线统计图(弃用)
|
|
|
*
|
|
|
* @param type
|
|
|
* @param teamCode
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getTeamFollowupLine(String teamCode, String startDate, String endDate, String type) throws Exception{
|
|
|
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"4","2",interval+"");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
for(SaveModel one:list){
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("followupCount",one.getResult2().longValue());
|
|
|
totalList.add(map);
|
|
|
}
|
|
|
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取待预约量团队统计折线图
|
|
|
* @param teamCode
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param type
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getTeamResLine(String teamCode, String startDate, String endDate, String type) throws Exception{
|
|
|
|
|
|
startDate = elasticsearchUtil.changeTime(startDate + " 00:00:00");
|
|
|
endDate = elasticsearchUtil.changeTime(endDate + " 23:59:59");
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"27","2",interval+"");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
for(SaveModel one:list){
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("reservationCount",one.getResult2().longValue());
|
|
|
totalList.add(map);
|
|
|
}
|
|
|
return new JSONArray(totalList);
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getPrescriptionCount(int level,String area,String disease) throws Exception{
|
|
|
String index ="58";
|
|
|
Map<String,Object> rs = new HashedMap();
|