|
@ -189,7 +189,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();
|
|
|
}
|
|
|
|
|
|
// /**
|
|
@ -270,7 +270,7 @@ public class StatisticsESService {
|
|
|
}else{
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,area,level,index,"1");
|
|
|
}
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -321,9 +321,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>>() {
|
|
@ -359,7 +359,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();
|
|
@ -441,7 +441,7 @@ public class StatisticsESService {
|
|
|
endDate = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,index,timeLevel);
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -455,7 +455,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();
|
|
|
}
|
|
|
|
|
|
|
|
@ -477,12 +477,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);//今年的续签量
|
|
@ -501,7 +501,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");
|
|
@ -532,7 +532,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();
|
|
@ -563,7 +563,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;
|
|
@ -675,7 +675,7 @@ public class StatisticsESService {
|
|
|
endDate = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate,area,level,"8","2","6");
|
|
|
return saveModel.getResult2();
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -727,7 +727,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));
|
|
@ -1026,7 +1026,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());
|
|
@ -1250,7 +1250,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 {
|
|
@ -1259,7 +1259,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);
|
|
|
});
|
|
|
}
|
|
@ -1269,7 +1269,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) {
|
|
@ -1279,7 +1279,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);
|
|
@ -1311,7 +1311,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());
|
|
@ -1405,7 +1405,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());
|
|
@ -1680,9 +1680,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());
|
|
@ -1875,9 +1875,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());
|
|
@ -1970,8 +1970,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)){
|
|
@ -1991,7 +1991,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);//今年的转签量
|
|
@ -2056,7 +2056,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();
|
|
|
}
|
|
|
/**
|
|
|
* 通用的方法 获取二级维度的数据列表
|
|
@ -2214,11 +2214,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;
|
|
|
}
|
|
@ -2267,7 +2267,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);
|
|
@ -2299,4 +2299,83 @@ public class StatisticsESService {
|
|
|
return new JSONArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 统计微信绑定率
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getBindingRate() throws Exception{
|
|
|
JSONObject result = new JSONObject();
|
|
|
// Long bindCout = jdbcTemplate.queryForObject(getBindingCountSQL(), Long.class);
|
|
|
// Long signCout = jdbcTemplate.queryForObject(getSignCountSQL(), Long.class);
|
|
|
String quotaTime = elasticsearchUtil.getQuotaTime();
|
|
|
// quotaTime = "2017-10-19";
|
|
|
SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(quotaTime,"350200",Integer.parseInt(SaveModel.cityLevel),"50","2");
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(quotaTime,"350200",Integer.parseInt(SaveModel.cityLevel),"1","2");
|
|
|
Integer bindCout = saveModel1.getResult2().intValue();
|
|
|
Integer signCout = saveModel2.getResult2().intValue();
|
|
|
|
|
|
if ((bindCout != null || bindCout != 0) && (signCout != null && signCout != 0)) {
|
|
|
double rate = (double) bindCout / signCout * 100;
|
|
|
DecimalFormat df = new DecimalFormat("###.00");
|
|
|
result.put("bindRate", df.format(rate) + "%");
|
|
|
} else {
|
|
|
result.put("bindRate", "0.00%");
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public JSONArray getAVGSocreByMonth(String level, String area, String startDate, String endDate) throws Exception {
|
|
|
|
|
|
//每个月的评分数
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,area,Integer.parseInt(level),"28","2","3");
|
|
|
//
|
|
|
String sql = "SELECT count(1) as num FROM wlyy_doctor d WHERE d.czrq<= ? ";
|
|
|
if (SaveModel.cityLevel.equals(level)) {
|
|
|
sql += " and d.city = ? ";
|
|
|
//区级
|
|
|
} else if (SaveModel.townLevel.equals(level)) {
|
|
|
sql += " and d.town = ? ";
|
|
|
//机构
|
|
|
} else if (SaveModel.OrgLevel.equals(level)) {
|
|
|
sql += " and d.hospital = ? ";
|
|
|
}
|
|
|
Map<String, Object> rs = null;
|
|
|
JSONArray jsRs = new JSONArray();
|
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
|
for(SaveModel saveModel : list){
|
|
|
JSONObject json = new JSONObject();
|
|
|
rs = jdbcTemplate.queryForMap(sql, saveModel.getQuotaDate(), area);
|
|
|
json.put("month", dateFormat.format(saveModel.getQuotaDate()));
|
|
|
double rr = (double) saveModel.getResult1() / (Double.parseDouble(rs.get("num")+""));
|
|
|
json.put("socre", df.format(rr));
|
|
|
jsRs.put(json);
|
|
|
}
|
|
|
return jsRs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 统计当前团队,签约人数,服务次数,平均满意度
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getStatTitleInfo(String doctor, String startDate, String endDate) throws Exception {
|
|
|
|
|
|
AdminTeam admin = adminTeamDao.findByLeaderCode(doctor);
|
|
|
if (admin == null) {
|
|
|
throw new RuntimeException("未找到团队信息");
|
|
|
}
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate,endDate,admin.getId()+"",Integer.parseInt(SaveModel.teamLevel),"1","2");
|
|
|
//计算签约总数
|
|
|
Long sc = saveModel.getResult2().longValue();
|
|
|
//查找续签表未转移的记录
|
|
|
|
|
|
//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");
|
|
|
return null;
|
|
|
}
|
|
|
}
|