|
@ -108,9 +108,9 @@ public class StatisticsESService {
|
|
|
public JSONArray getDateIncrementDetail(String startDate, String endDate, String interval, String area, int level, String index, String level2_type) throws Exception {
|
|
|
List<SaveModel> list = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, "1", interval, level2_type);
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, interval, level2_type);
|
|
|
} else {
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, "1", interval);
|
|
|
list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, interval);
|
|
|
}
|
|
|
List<JSONObject> result = new ArrayList<>();
|
|
|
for (SaveModel saveModel : list) {
|
|
@ -134,7 +134,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");
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL);
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
@ -217,16 +217,28 @@ public class StatisticsESService {
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
public long getTotalAmount3(String startDate, String endDate, String area, int level, String index, String level2_type) throws Exception {
|
|
|
public long getTotalAmount3ZL(String startDate, String endDate, String area, int level, String index, String level2_type) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index,SaveModel.timeLevel_DDL, level2_type);
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, level2_type);
|
|
|
} else {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL);
|
|
|
}
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
public long getTotalAmount3DDL(String startDate, String endDate, String area, int level, String index, String level2_type) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_DDL, level2_type);
|
|
|
} else {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL);
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, index, SaveModel.timeLevel_DDL);
|
|
|
}
|
|
|
return saveModel.getResult2().longValue();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询截止某个日期某个区域后机构各下级指标累计情况
|
|
|
*
|
|
@ -248,10 +260,10 @@ public class StatisticsESService {
|
|
|
// levelTemp = lowLevel;
|
|
|
// }
|
|
|
List<SaveModel> list = null;
|
|
|
if("2016".equals(year)&&("4".equals(index)||"5".equals(index)||"27".equals(index))){
|
|
|
if ("2016".equals(year) && ("4".equals(index) || "5".equals(index) || "27".equals(index))) {
|
|
|
//2016年度数据特殊处理 因为2016年度的数据即2017-06-30号的数据只有增量
|
|
|
list = elasticsearchUtil.findListDateQuotaLevel0(null, endDate, area, level, index, SaveModel.timeLevel_ZL, lowLevel);
|
|
|
}else{
|
|
|
} else {
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
|
|
|
list = elasticsearchUtil.findListDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, lowLevel, level2_type);
|
|
@ -465,11 +477,11 @@ public class StatisticsESService {
|
|
|
//已缴费
|
|
|
SaveModel paidSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "1", SaveModel.timeLevel_DDL);
|
|
|
//未交费
|
|
|
SaveModel noPaySaveModel =null;
|
|
|
SaveModel noPaySaveModel = null;
|
|
|
//因为14的指标 16年度是分为 已缴费 未交费 已退费 17年度过后就只有未交费 所以16年度用1级指标 17年度用0级指标
|
|
|
if("2017-06-30".equals(endDate)){
|
|
|
noPaySaveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "14", "2","0");
|
|
|
}else{
|
|
|
if ("2017-06-30".equals(endDate)) {
|
|
|
noPaySaveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "14", "2", "0");
|
|
|
} else {
|
|
|
noPaySaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "14", "2");
|
|
|
}
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
@ -591,7 +603,7 @@ public class StatisticsESService {
|
|
|
* @param level 级别
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getSignRate(String endDate, String area, int level, String year,String index) throws Exception {
|
|
|
public JSONObject getSignRate(String endDate, String area, int level, String year, String index) throws Exception {
|
|
|
|
|
|
SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, area, level, index, SaveModel.timeLevel_DDL);
|
|
|
long signAmount = saveModel.getResult2().longValue();
|
|
@ -693,7 +705,6 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 查询截止某个日期线上签约率
|
|
|
* @author zhangdan 2017-11-27
|
|
|
*
|
|
|
* @param endDate
|
|
|
* @param area
|
|
@ -702,8 +713,9 @@ public class StatisticsESService {
|
|
|
* @param signAmount
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
* @author zhangdan 2017-11-27
|
|
|
*/
|
|
|
public JSONObject getSignOnlineRate(String endDate, String area, int level, String year,long signAmount) throws Exception {
|
|
|
public JSONObject getSignOnlineRate(String endDate, String area, int level, String year, long signAmount) throws Exception {
|
|
|
if (endDate.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
endDate = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
@ -711,7 +723,7 @@ public class StatisticsESService {
|
|
|
long signOnLineAmount = saveModel.getResult2().longValue();
|
|
|
DecimalFormat df = new DecimalFormat("0.0000");
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("rate", (signOnLineAmount>0 ? df.format((signOnLineAmount * 1.0000) / signAmount * 100):0));
|
|
|
json.put("rate", (signOnLineAmount > 0 ? df.format((signOnLineAmount * 1.0000) / signAmount * 100) : 0));
|
|
|
json.put("rateString", signOnLineAmount + "/" + signAmount);
|
|
|
json.put("signOnline", signOnLineAmount);
|
|
|
json.put("sign", signAmount);
|
|
@ -918,7 +930,8 @@ public class StatisticsESService {
|
|
|
// 计算结果
|
|
|
for (SaveModel saveModel : saveModels) {
|
|
|
JSONObject json = new JSONObject();
|
|
|
String range = df.format(saveModel.getQuotaDate());
|
|
|
String range = null;
|
|
|
range = df.format(saveModel.getQuotaDate());
|
|
|
long amount = saveModel.getResult2().longValue();
|
|
|
json.put("range", range);
|
|
|
json.put("amount", amount);
|
|
@ -1295,7 +1308,7 @@ public class StatisticsESService {
|
|
|
if (date.compareTo(dateFormat.format(new Date())) >= 0) {
|
|
|
date = elasticsearchUtil.getQuotaTime();
|
|
|
}
|
|
|
List<SaveModel> esModelList = elasticsearchUtil.findListDateQuotaLevel1(date, area, level, index, SaveModel.timeLevel_DDL,lowLevel, lowCode);
|
|
|
List<SaveModel> esModelList = elasticsearchUtil.findListDateQuotaLevel1(date, area, level, index, SaveModel.timeLevel_DDL, lowLevel, lowCode);
|
|
|
//esModelList=elasticsearchUtil.findDateQuotaLevel1(date,date,area,level,index,SaveModel.timeLevel_DDL,1,lowCode,"",low_level);
|
|
|
if (esModelList != null && esModelList.size() > 0) {
|
|
|
for (SaveModel one : esModelList) {
|
|
@ -1321,9 +1334,9 @@ public class StatisticsESService {
|
|
|
|
|
|
if (resultList != null) {
|
|
|
String signTaskNum = "";
|
|
|
if ("3".equals(lowCode)){
|
|
|
if ("3".equals(lowCode)) {
|
|
|
signTaskNum = systemDictService.getDictValueNoRedis("SIGN_TASKNUM_17_65", year);//2017年65岁以上的目标量
|
|
|
}else{
|
|
|
} else {
|
|
|
signTaskNum = systemDictService.getDictValueNoRedis("SIGN_TASKNUM_17", year);//目标量
|
|
|
}
|
|
|
String signRegulationNum = systemDictService.getDictValueNoRedis("SIGN_TEAM_REGULATION_NUM", year);//调控量
|
|
@ -1429,11 +1442,12 @@ public class StatisticsESService {
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
public List translateTeamLeaderNameListMap(List<Map<String,Object>> rs) {
|
|
|
|
|
|
public List translateTeamLeaderNameListMap(List<Map<String, Object>> rs) {
|
|
|
Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
|
|
|
if (rs != null) {
|
|
|
for (int i = 0; i < rs.size(); i++) {
|
|
|
Map<String,Object> r = rs.get(i);
|
|
|
Map<String, Object> r = rs.get(i);
|
|
|
Integer id = Integer.valueOf(r.get("code").toString());
|
|
|
String name = getTeamLeaderNameByTeamCode(leaders, id);
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
|
|
@ -1443,6 +1457,7 @@ public class StatisticsESService {
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public JSONArray translateTeamLeaderNameByCode(JSONArray rs) {
|
|
|
Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
|
|
|
if (rs != null) {
|
|
@ -2373,75 +2388,76 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 团队报告团队详情中健康教育折线图
|
|
|
*
|
|
|
* @param teamCode
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param type
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getTeamEduLine(String teamCode, String startDate, String endDate, String type)throws Exception {
|
|
|
public JSONArray getTeamEduLine(String teamCode, String startDate, String endDate, String type) throws Exception {
|
|
|
startDate = startDate + " 00:00:00";
|
|
|
endDate = endDate + " 00:00:00";
|
|
|
|
|
|
Integer interval = Integer.parseInt(type) + 1;
|
|
|
List<SaveModel> articleCountList = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.valueOf(SaveModel.teamLevel),"59",SaveModel.timeLevel_ZL,String.valueOf(interval));
|
|
|
List<SaveModel> batchNoCountList = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.valueOf(SaveModel.teamLevel),"71",SaveModel.timeLevel_ZL,String.valueOf(interval));
|
|
|
List<SaveModel> articleCountList = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.valueOf(SaveModel.teamLevel), "59", SaveModel.timeLevel_ZL, String.valueOf(interval));
|
|
|
List<SaveModel> batchNoCountList = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.valueOf(SaveModel.teamLevel), "71", SaveModel.timeLevel_ZL, String.valueOf(interval));
|
|
|
//List<Map<String, Object>> list = new ArrayList<>();
|
|
|
Map<String,Object> articleMap = new HashedMap();
|
|
|
Map<String,Object> batchMap = new HashedMap();
|
|
|
Map<String, Object> articleMap = new HashedMap();
|
|
|
Map<String, Object> batchMap = new HashedMap();
|
|
|
|
|
|
//把list转换成 map
|
|
|
if (articleCountList!=null && articleCountList.size()>0){
|
|
|
articleCountList.stream().forEach(one1->{
|
|
|
articleMap.put(dateFormat.format(one1.getQuotaDate()),one1);
|
|
|
if (articleCountList != null && articleCountList.size() > 0) {
|
|
|
articleCountList.stream().forEach(one1 -> {
|
|
|
articleMap.put(dateFormat.format(one1.getQuotaDate()), one1);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
if (batchNoCountList!=null && batchNoCountList.size()>0){
|
|
|
batchNoCountList.stream().forEach(one2->{
|
|
|
batchMap.put(dateFormat.format(one2.getQuotaDate()),one2);
|
|
|
if (batchNoCountList != null && batchNoCountList.size() > 0) {
|
|
|
batchNoCountList.stream().forEach(one2 -> {
|
|
|
batchMap.put(dateFormat.format(one2.getQuotaDate()), one2);
|
|
|
});
|
|
|
}
|
|
|
//获取结果集
|
|
|
List<Map<String, Object>> resultList = null;
|
|
|
if ("0".equals(type)){
|
|
|
resultList = DateUtil.findDates(dateFormat.parse(startDate),dateFormat.parse(endDate));
|
|
|
}else{
|
|
|
resultList = DateUtil.findDateASWeeks(dateFormat.parse(startDate),dateFormat.parse(endDate));
|
|
|
if ("0".equals(type)) {
|
|
|
resultList = DateUtil.findDates(dateFormat.parse(startDate), dateFormat.parse(endDate));
|
|
|
} else {
|
|
|
resultList = DateUtil.findDateASWeeks(dateFormat.parse(startDate), dateFormat.parse(endDate));
|
|
|
}
|
|
|
String MondayWeekDateStr = DateUtil.getMondayOfThisDate(dateFormat.parse(startDate));
|
|
|
Date MondayWeekDate = DateUtil.strToDate(MondayWeekDateStr,"yyyy-MM-dd");
|
|
|
if (dateFormat.parse(startDate).after(MondayWeekDate)){
|
|
|
Date MondayWeekDate = DateUtil.strToDate(MondayWeekDateStr, "yyyy-MM-dd");
|
|
|
if (dateFormat.parse(startDate).after(MondayWeekDate)) {
|
|
|
//开始时间不是当周的周一,则加入本周周一的时间
|
|
|
Map<String,Object> dateMap = new HashedMap();
|
|
|
dateMap.put("date",MondayWeekDateStr);
|
|
|
Map<String, Object> dateMap = new HashedMap();
|
|
|
dateMap.put("date", MondayWeekDateStr);
|
|
|
dateMap.put("count", 0.0D);
|
|
|
resultList.add(0,dateMap);
|
|
|
resultList.add(0, dateMap);
|
|
|
}
|
|
|
if (resultList!=null && resultList.size()>0){
|
|
|
if (resultList != null && resultList.size() > 0) {
|
|
|
for (Map<String, Object> reMap : resultList) {
|
|
|
//设置时间
|
|
|
if ("0".equals(type)) {
|
|
|
reMap.put("dateNo",reMap.get("date"));
|
|
|
reMap.put("dateNo", reMap.get("date"));
|
|
|
} else {
|
|
|
if (dateFormat.parse(String.valueOf(reMap.get("date"))).before(dateFormat.parse(startDate))){
|
|
|
if (dateFormat.parse(String.valueOf(reMap.get("date"))).before(dateFormat.parse(startDate))) {
|
|
|
reMap.put("weekOfMonth", 1);
|
|
|
}else{
|
|
|
} else {
|
|
|
reMap.put("weekOfMonth", DateUtil.getWeekOfMonth(String.valueOf(reMap.get("date"))));
|
|
|
}
|
|
|
}
|
|
|
//放置新增发送人数和批次
|
|
|
SaveModel one1 = (SaveModel) articleMap.get(reMap.get("date"));
|
|
|
SaveModel one2 = (SaveModel) batchMap.get(reMap.get("date"));
|
|
|
if (one1!=null){
|
|
|
reMap.put("articleCount",one1.getResult2().intValue());
|
|
|
}else{
|
|
|
reMap.put("articleCount",0);
|
|
|
if (one1 != null) {
|
|
|
reMap.put("articleCount", one1.getResult2().intValue());
|
|
|
} else {
|
|
|
reMap.put("articleCount", 0);
|
|
|
}
|
|
|
if (one2!=null){
|
|
|
reMap.put("batchCount",one2.getResult2().intValue());
|
|
|
}else{
|
|
|
reMap.put("batchCount",0);
|
|
|
if (one2 != null) {
|
|
|
reMap.put("batchCount", one2.getResult2().intValue());
|
|
|
} else {
|
|
|
reMap.put("batchCount", 0);
|
|
|
}
|
|
|
//去除多余的key
|
|
|
reMap.remove("count");
|
|
@ -2600,7 +2616,7 @@ public class StatisticsESService {
|
|
|
* @return
|
|
|
*/
|
|
|
private JSONArray getLevel2JsonObjectForRedis(String index, String level, String code, String timeKey) throws Exception {
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateAllQuotaLevel1(timeKey, timeKey,code, Integer.parseInt(level), index, SaveModel.timeLevel_DDL,"","");
|
|
|
List<SaveModel> list = elasticsearchUtil.findDateAllQuotaLevel1(timeKey, timeKey, code, Integer.parseInt(level), index, SaveModel.timeLevel_DDL, "", "");
|
|
|
// JSONObject jo = new JSONObject();
|
|
|
JSONArray switchJo = new JSONArray();
|
|
|
list.stream().forEach(one -> {
|
|
@ -2745,7 +2761,7 @@ public class StatisticsESService {
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, SaveModel.timeLevel_DDL, "", low_level);
|
|
|
} else {
|
|
|
//续签量
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey,timeKey, area, level, index, SaveModel.timeLevel_DDL, lowCode, "", low_level);
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index, SaveModel.timeLevel_DDL, lowCode, "", low_level);
|
|
|
|
|
|
}
|
|
|
|
|
@ -2910,7 +2926,7 @@ public class StatisticsESService {
|
|
|
|
|
|
|
|
|
//4.获取咨詢數(先使用旧版)
|
|
|
Map<String, Object> consultCout = statisticsService.getConsultByteam(admin.getId(),startDate,endDate);
|
|
|
Map<String, Object> consultCout = statisticsService.getConsultByteam(admin.getId(), startDate, endDate);
|
|
|
//SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL);
|
|
|
//Map<String, Object> consultCout = new HashMap<>();
|
|
|
//consultCout.put("consultCount", saveModel3.getResult2().longValue());
|
|
@ -2943,11 +2959,11 @@ public class StatisticsESService {
|
|
|
//3.平均满意度
|
|
|
SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "28", SaveModel.timeLevel_ZL);
|
|
|
Double avgCout = 0.0;
|
|
|
String avgCoutStr="";
|
|
|
String avgCoutStr = "";
|
|
|
DecimalFormat df = new DecimalFormat("#.0");
|
|
|
if (saveModel2.getResult1().intValue()!=0 && saveModel2.getResult2().intValue()!=0){
|
|
|
avgCout = saveModel2.getResult1()/saveModel2.getResult2();
|
|
|
avgCoutStr=df.format(avgCout);
|
|
|
if (saveModel2.getResult1().intValue() != 0 && saveModel2.getResult2().intValue() != 0) {
|
|
|
avgCout = saveModel2.getResult1() / saveModel2.getResult2();
|
|
|
avgCoutStr = df.format(avgCout);
|
|
|
}
|
|
|
Map<String, Object> avgScore = new HashMap<>();
|
|
|
avgScore.put("avgScore", avgCoutStr);
|
|
@ -3007,7 +3023,7 @@ public class StatisticsESService {
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "42", SaveModel.timeLevel_ZL, String.valueOf(Integer.parseInt(type) + 2));
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
for (SaveModel saveModel : list) {
|
|
|
if (saveModel.getResult2().intValue()!=0){
|
|
|
if (saveModel.getResult2().intValue() != 0) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
//map.put("applyDate", dateFormat.format(saveModel.getQuotaDate()));
|
|
|
if ("0".equals(type)) {
|
|
@ -3043,7 +3059,7 @@ public class StatisticsESService {
|
|
|
String quotaTime = elasticsearchUtil.getQuotaTime();
|
|
|
Long id = admin.getId();
|
|
|
//家庭医生、健康咨询增量(先使用旧版 17-11-21)
|
|
|
Long totalCount = statisticsService.getConsultTotalForEsGetRayStatByTeam(startDate,endDate,id);
|
|
|
Long totalCount = statisticsService.getConsultTotalForEsGetRayStatByTeam(startDate, endDate, id);
|
|
|
/*SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL);
|
|
|
Long totalCount = saveModel.getResult2().longValue();*/
|
|
|
|
|
@ -3082,10 +3098,10 @@ public class StatisticsESService {
|
|
|
String avgCountStr = "";
|
|
|
DecimalFormat df = new DecimalFormat("#.0");
|
|
|
for (SaveModel one : list) {
|
|
|
if (one.getResult1()==null || one.getResult2()==null){
|
|
|
avgCount=80.0;
|
|
|
}else if (one.getResult1().intValue()!=0 && one.getResult2().intValue()!=0){
|
|
|
avgCount=one.getResult1().doubleValue()/one.getResult2().doubleValue();
|
|
|
if (one.getResult1() == null || one.getResult2() == null) {
|
|
|
avgCount = 80.0;
|
|
|
} else if (one.getResult1().intValue() != 0 && one.getResult2().intValue() != 0) {
|
|
|
avgCount = one.getResult1().doubleValue() / one.getResult2().doubleValue();
|
|
|
avgCountStr = df.format(avgCount);
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
@ -3116,15 +3132,15 @@ public class StatisticsESService {
|
|
|
List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "22", SaveModel.timeLevel_ZL, interval + "");
|
|
|
//咨询总数(先使用旧版17-11-21)
|
|
|
//List<SaveModel> list2 = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL, interval + "");
|
|
|
List<Map<String,Object>> totalList = statisticsService.getCousultTotalForEsGetTeamConsultCount(teamCode,startDate,endDate,type);
|
|
|
List<Map<String, Object>> totalList = statisticsService.getCousultTotalForEsGetTeamConsultCount(teamCode, startDate, endDate, type);
|
|
|
Map<String, Object> map = null;
|
|
|
//遍历未回复集合
|
|
|
List<Map<String, Object>> noReyList = new ArrayList<>();
|
|
|
for (SaveModel one : list) {
|
|
|
if (one.getResult2().intValue()!=0){
|
|
|
if (one.getResult2().intValue() != 0) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
@ -3154,6 +3170,7 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 获取团队随访量折线统计图
|
|
|
*
|
|
|
* @param type
|
|
|
* @param teamCode
|
|
|
* @param startDate
|
|
@ -3170,14 +3187,14 @@ public class StatisticsESService {
|
|
|
|
|
|
List<Map<String, Object>> totalList = new ArrayList<>();
|
|
|
for (SaveModel one : list1) {
|
|
|
if(one.getResult2().intValue()!=0){
|
|
|
if (one.getResult2().intValue() != 0) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))){
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))) {
|
|
|
map.put("weekOfMonth", 1);
|
|
|
}else{
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
}
|
|
@ -3188,14 +3205,14 @@ public class StatisticsESService {
|
|
|
|
|
|
List<Map<String, Object>> planList = new ArrayList<>();
|
|
|
for (SaveModel one : list2) {
|
|
|
if (one.getResult2().intValue()!=0){
|
|
|
if (one.getResult2().intValue() != 0) {
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))){
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))) {
|
|
|
map.put("weekOfMonth", 1);
|
|
|
}else{
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
}
|
|
@ -3235,9 +3252,9 @@ public class StatisticsESService {
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))){
|
|
|
map.put("weekOfMonth","1");
|
|
|
}else{
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))) {
|
|
|
map.put("weekOfMonth", "1");
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
}
|
|
@ -3264,7 +3281,7 @@ public class StatisticsESService {
|
|
|
String index = "64";
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
//总数
|
|
|
SaveModel total = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(startDate,endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, SaveModel.timeLevel_ZL);
|
|
|
SaveModel total = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(startDate, endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, SaveModel.timeLevel_ZL);
|
|
|
//进行中
|
|
|
SaveModel processing = elasticsearchUtil.findOneDateQuotaLevel1(startDate, endDate, String.valueOf(adminTeamId), Integer.valueOf(SaveModel.teamLevel), index, SaveModel.timeLevel_ZL, "1");
|
|
|
//已完成
|
|
@ -3419,9 +3436,9 @@ public class StatisticsESService {
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))){
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))) {
|
|
|
map.put("weekOfMonth", 1);
|
|
|
}else{
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
}
|
|
@ -3455,9 +3472,9 @@ public class StatisticsESService {
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))){
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))) {
|
|
|
map.put("weekOfMonth", 1);
|
|
|
}else{
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
}
|
|
@ -3473,9 +3490,9 @@ public class StatisticsESService {
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo", dateFormat.format(one.getQuotaDate()));
|
|
|
} else {
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))){
|
|
|
if (one.getQuotaDate().before(dateFormat.parse(startDate))) {
|
|
|
map.put("weekOfMonth", 1);
|
|
|
}else{
|
|
|
} else {
|
|
|
map.put("weekOfMonth", DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
}
|
|
@ -3558,7 +3575,7 @@ public class StatisticsESService {
|
|
|
}
|
|
|
}
|
|
|
//团队翻译
|
|
|
if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
translateTeamLeaderName(rs);
|
|
|
}
|
|
|
Collections.sort(rs, new Comparator<Map<String, Object>>() {
|
|
@ -3608,25 +3625,25 @@ public class StatisticsESService {
|
|
|
String index60 = "60"; //统计长处方总数年龄和疾病维度
|
|
|
String index65 = "65"; //统计长处方总数年龄维度
|
|
|
|
|
|
List<SaveModel> chufanglist =null;
|
|
|
List<SaveModel> numList =null;
|
|
|
Map<String,SaveModel> numListMap =new HashMap<>();
|
|
|
List<SaveModel> chufanglist = null;
|
|
|
List<SaveModel> numList = null;
|
|
|
Map<String, SaveModel> numListMap = new HashMap<>();
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
//统计处方年龄分布
|
|
|
if(org.springframework.util.StringUtils.isEmpty(disease)){
|
|
|
if (org.springframework.util.StringUtils.isEmpty(disease)) {
|
|
|
numList = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index68, SaveModel.timeLevel_DDL);
|
|
|
}else{
|
|
|
numList = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index63, SaveModel.timeLevel_DDL,null,disease);
|
|
|
} else {
|
|
|
numList = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index63, SaveModel.timeLevel_DDL, null, disease);
|
|
|
}
|
|
|
//统计处方患者年龄分布
|
|
|
if(org.springframework.util.StringUtils.isEmpty(disease)){
|
|
|
if (org.springframework.util.StringUtils.isEmpty(disease)) {
|
|
|
chufanglist = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index65, SaveModel.timeLevel_DDL);
|
|
|
}else{
|
|
|
chufanglist = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index60, SaveModel.timeLevel_DDL,null,disease);
|
|
|
} else {
|
|
|
chufanglist = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index60, SaveModel.timeLevel_DDL, null, disease);
|
|
|
}
|
|
|
for(int i=0;i<numList.size();i++){
|
|
|
SaveModel saveModel=numList.get(i);
|
|
|
numListMap.put(saveModel.getSlaveKey1(),saveModel);
|
|
|
for (int i = 0; i < numList.size(); i++) {
|
|
|
SaveModel saveModel = numList.get(i);
|
|
|
numListMap.put(saveModel.getSlaveKey1(), saveModel);
|
|
|
}
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
if (numList.size() == 0) {
|
|
@ -3637,41 +3654,41 @@ public class StatisticsESService {
|
|
|
map.put("65ageRate", 0.0);
|
|
|
} else {
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
|
if(numListMap.get(chufanglist.get(0).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(0).getResult2() /numListMap.get(chufanglist.get(0).getSlaveKey1()).getResult2() ;
|
|
|
if (numListMap.get(chufanglist.get(0).getSlaveKey1()).getResult2() != 0.0D) {
|
|
|
Double ageRate = chufanglist.get(0).getResult2() / numListMap.get(chufanglist.get(0).getSlaveKey1()).getResult2();
|
|
|
map.put("0ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("0ageRate",chufanglist.get(0).getResult2() );
|
|
|
} else {
|
|
|
map.put("0ageRate", chufanglist.get(0).getResult2());
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(1).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(1).getResult2() /numListMap.get(chufanglist.get(1).getSlaveKey1()).getResult2() ;
|
|
|
if (numListMap.get(chufanglist.get(1).getSlaveKey1()).getResult2() != 0.0D) {
|
|
|
Double ageRate = chufanglist.get(1).getResult2() / numListMap.get(chufanglist.get(1).getSlaveKey1()).getResult2();
|
|
|
map.put("7ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("7ageRate", chufanglist.get(1).getResult2() );
|
|
|
} else {
|
|
|
map.put("7ageRate", chufanglist.get(1).getResult2());
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(2).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(2).getResult2() /numListMap.get(chufanglist.get(2).getSlaveKey1()).getResult2() ;
|
|
|
if (numListMap.get(chufanglist.get(2).getSlaveKey1()).getResult2() != 0.0D) {
|
|
|
Double ageRate = chufanglist.get(2).getResult2() / numListMap.get(chufanglist.get(2).getSlaveKey1()).getResult2();
|
|
|
map.put("19ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("19ageRate", chufanglist.get(2).getResult2() );
|
|
|
} else {
|
|
|
map.put("19ageRate", chufanglist.get(2).getResult2());
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(3).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(3).getResult2() /numListMap.get(chufanglist.get(3).getSlaveKey1()).getResult2() ;
|
|
|
if (numListMap.get(chufanglist.get(3).getSlaveKey1()).getResult2() != 0.0D) {
|
|
|
Double ageRate = chufanglist.get(3).getResult2() / numListMap.get(chufanglist.get(3).getSlaveKey1()).getResult2();
|
|
|
map.put("31ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("31ageRate",chufanglist.get(3).getResult2() );
|
|
|
} else {
|
|
|
map.put("31ageRate", chufanglist.get(3).getResult2());
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(4).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(4).getResult2() /numListMap.get(chufanglist.get(4).getSlaveKey1()).getResult2() ;
|
|
|
if (numListMap.get(chufanglist.get(4).getSlaveKey1()).getResult2() != 0.0D) {
|
|
|
Double ageRate = chufanglist.get(4).getResult2() / numListMap.get(chufanglist.get(4).getSlaveKey1()).getResult2();
|
|
|
map.put("51ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("51ageRate",chufanglist.get(4).getResult2() );
|
|
|
} else {
|
|
|
map.put("51ageRate", chufanglist.get(4).getResult2());
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(5).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(5).getResult2() /numListMap.get(chufanglist.get(5).getSlaveKey1()).getResult2() ;
|
|
|
if (numListMap.get(chufanglist.get(5).getSlaveKey1()).getResult2() != 0.0D) {
|
|
|
Double ageRate = chufanglist.get(5).getResult2() / numListMap.get(chufanglist.get(5).getSlaveKey1()).getResult2();
|
|
|
map.put("65ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("65ageRate", chufanglist.get(5).getResult2() );
|
|
|
} else {
|
|
|
map.put("65ageRate", chufanglist.get(5).getResult2());
|
|
|
}
|
|
|
}
|
|
|
return map;
|
|
@ -3710,16 +3727,16 @@ public class StatisticsESService {
|
|
|
//类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
|
|
|
if ("1".equals(type)) {
|
|
|
//总数
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey2(startTime, endTime, area, level, index58,SaveModel.timeLevel_ZL, SaveModel.interval_month, disease);
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2NoSlaveKey2(startTime, endTime, area, level, index58, SaveModel.timeLevel_ZL, SaveModel.interval_month, disease);
|
|
|
} else {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index58,SaveModel.timeLevel_ZL, SaveModel.interval_month, disease, type);
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index58, SaveModel.timeLevel_ZL, SaveModel.interval_month, disease, type);
|
|
|
}
|
|
|
} else {
|
|
|
if ("1".equals(type)) {
|
|
|
//总数
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1NoSlaveKey1(startTime, endTime, area, level, index64,SaveModel.timeLevel_ZL, SaveModel.interval_month);
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1NoSlaveKey1(startTime, endTime, area, level, index64, SaveModel.timeLevel_ZL, SaveModel.interval_month);
|
|
|
} else {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index64,SaveModel.timeLevel_ZL, SaveModel.interval_month, type);
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index64, SaveModel.timeLevel_ZL, SaveModel.interval_month, type);
|
|
|
}
|
|
|
}
|
|
|
//把数据设置到初始化的Map里面去
|
|
@ -3980,7 +3997,7 @@ public class StatisticsESService {
|
|
|
* @param type 1.自取,2.快递配送,3.健管师配送
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String, Object>> getPrescriptionDispatchingHistogram(int level, String area, String disease, String type,int interval) throws Exception {
|
|
|
public List<Map<String, Object>> getPrescriptionDispatchingHistogram(int level, String area, String disease, String type, int interval) throws Exception {
|
|
|
//统计长处方配送方式和疾病维度
|
|
|
String index62 = "62";
|
|
|
//统计长处方配送方式维度
|
|
@ -3995,34 +4012,34 @@ public class StatisticsESService {
|
|
|
Date endDate = new Date();
|
|
|
dd.setTime(endDate);
|
|
|
//六个月前的开始时间
|
|
|
Date startDate = DateUtil.getNextMonthReturnDate(endDate,-6);
|
|
|
Date startDate = DateUtil.getNextMonthReturnDate(endDate, -6);
|
|
|
startDate = DateUtil.getDateShort(startDate);
|
|
|
if (interval==1){
|
|
|
rs = DateUtil.findDates(startDate,endDate);
|
|
|
if (interval == 1) {
|
|
|
rs = DateUtil.findDates(startDate, endDate);
|
|
|
//加入当天数据
|
|
|
Map<String,Object> dateMap = new HashedMap();
|
|
|
dateMap.put("date",dateFormat.format(endDate));
|
|
|
dateMap.put("avg",0);
|
|
|
Map<String, Object> dateMap = new HashedMap();
|
|
|
dateMap.put("date", dateFormat.format(endDate));
|
|
|
dateMap.put("avg", 0);
|
|
|
dateMap.put("count", 0.0D);
|
|
|
rs.add(dateMap);
|
|
|
startTime = dateFormat.format(startDate);
|
|
|
endTime = dateFormat.format(endDate);
|
|
|
}
|
|
|
if (interval==2){
|
|
|
rs = DateUtil.findDateASWeeks(startDate,endDate);
|
|
|
if (interval == 2) {
|
|
|
rs = DateUtil.findDateASWeeks(startDate, endDate);
|
|
|
String MondayWeekDateStr = DateUtil.getMondayOfThisDate(startDate);
|
|
|
Date MondayWeekDate = dateFormat.parse(MondayWeekDateStr);
|
|
|
if (startDate.after(MondayWeekDate)){
|
|
|
if (startDate.after(MondayWeekDate)) {
|
|
|
//开始时间不是当周的周一,则加入本周周一的时间
|
|
|
Map<String,Object> dateMap = new HashedMap();
|
|
|
dateMap.put("date",MondayWeekDateStr);
|
|
|
dateMap.put("avg",0);
|
|
|
Map<String, Object> dateMap = new HashedMap();
|
|
|
dateMap.put("date", MondayWeekDateStr);
|
|
|
dateMap.put("avg", 0);
|
|
|
dateMap.put("count", 0.0D);
|
|
|
rs.add(0,dateMap);
|
|
|
rs.add(0, dateMap);
|
|
|
}
|
|
|
startTime = dateFormat.format(startDate);
|
|
|
endTime = dateFormat.format(endDate);
|
|
|
}else if (interval==3){
|
|
|
} else if (interval == 3) {
|
|
|
for (int i = 1; i < 7; i++) {
|
|
|
Map<String, Object> mc = new HashedMap();
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
|
@ -4047,7 +4064,7 @@ public class StatisticsESService {
|
|
|
|
|
|
List<SaveModel> resultList = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index62, SaveModel.timeLevel_ZL, String.valueOf(interval), type,disease);
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index62, SaveModel.timeLevel_ZL, String.valueOf(interval), type, disease);
|
|
|
} else {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index67, SaveModel.timeLevel_ZL, String.valueOf(interval), type);
|
|
|
}
|
|
@ -4058,11 +4075,11 @@ public class StatisticsESService {
|
|
|
SaveModel saveModel = (SaveModel) iterator.next();
|
|
|
if (saveModel.getQuotaDate() != null) {
|
|
|
String key = "";
|
|
|
String EsKey ="";
|
|
|
key=String.valueOf(m.get("date"));
|
|
|
if (interval != 3){
|
|
|
EsKey = DateUtil.dateToStr(saveModel.getQuotaDate(),"yyyy-MM-dd");
|
|
|
}else {
|
|
|
String EsKey = "";
|
|
|
key = String.valueOf(m.get("date"));
|
|
|
if (interval != 3) {
|
|
|
EsKey = DateUtil.dateToStr(saveModel.getQuotaDate(), "yyyy-MM-dd");
|
|
|
} else {
|
|
|
EsKey = DateUtil.changeQuotaDate(saveModel.getQuotaDate());
|
|
|
}
|
|
|
if (key.equals(EsKey)) {
|
|
@ -4092,7 +4109,7 @@ public class StatisticsESService {
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
//类型 1.自取,2.快递配送,3.健管师配送
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index62, SaveModel.timeLevel_DDL, lowlevel, type,disease);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index62, SaveModel.timeLevel_DDL, lowlevel, type, disease);
|
|
|
} else {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index67, SaveModel.timeLevel_DDL, lowlevel, type);
|
|
|
}
|
|
@ -4224,30 +4241,31 @@ public class StatisticsESService {
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|
|
|
if (one != null&&one.getResult2()>0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
|
|
|
if (one != null && one.getResult2() > 0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2() * 100));
|
|
|
}
|
|
|
map.put("val", avg);
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getHospital());
|
|
|
map.put("name", one.getHospitalName());
|
|
|
if (one != null&&one.getResult2()>0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
|
|
|
if (one != null && one.getResult2() > 0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2() * 100));
|
|
|
}
|
|
|
map.put("val", avg);
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTeam());
|
|
|
map.put("name", one.getTeamName());
|
|
|
if (one != null&&one.getResult2()>0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
|
|
|
if (one != null && one.getResult2() > 0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2() * 100));
|
|
|
}
|
|
|
map.put("val", avg);
|
|
|
}
|
|
|
countList.add(map);
|
|
|
}
|
|
|
}
|
|
|
if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
translateTeamLeaderNameListMap(countList);;
|
|
|
if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
translateTeamLeaderNameListMap(countList);
|
|
|
;
|
|
|
}
|
|
|
|
|
|
Collections.sort(countList, new Comparator<Map<String, Object>>() {
|
|
@ -4305,10 +4323,10 @@ public class StatisticsESService {
|
|
|
key = DateUtil.getMonth(dateFormat.format(one.getQuotaDate()));
|
|
|
}
|
|
|
String avg = "0.0";
|
|
|
if (one.getResult2()!=0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2()*100));
|
|
|
if (one.getResult2() != 0) {
|
|
|
avg = decimalFormat.format(one.getResult1() / (one.getResult2() * 100));
|
|
|
}
|
|
|
map.put("avg",avg);
|
|
|
map.put("avg", avg);
|
|
|
map.put("date", key);
|
|
|
|
|
|
countList.add(map);
|
|
@ -4356,7 +4374,6 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 线上签约各个地区等级的到达量情况
|
|
|
* @author zhangdan 2017-11-28
|
|
|
*
|
|
|
* @param date
|
|
|
* @param area
|
|
@ -4367,8 +4384,9 @@ public class StatisticsESService {
|
|
|
* @param year
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
* @author zhangdan 2017-11-28
|
|
|
*/
|
|
|
public JSONArray getLowLevelTotalOnlineTeamLeader(String date, String area, int level, String index, int sort, String lowLevel, String year,String lowCode) throws Exception {
|
|
|
public JSONArray getLowLevelTotalOnlineTeamLeader(String date, String area, int level, String index, int sort, String lowLevel, String year, String lowCode) throws Exception {
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String low_level = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level + 1) : lowLevel);
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
@ -4378,10 +4396,10 @@ public class StatisticsESService {
|
|
|
}
|
|
|
List<SaveModel> esModelList = null;
|
|
|
List<SaveModel> totalModelList = null;
|
|
|
if (StringUtils.isNotEmpty(lowCode)){
|
|
|
esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel1(date, area, level, index, SaveModel.timeLevel_DDL, low_level,lowCode);
|
|
|
totalModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel1(date, area, level, "17", SaveModel.timeLevel_DDL, low_level,lowCode);
|
|
|
}else{
|
|
|
if (StringUtils.isNotEmpty(lowCode)) {
|
|
|
esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel1(date, area, level, index, SaveModel.timeLevel_DDL, low_level, lowCode);
|
|
|
totalModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel1(date, area, level, "17", SaveModel.timeLevel_DDL, low_level, lowCode);
|
|
|
} else {
|
|
|
esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(date, area, level, index, SaveModel.timeLevel_DDL, low_level);
|
|
|
totalModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(date, area, level, "1", SaveModel.timeLevel_DDL, low_level);
|
|
|
}
|
|
@ -4414,10 +4432,10 @@ public class StatisticsESService {
|
|
|
if (resultList == null || resultList.size() < 1) {
|
|
|
resultList = getLowLevelMapKey(level, low_level, area);
|
|
|
}
|
|
|
if (resultList != null && resultList.size()>0) {
|
|
|
if (resultList != null && resultList.size() > 0) {
|
|
|
//查询今年的线上续签转map
|
|
|
Map<String, SaveModel> resultMap = new HashMap<>();
|
|
|
totalModelList.stream().forEach(one->{
|
|
|
totalModelList.stream().forEach(one -> {
|
|
|
if ("5".equals(low_level)) {
|
|
|
resultMap.put(one.getTeam(), one);
|
|
|
} else if ("4".equals(low_level)) {
|
|
@ -4486,7 +4504,7 @@ public class StatisticsESService {
|
|
|
public JSONObject getRenewPercentOnline(String index, Integer level, String area, String year, String lowCode) {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
String renewOnlineIndex = "";//线上续签index
|
|
|
String signIndex ="1";
|
|
|
String signIndex = "1";
|
|
|
String renewIndex = index;//续签index.
|
|
|
String date = year + "-06-30";
|
|
|
try {
|
|
@ -4506,7 +4524,7 @@ public class StatisticsESService {
|
|
|
} else {
|
|
|
renewOnlineIndex = "76";
|
|
|
}
|
|
|
} else if (level ==3){
|
|
|
} else if (level == 3) {
|
|
|
//区的线上续签
|
|
|
if (StringUtils.isNoneBlank(lowCode)) {
|
|
|
//服务类型维度
|
|
@ -4514,7 +4532,7 @@ public class StatisticsESService {
|
|
|
} else {
|
|
|
renewOnlineIndex = "75";
|
|
|
}
|
|
|
}else{
|
|
|
} else {
|
|
|
//市的线上续签
|
|
|
if (StringUtils.isNoneBlank(lowCode)) {
|
|
|
//服务类型维度
|
|
@ -4531,11 +4549,11 @@ public class StatisticsESService {
|
|
|
//续签量
|
|
|
renewSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, renewIndex, SaveModel.timeLevel_DDL, lowCode);
|
|
|
//线上续签量
|
|
|
renewOnlineSaveMolde = elasticsearchUtil.findOneDateQuotaLevel1(timeKey,area,level,renewOnlineIndex,SaveModel.timeLevel_DDL,lowCode);
|
|
|
renewOnlineSaveMolde = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, renewOnlineIndex, SaveModel.timeLevel_DDL, lowCode);
|
|
|
} else {
|
|
|
//续签量
|
|
|
renewSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, renewIndex, SaveModel.timeLevel_DDL);
|
|
|
renewOnlineSaveMolde = elasticsearchUtil.findOneDateQuotaLevel0(timeKey,area,level,renewOnlineIndex,SaveModel.timeLevel_DDL);
|
|
|
renewOnlineSaveMolde = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, renewOnlineIndex, SaveModel.timeLevel_DDL);
|
|
|
}
|
|
|
int renewNum = renewSaveModel.getResult2().intValue();
|
|
|
int renewOnlineNum = renewOnlineSaveMolde.getResult2().intValue();
|
|
@ -4560,7 +4578,7 @@ public class StatisticsESService {
|
|
|
int signNum = signSaveModel.getResult2().intValue();
|
|
|
jo.put("yesterYearSign", signNum);//去年的签约量
|
|
|
jo.put("thisYearRenew", renewNum);//今年的续签量
|
|
|
jo.put("thisYearRenewOnline",renewOnlineNum);//今年的线上续签量
|
|
|
jo.put("thisYearRenewOnline", renewOnlineNum);//今年的线上续签量
|
|
|
jo.put("renewRange", getRange(renewNum, signNum, 2));//续签率 50.00%
|
|
|
jo.put("renewRangeOnline", getRange(renewOnlineNum, renewNum, 2));//线上续签率 50.00%
|
|
|
} catch (Exception e) {
|
|
@ -4574,6 +4592,7 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 线上续签各等级地区的列表
|
|
|
*
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
@ -4589,25 +4608,25 @@ public class StatisticsESService {
|
|
|
String timeKey = elasticsearchUtil.getQuotaTime();
|
|
|
String low_level = String.valueOf(StringUtils.isEmpty(lowLevel) ? (level + 1) : lowLevel);
|
|
|
String renewIndex = "";//续签指标
|
|
|
if (Integer.valueOf(low_level)==3){//区
|
|
|
if (StringUtils.isBlank(lowCode)){
|
|
|
renewIndex="44";
|
|
|
}else{
|
|
|
renewIndex="54";
|
|
|
if (Integer.valueOf(low_level) == 3) {//区
|
|
|
if (StringUtils.isBlank(lowCode)) {
|
|
|
renewIndex = "44";
|
|
|
} else {
|
|
|
renewIndex = "54";
|
|
|
}
|
|
|
}
|
|
|
if (Integer.valueOf(low_level)==4){//社区
|
|
|
if (StringUtils.isBlank(lowCode)){
|
|
|
renewIndex="43";
|
|
|
}else{
|
|
|
renewIndex="53";
|
|
|
if (Integer.valueOf(low_level) == 4) {//社区
|
|
|
if (StringUtils.isBlank(lowCode)) {
|
|
|
renewIndex = "43";
|
|
|
} else {
|
|
|
renewIndex = "53";
|
|
|
}
|
|
|
}
|
|
|
if (Integer.valueOf(low_level)==5){//团队
|
|
|
if (StringUtils.isBlank(lowCode)){
|
|
|
renewIndex="42";
|
|
|
}else{
|
|
|
renewIndex="52";
|
|
|
if (Integer.valueOf(low_level) == 5) {//团队
|
|
|
if (StringUtils.isBlank(lowCode)) {
|
|
|
renewIndex = "42";
|
|
|
} else {
|
|
|
renewIndex = "52";
|
|
|
}
|
|
|
}
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();//续签量
|
|
@ -4622,7 +4641,7 @@ public class StatisticsESService {
|
|
|
renewOnlineList = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, SaveModel.timeLevel_DDL, "", low_level);
|
|
|
} else {
|
|
|
//续签量
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey,timeKey, area, level, renewIndex, SaveModel.timeLevel_DDL, lowCode, "", low_level);
|
|
|
renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, renewIndex, SaveModel.timeLevel_DDL, lowCode, "", low_level);
|
|
|
//线上续签量
|
|
|
renewOnlineList = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index, SaveModel.timeLevel_DDL, lowCode, "", low_level);
|
|
|
}
|
|
@ -4704,6 +4723,7 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 居民分析--线上和线下缴费
|
|
|
*
|
|
|
* @param level
|
|
|
* @param area
|
|
|
* @param year
|
|
@ -4711,8 +4731,8 @@ public class StatisticsESService {
|
|
|
*/
|
|
|
public JSONObject getSignPayOnline(Integer level, String area, String year) {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
String timeKey ="";
|
|
|
try{
|
|
|
String timeKey = "";
|
|
|
try {
|
|
|
if (StringUtils.isNotEmpty(year)) {
|
|
|
if (Constant.getNowYear().equals(year)) {
|
|
|
timeKey = elasticsearchUtil.getQuotaTime();
|
|
@ -4722,13 +4742,13 @@ public class StatisticsESService {
|
|
|
}
|
|
|
}
|
|
|
//获取已缴费的总人数
|
|
|
SaveModel signSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey,area,level,"1",SaveModel.timeLevel_DDL);
|
|
|
SaveModel signSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, "1", SaveModel.timeLevel_DDL);
|
|
|
//获取线上缴费的人数
|
|
|
SaveModel signPayOnlineSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey,area,level,"82",SaveModel.timeLevel_DDL);
|
|
|
SaveModel signPayOnlineSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, "82", SaveModel.timeLevel_DDL);
|
|
|
int signNum = signSaveModel.getResult2().intValue();
|
|
|
int signPayOnlineNum = signPayOnlineSaveModel.getResult2().intValue();
|
|
|
//线下缴费=已缴费的总人数-线上缴费
|
|
|
int signPayUnderNum = signNum-signPayOnlineNum;
|
|
|
int signPayUnderNum = signNum - signPayOnlineNum;
|
|
|
jo.put("signPayOnlineNum", signPayOnlineNum);//线上缴费数量
|
|
|
jo.put("signPayUnderNum", signPayUnderNum);//线下缴费数量
|
|
|
jo.put("signPayOnlineRate", getRange(signPayOnlineNum, signNum, 2));//线上缴费率 50.00%
|
|
@ -4744,6 +4764,7 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 线上缴费的情况
|
|
|
*
|
|
|
* @param area
|
|
|
* @param level
|
|
|
* @param index
|
|
@ -4852,6 +4873,7 @@ public class StatisticsESService {
|
|
|
|
|
|
/**
|
|
|
* 长处方记录筛选
|
|
|
*
|
|
|
* @param level
|
|
|
* @param area
|
|
|
* @param disease
|
|
@ -4861,59 +4883,60 @@ public class StatisticsESService {
|
|
|
* @param endTime
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getPrescriptionByCondition(String keyWord, String level, String area, String disease, String status, String type, String startTime,String endTime){
|
|
|
public List<Map<String, Object>> getPrescriptionByCondition(String keyWord, String level, String area, String disease, String status, String type, String startTime, String endTime) {
|
|
|
startTime += " 00:00:00";
|
|
|
endTime += " 23:59:59";
|
|
|
String sql = "SELECT * FROM wlyy_prescription p ";
|
|
|
//判断疾病
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
sql += " JOIN wlyy_prescription_diagnosis d ON d.prescription_code = p.code WHERE d.health_problem ='"+disease+"' ";
|
|
|
}else{
|
|
|
sql +=" WHERE 1=1 ";
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
sql += " JOIN wlyy_prescription_diagnosis d ON d.prescription_code = p.code WHERE d.health_problem ='" + disease + "' ";
|
|
|
} else {
|
|
|
sql += " WHERE 1=1 ";
|
|
|
}
|
|
|
//判断关键字
|
|
|
if (StringUtils.isNotBlank(keyWord)){
|
|
|
sql += " AND (p.patient_name like '%"+keyWord+"%' or p.doctor_name like '%"+keyWord+"%')";
|
|
|
if (StringUtils.isNotBlank(keyWord)) {
|
|
|
sql += " AND (p.patient_name like '%" + keyWord + "%' or p.doctor_name like '%" + keyWord + "%')";
|
|
|
}
|
|
|
//判断状态
|
|
|
if ("2".equals(status)){//已完成
|
|
|
sql += " AND p.`status` = "+PrescriptionLog.PrescriptionLogStatus.finish.getValue() ;
|
|
|
}else if ("3".equals(status)){//居民取消
|
|
|
sql += " AND p.`status` = "+PrescriptionLog.PrescriptionLogStatus.patient_canel.getValue() ;
|
|
|
}else if ("4".equals(status)){//审核不通过
|
|
|
sql += " AND p.`status` = "+PrescriptionLog.PrescriptionLogStatus.no_reviewed.getValue() ;
|
|
|
}else if ("5".equals(status)){//进行中
|
|
|
if ("2".equals(status)) {//已完成
|
|
|
sql += " AND p.`status` = " + PrescriptionLog.PrescriptionLogStatus.finish.getValue();
|
|
|
} else if ("3".equals(status)) {//居民取消
|
|
|
sql += " AND p.`status` = " + PrescriptionLog.PrescriptionLogStatus.patient_canel.getValue();
|
|
|
} else if ("4".equals(status)) {//审核不通过
|
|
|
sql += " AND p.`status` = " + PrescriptionLog.PrescriptionLogStatus.no_reviewed.getValue();
|
|
|
} else if ("5".equals(status)) {//进行中
|
|
|
sql += " AND p.`status` < " + PrescriptionLog.PrescriptionLogStatus.finish.getValue() +
|
|
|
" AND p.`status`>= " + PrescriptionLog.PrescriptionLogStatus.revieweding.getValue() ;
|
|
|
}else if ("6".equals(status)){//其他原因取消
|
|
|
sql += " AND p.`status` <= "+PrescriptionLog.PrescriptionLogStatus.pay_outtime.getValue() ;
|
|
|
" AND p.`status`>= " + PrescriptionLog.PrescriptionLogStatus.revieweding.getValue();
|
|
|
} else if ("6".equals(status)) {//其他原因取消
|
|
|
sql += " AND p.`status` <= " + PrescriptionLog.PrescriptionLogStatus.pay_outtime.getValue();
|
|
|
}
|
|
|
//判断取药方式
|
|
|
if (StringUtils.isNotBlank(type)){
|
|
|
if (StringUtils.isNotBlank(type)) {
|
|
|
//类型1.自取,2.快递配送,3.健管师配送
|
|
|
if("1".equals(type)){
|
|
|
sql +=" AND p.dispensary_type ="+type;
|
|
|
}else if("2".equals(type)){
|
|
|
sql +=" AND p.dispensary_type ="+type;
|
|
|
}else if("3".equals(type)){
|
|
|
sql +=" AND p.dispensary_type ="+type;
|
|
|
if ("1".equals(type)) {
|
|
|
sql += " AND p.dispensary_type =" + type;
|
|
|
} else if ("2".equals(type)) {
|
|
|
sql += " AND p.dispensary_type =" + type;
|
|
|
} else if ("3".equals(type)) {
|
|
|
sql += " AND p.dispensary_type =" + type;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//市区
|
|
|
if("4".equals(level)){
|
|
|
if ("4".equals(level)) {
|
|
|
//市区无过滤
|
|
|
//区级
|
|
|
}else if("3".equals(level)){
|
|
|
sql += " AND LEFT(p.hospital, 6) = '"+area+"' ";
|
|
|
} else if ("3".equals(level)) {
|
|
|
sql += " AND LEFT(p.hospital, 6) = '" + area + "' ";
|
|
|
//机构
|
|
|
}else if("2".equals(level)){
|
|
|
sql += "AND p.hospital = '"+area+"' ";
|
|
|
} else if ("2".equals(level)) {
|
|
|
sql += "AND p.hospital = '" + area + "' ";
|
|
|
}
|
|
|
|
|
|
sql += " AND p.create_time <= ? " +
|
|
|
" AND p.create_time >= ? ";
|
|
|
List<Map<String,Object>> resultList = jdbcTemplate.queryForList(sql,new Object[]{endTime,startTime});
|
|
|
List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql, new Object[]{endTime, startTime});
|
|
|
return resultList;
|
|
|
}
|
|
|
|
|
|
}
|