소스 검색

Merge branch 'dev' of chenweida/patient-co-management into dev

chenweida 7 년 전
부모
커밋
b17d8bd232

+ 248 - 225
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statisticsES/StatisticsESService.java

@ -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;
    }
}

+ 173 - 159
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/EsStatisticsController.java

@ -44,6 +44,7 @@ public class EsStatisticsController extends BaseController {
    StatisticsAllService statisticsAllService;
    @Autowired
    ElasticsearchUtil elasticsearchUtil;
    /**
     * 获取统计时间
     *
@ -89,14 +90,9 @@ public class EsStatisticsController extends BaseController {
            JSONObject result = new JSONObject();
            if (index != null) {
                for (String idx : indexes) {
                    if ("4".equals(idx)){
                        //2017-12-20 修改总体分析里的随访量为到达量
                        String year = Constant.getNowYear();
                        result.put("index_" + idx, statisticsESService.getDateTotal(startDate, endDate, Integer.valueOf(interval), area, level, idx, level2_type, year));
                    }else{
                        result.put("index_" + idx, statisticsESService.getDateIncrementDetail(startDate, endDate, interval, area, level, idx, level2_type));
                    result.put("index_" + idx, statisticsESService.getDateIncrementDetail(startDate, endDate, interval, area, level, idx, level2_type));
//                      result.put("index_" + idx, statisticsService.getDateIncrementDetail(startDate, endDate, Integer.parseInt(interval), area, level, idx, level2_type));
                    }
                }
            }
@ -170,11 +166,16 @@ public class EsStatisticsController extends BaseController {
            JSONObject result = new JSONObject();
            for (String idx : indexes) {
                if("3".equals(idx) || "4".equals(idx)){
                if ("3".equals(idx) || "4".equals(idx) || "27".equals(idx)) {
                    //为了确保之前是咨询量是准确的 所以咨询量用到达量不用增量累加
                    //2017-12-20 修改总体分析里的随访量为到达量
                    result.put("index_" + idx, statisticsESService.getTotalAmount3(startDate, endDate, area, level, idx, level2_type));
                }else{
                    if ("2017-06-30".equals(endDate)) {
                        //2016年度的数据比较特殊 只有增量的数据 但是要显示到达量 所以所有增量累加
                        result.put("index_" + idx, statisticsESService.getTotalAmount3ZL(startDate, endDate, area, level, idx, level2_type));
                    } else {
                        result.put("index_" + idx, statisticsESService.getTotalAmount3DDL(endDate, endDate, area, level, idx, level2_type));
                    }
                } else {
                    result.put("index_" + idx, statisticsESService.getTotalAmount(startDate, endDate, area, level, idx, level2_type));
                }
            }
@ -213,8 +214,8 @@ public class EsStatisticsController extends BaseController {
            lowLevel = String.valueOf(StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
            //新版与旧版统计适配
            level = elasticsearchUtil.changeLevel(level);
            if(StringUtils.isNotEmpty(lowLevel)){
                lowLevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowLevel))+"";
            if (StringUtils.isNotEmpty(lowLevel)) {
                lowLevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowLevel)) + "";
            }
            String[] indexes = index.split(",");
            JSONObject result = new JSONObject();
@ -254,8 +255,8 @@ public class EsStatisticsController extends BaseController {
            lowLevel = String.valueOf(StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
            //新版与旧版统计适配
            level = elasticsearchUtil.changeLevel(level);
            if(StringUtils.isNotEmpty(lowLevel)){
                lowLevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowLevel))+"";
            if (StringUtils.isNotEmpty(lowLevel)) {
                lowLevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowLevel)) + "";
            }
            String[] indexes = index.split(",");
            JSONObject result = new JSONObject();
@ -272,7 +273,7 @@ public class EsStatisticsController extends BaseController {
            /**旧版统计代码start**/
            //未回复-22 到达量
            JSONArray jsonArray2 = null;
            if (DateUtil.getYear(endDate,"yyyy-MM-dd").equals(year)) {
            if (DateUtil.getYear(endDate, "yyyy-MM-dd").equals(year)) {
                jsonArray2 = statisticsESService.getLowLevelIncrementDetail(endDate, endDate, area, level, indexes[1], sort, lowLevel);
            } else {
                String date = Integer.valueOf(year) + 1 + "-06-30";
@ -364,11 +365,11 @@ public class EsStatisticsController extends BaseController {
            JSONObject result = new JSONObject();
            for (String idx : indexes) {
//                result.put("index_" + idx, statisticsAllService.getIndexLevelTwototal(endDate, area, level, idx));
                if(!"16".equals(idx)){
                if (!"16".equals(idx)) {
                    result.put("index_" + idx, statisticsESService.getIndexLevelTwototal(endDate, area, level, idx));
                }else{
                } else {
                    //16的指标删除 改成 1和14
                    result.put("index_"+idx,statisticsESService.getPayPremiums(endDate,area,level));
                    result.put("index_" + idx, statisticsESService.getPayPremiums(endDate, area, level));
                }
            }
            return write(200, "查询成功", "data", result);
@ -414,7 +415,7 @@ public class EsStatisticsController extends BaseController {
                long sign = statisticsESService.getIndexTotal(endDate, area, level, "1", SaveModel.timeLevel_DDL);
                long weiJf = statisticsESService.getWeiJiaoFei(endDate, area, level);
                JSONObject jo = statisticsESService.getRenewPercent(level + "", area, Constant.getNowYear());
                JSONObject signRate = statisticsESService.getSignRate(endDate, area, level, year,"1");
                JSONObject signRate = statisticsESService.getSignRate(endDate, area, level, year, "1");
                JSONObject signTaskRate = statisticsESService.getSignTaskRate(endDate, area, level, year);
                result.put("sign", sign);
@ -503,8 +504,8 @@ public class EsStatisticsController extends BaseController {
                    if (org.springframework.util.StringUtils.isEmpty(year)) {
                        year = Constant.getNowYear();
                    }
                    if ("13".equals(idx)){
                        idx="1";
                    if ("13".equals(idx)) {
                        idx = "1";
                    }
                    JSONObject json = statisticsESService.getDateTotal(startDate, endDate, interval, area, level, idx, lowCode, year);
                    result.put("index_" + idx, json);
@ -546,8 +547,8 @@ public class EsStatisticsController extends BaseController {
            String lowLevelTemp = lowLevel;
            //新版与旧版统计适配
            level = elasticsearchUtil.changeLevel(level);
            if(StringUtils.isNotEmpty(lowLevel)){
                lowLevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowLevel))+"";
            if (StringUtils.isNotEmpty(lowLevel)) {
                lowLevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowLevel)) + "";
            }
            String[] indexes = index.split(",");
            JSONObject result = new JSONObject();
@ -557,9 +558,9 @@ public class EsStatisticsController extends BaseController {
                if (index.equals("17")) {
                    //sort=1&date=2017-07-13&level=4&index=17&area=350200&lowLevel=1&lowCode=3
                    result.put("index_" + index, statisticsESService.getLevelTwoLowLevelTotalTeamLeader(date, area, level, index, sort, lowLevel, lowCode, year));
                }else if (index.equals("73")){
                    result.put("index_"+index, statisticsESService.getLowLevelTotalOnlineTeamLeader(date,area,level,index,sort,lowLevel,year,lowCode));
                } else{
                } else if (index.equals("73")) {
                    result.put("index_" + index, statisticsESService.getLowLevelTotalOnlineTeamLeader(date, area, level, index, sort, lowLevel, year, lowCode));
                } else {
                    result.put("index_" + index, statisticsESService.getLevelTwoLowLevelTotal(date, area, level, index, sort, lowLevel, lowCode, year));
                }
            } else {
@ -573,14 +574,14 @@ public class EsStatisticsController extends BaseController {
                        //level=4&area=350200&sort=1&index=28&date=undefined&lowLevel=2
                        result.put("index_" + idx, statisticsESService.getAvgAllInfo(level, area, lowLevel));
                        //列表先用旧版  因为之前没有数据 等数据生成在切换到新版
                       // result.put("index_" + idx, statisticsService.getAvgAllInfo(levelTemp, area, lowLevelTemp));
                        // result.put("index_" + idx, statisticsService.getAvgAllInfo(levelTemp, area, lowLevelTemp));
                    } else if (idx.equals("13")) {
                        // sort=1&date=2017-07-13&level=4&index=13&area=350200&lowCode=
                        idx="1";
                        idx = "1";
                        result.put("index_" + idx, statisticsESService.getLowLevelTotalTeamLeader(date, area, level, idx, sort, lowLevel, year));
                    }else if(idx.equals("72")){
                        result.put("index_"+idx, statisticsESService.getLowLevelTotalOnlineTeamLeader(date,area,level,idx,sort,lowLevel,year,""));
                    }else {
                    } else if (idx.equals("72")) {
                        result.put("index_" + idx, statisticsESService.getLowLevelTotalOnlineTeamLeader(date, area, level, idx, sort, lowLevel, year, ""));
                    } else {
                        result.put("index_" + idx, statisticsESService.getLowLevelTotal(date, area, level, idx, sort, lowLevel, year));
                    }
                }
@ -595,7 +596,8 @@ public class EsStatisticsController extends BaseController {
    /**
     * 获取三师转签或高危人群
     **-
     * *-
     *
     * @param endDate
     * @param area
     * @param level
@ -662,7 +664,7 @@ public class EsStatisticsController extends BaseController {
     * ①回复及时率------医生首次回复24小时内比例
     * ②未回复数(数、率)----------当前未回复咨询数、以及相应比例
     * ③处理咨询回复时间分布---------全部咨询的首次回复咨询时间分布
     *
     * <p>
     * 备注:注解为Deprecated是因为前端代码全局搜索没有,并且本地代码没有调用该方法
     * 视为无效(2017-11-21)
     *
@ -700,11 +702,11 @@ public class EsStatisticsController extends BaseController {
                                              @RequestParam(required = false) String lowlevel,
                                              @RequestParam(required = false) String year) {
        try {
            lowlevel = StringUtils.isEmpty(lowlevel)?String.valueOf(level-1):lowlevel;
            lowlevel = StringUtils.isEmpty(lowlevel) ? String.valueOf(level - 1) : lowlevel;
            //新版与旧版统计适配
            level = elasticsearchUtil.changeLevel(level);
            if(StringUtils.isNotEmpty(lowlevel)){
                lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel))+"";
            if (StringUtils.isNotEmpty(lowlevel)) {
                lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel)) + "";
            }
            JSONObject data = null;
            data = statisticsESService.getConsultingStatisticsList(level, area, lowlevel, year);
@ -771,7 +773,7 @@ public class EsStatisticsController extends BaseController {
//                return write(200, "查询成功", "data", statisticsService.getCoutListByTimeYear(level, area, year));
//            }
            //版与旧版统计适配
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level)) + "";
            return write(200, "查询成功", "data", statisticsESService.getCoutListByTime(level, area, year));
        } catch (Exception e) {
            e.printStackTrace();
@ -783,8 +785,9 @@ public class EsStatisticsController extends BaseController {
     * 获取绑定率
     * 1、选定绑定微信指标,下面排行内,在绑定微信数后新增:"绑定率:xx.22%"
     * 2、绑定率=绑定数/已签约数
     *备注:注解为Deprecated是因为前端代码全局搜索没有,并且本地代码没有调用该方法
     * 备注:注解为Deprecated是因为前端代码全局搜索没有,并且本地代码没有调用该方法
     * 视为无效(2017-11-21)
     *
     * @return
     */
    @RequestMapping("/bindingRate_stat")
@ -802,6 +805,7 @@ public class EsStatisticsController extends BaseController {
    /**
     * 获取得分平均数
     * http://172.19.103.11:9092/wlyy//statistics/getAVGSocre?level=4&area=350200
     *
     * @param level
     * @param area
     * @return
@ -811,7 +815,7 @@ public class EsStatisticsController extends BaseController {
    public String getAVGSocre(@RequestParam(required = true) String level, @RequestParam(required = true) String area) {
        try {
            //新版与旧版统计适配
            level = elasticsearchUtil.changeLevel(Integer.valueOf(level))+"";
            level = elasticsearchUtil.changeLevel(Integer.valueOf(level)) + "";
            return write(200, "查询成功", "data", statisticsESService.getAVGSocre(level, area));
        } catch (Exception e) {
            e.printStackTrace();
@ -976,6 +980,7 @@ public class EsStatisticsController extends BaseController {
    /**
     * 获取团队月或周咨询未回复和总数折线图
     * 备注:决定用旧版的service(17-11-22)
     *
     * @param teamCode  团队id
     * @param startDate
     * @param endDate
@ -1445,6 +1450,7 @@ public class EsStatisticsController extends BaseController {
    /**
     * 续签 签入、签出统计
     *
     * @param teamCode
     * @param startDate
     * @param endDate
@ -1468,6 +1474,7 @@ public class EsStatisticsController extends BaseController {
    /**
     * 备注:注解为Deprecated是因为前端代码全局搜索没有,并且本地代码没有调用该方法
     * 视为无效(2017-11-21).
     *
     * @return
     */
    @RequestMapping("/cleanDoctorScore")
@ -1486,10 +1493,11 @@ public class EsStatisticsController extends BaseController {
     * 获取转签率和续签率
     * 前端:续签进展
     * <p>
     * @param index 42,43,44 (52,53,54 服务类型维度)
     * @param level 等级  4 市  3区  2社区 1团队
     * @param code  市 默认是厦门市 350200  区 就是区的code  社区就是社区的code 团队就是团队的code.
     * @param year  年份 非比传
     *
     * @param index   42,43,44 (52,53,54 服务类型维度)
     * @param level   等级  4 市  3区  2社区 1团队
     * @param code    市 默认是厦门市 350200  区 就是区的code  社区就是社区的code 团队就是团队的code.
     * @param year    年份 非比传
     * @param lowCode 服务类型维度code(老年人3,高血压1,糖尿病2)
     * @return
     */
@ -1507,7 +1515,7 @@ public class EsStatisticsController extends BaseController {
                year = Constant.getNowYear();
            }*/
            //return write(200, "查询成功", "data", statisticsService.getRenewPercentAndChangePercent(index,level, code, year,lowCode));
            return write(200,"查询成功!","data",statisticsESService.getRenewPercentAndChangePercent(index,elasticsearchUtil.changeLevel(level),code,year,lowCode));
            return write(200, "查询成功!", "data", statisticsESService.getRenewPercentAndChangePercent(index, elasticsearchUtil.changeLevel(level), code, year, lowCode));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1529,7 +1537,7 @@ public class EsStatisticsController extends BaseController {
            @RequestParam(required = true) String code) {
        try {
            //新版与旧版统计适配
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level)) + "";
            String switchIndex = "";
            String switchIndexReson = "";
            String signIn = "";
@ -1604,7 +1612,7 @@ public class EsStatisticsController extends BaseController {
                lowLevel = level - 1 + "";
            }
            result.put("index_" + index, statisticsESService.getLevelTwoLowLevelTotalSignAndRenew(area,elasticsearchUtil.changeLevel(level), index, sort, String.valueOf(elasticsearchUtil.changeLevel(Integer.valueOf(lowLevel))), year, lowCode));
            result.put("index_" + index, statisticsESService.getLevelTwoLowLevelTotalSignAndRenew(area, elasticsearchUtil.changeLevel(level), index, sort, String.valueOf(elasticsearchUtil.changeLevel(Integer.valueOf(lowLevel))), year, lowCode));
//            result.put("index_" + index, statisticsAllService.getLevelTwoLowLevelTotalSignAndRenew(area, changeLevel(level), index, sort, String.valueOf(changeLevel(Integer.valueOf(lowLevel))), year, lowCode));
            return write(200, "查询成功", "data", result);
@ -1631,6 +1639,7 @@ public class EsStatisticsController extends BaseController {
    /**
     * 团队工作报告--长处方
     *
     * @param startDate
     * @param endDate
     * @param adminTeamId
@ -1638,11 +1647,11 @@ public class EsStatisticsController extends BaseController {
     */
    @RequestMapping("/getPrescriptionTotalCount")
    @ResponseBody
    public String getPrescriptionTotalCount(@ApiParam(name="startDate", value="开始时间 yyyy-MM-dd") @RequestParam(required = true)String startDate,
                                            @ApiParam(name="endDate", value="开始时间 yyyy-MM-dd") @RequestParam(required = true)String endDate,
                                            @ApiParam(name="adminTeamId", value="团队ID") @RequestParam(required = true)Integer adminTeamId){
        try{
            return write(200, "查询成功", "data", statisticsService.getPrescriptionTotalCount(startDate,endDate,adminTeamId));
    public String getPrescriptionTotalCount(@ApiParam(name = "startDate", value = "开始时间 yyyy-MM-dd") @RequestParam(required = true) String startDate,
                                            @ApiParam(name = "endDate", value = "开始时间 yyyy-MM-dd") @RequestParam(required = true) String endDate,
                                            @ApiParam(name = "adminTeamId", value = "团队ID") @RequestParam(required = true) Integer adminTeamId) {
        try {
            return write(200, "查询成功", "data", statisticsService.getPrescriptionTotalCount(startDate, endDate, adminTeamId));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1653,7 +1662,8 @@ public class EsStatisticsController extends BaseController {
    //=================================长处方分析==============================================
    /**
     *年龄统计-下部列表(疾病维度)
     * 年龄统计-下部列表(疾病维度)
     *
     * @param level
     * @param lowlevel
     * @param area
@ -1663,14 +1673,14 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionAgeLowLevel")
    @ResponseBody
    @ApiOperation("年龄统计-下部列表")
    public String getPrescriptionAgeLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                             @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)String lowlevel,
                                             @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                             @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeLowLevel(level,lowlevel,area,disease));
    public String getPrescriptionAgeLowLevel(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                             @ApiParam(name = "lowlevel", value = "第二级别") @RequestParam(required = true) String lowlevel,
                                             @ApiParam(name = "area", value = "级别编码") @RequestParam(required = true) String area,
                                             @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease) {
        try {
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level)) + "";
            lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel)) + "";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeLowLevel(level, lowlevel, area, disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1681,12 +1691,12 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionAgeHistogram")
    @ResponseBody
    @ApiOperation("年龄统计-中部部条形图")
    public String getPrescriptionAgeHistogram(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                              @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                              @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeHistogram(level,area,disease));
    public String getPrescriptionAgeHistogram(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                              @ApiParam(name = "area", value = "级别编码") @RequestParam(required = true) String area,
                                              @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease) {
        try {
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level)) + "";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeHistogram(level, area, disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1694,7 +1704,8 @@ public class EsStatisticsController extends BaseController {
    }
    /**
     *各个年龄段的总数
     * 各个年龄段的总数
     *
     * @param level
     * @param area
     * @param disease
@ -1703,12 +1714,12 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionAgeTotal")
    @ResponseBody
    @ApiOperation("年龄统计-上部总数图")
    public String  getPrescriptionAgeTotal(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                           @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                           @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeTotal(level,area,disease));
    public String getPrescriptionAgeTotal(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                          @ApiParam(name = "area", value = "级别编码") @RequestParam(required = true) String area,
                                          @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease) {
        try {
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level)) + "";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeTotal(level, area, disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1718,11 +1729,11 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionCount")
    @ResponseBody
    @ApiOperation("订单统计-顶部总数获取")
    public String getPrescriptionCount(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                       @ApiParam(name="area", value="级别对应编码") @RequestParam(required = true)String area,
                                       @ApiParam(name="disease", value="疾病类型") @RequestParam(required = false)String disease){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCount(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease));
    public String getPrescriptionCount(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                       @ApiParam(name = "area", value = "级别对应编码") @RequestParam(required = true) String area,
                                       @ApiParam(name = "disease", value = "疾病类型") @RequestParam(required = false) String disease) {
        try {
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCount(elasticsearchUtil.changeLevel(Integer.valueOf(level)), area, disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1731,6 +1742,7 @@ public class EsStatisticsController extends BaseController {
    /**
     * 业务要求:这个接口要是实时的接口
     *
     * @param level
     * @param area
     * @param disease
@ -1740,15 +1752,15 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionTotalHistogram")
    @ResponseBody
    @ApiOperation("订单统计-中部树状图获取")
    public String getPrescriptionTotalHistogram(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                                @ApiParam(name="area", value="级别对应编码") @RequestParam(required = true)String area,
                                                @ApiParam(name="disease", value="疾病类型") @RequestParam(required = false)String disease,
                                                @ApiParam(name="type", value="类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消") @RequestParam(required = true)String type,
                                                @ApiParam(name="interval",value ="时间类型:1日2周3月")@RequestParam(required = true)int interval){
        try{
    public String getPrescriptionTotalHistogram(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                                @ApiParam(name = "area", value = "级别对应编码") @RequestParam(required = true) String area,
                                                @ApiParam(name = "disease", value = "疾病类型") @RequestParam(required = false) String disease,
                                                @ApiParam(name = "type", value = "类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消") @RequestParam(required = true) String type,
                                                @ApiParam(name = "interval", value = "时间类型:1日2周3月") @RequestParam(required = true) int interval) {
        try {
            return write(200, "查询成功", "data", statisticsService.getPrescriptionTotalHistogram(level,area,disease,type,interval));
           // return write(200, "查询成功", "data", statisticsESService.getPrescriptionTotalHistogram(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease,type));
            return write(200, "查询成功", "data", statisticsService.getPrescriptionTotalHistogram(level, area, disease, type, interval));
            // return write(200, "查询成功", "data", statisticsESService.getPrescriptionTotalHistogram(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease,type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1758,12 +1770,12 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionTotalLowLevel")
    @ResponseBody
    @ApiOperation("订单统计-下部列表接口")
    public String getPrescriptionTotalLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)Integer level,
                                               @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)int lowlevel,
                                               @ApiParam(name="area", value="界别编码") @RequestParam(required = true)String area,
                                               @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                               @ApiParam(name="type", value="类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消") @RequestParam(required = true)String type){
        try{
    public String getPrescriptionTotalLowLevel(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) Integer level,
                                               @ApiParam(name = "lowlevel", value = "第二级别") @RequestParam(required = true) int lowlevel,
                                               @ApiParam(name = "area", value = "界别编码") @RequestParam(required = true) String area,
                                               @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease,
                                               @ApiParam(name = "type", value = "类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消") @RequestParam(required = true) String type) {
        try {
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionTotalLowLevel(
                    elasticsearchUtil.changeLevel(level),
                    String.valueOf(elasticsearchUtil.changeLevel(lowlevel)),
@ -1780,15 +1792,15 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionCostLowLevel")
    @ResponseBody
    @ApiOperation("费用统计-下部列表接口")
    public String getPrescriptionCostLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                              @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)String lowlevel,
                                              @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                              @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                              @ApiParam(name="type", value="1.总量,2.平均值")@RequestParam(required =true)String type){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCostLowLevel(level,lowlevel,area,disease,type));
    public String getPrescriptionCostLowLevel(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                              @ApiParam(name = "lowlevel", value = "第二级别") @RequestParam(required = true) String lowlevel,
                                              @ApiParam(name = "area", value = "级别编码") @RequestParam(required = true) String area,
                                              @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease,
                                              @ApiParam(name = "type", value = "1.总量,2.平均值") @RequestParam(required = true) String type) {
        try {
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level)) + "";
            lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel)) + "";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCostLowLevel(level, lowlevel, area, disease, type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1798,15 +1810,15 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionCostAvgLine")
    @ResponseBody
    @ApiOperation("费用统计-中部折线图接口")
    public String getPrescriptionCostAvgLine(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                             @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                             @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                             @ApiParam(name="startDate", value="开始时间") @RequestParam(required = false)String startDate,
                                             @ApiParam(name="endDate", value="结束时间") @RequestParam(required = false)String endDate,
                                             @ApiParam(name="type", value="1.按日,2.按周,3.按月") @RequestParam(required = false)String type){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCostAvgLine(level,area,disease,startDate,endDate,type));
    public String getPrescriptionCostAvgLine(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                             @ApiParam(name = "area", value = "级别编码") @RequestParam(required = true) String area,
                                             @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease,
                                             @ApiParam(name = "startDate", value = "开始时间") @RequestParam(required = false) String startDate,
                                             @ApiParam(name = "endDate", value = "结束时间") @RequestParam(required = false) String endDate,
                                             @ApiParam(name = "type", value = "1.按日,2.按周,3.按月") @RequestParam(required = false) String type) {
        try {
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level)) + "";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCostAvgLine(level, area, disease, startDate, endDate, type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1816,12 +1828,12 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionCost")
    @ResponseBody
    @ApiOperation("费用统计-顶部部头部接口")
    public String getPrescriptionCost(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                      @ApiParam(name="area", value="界别编码") @RequestParam(required = true)String area,
                                      @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCost(level,area,disease));
    public String getPrescriptionCost(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                      @ApiParam(name = "area", value = "界别编码") @RequestParam(required = true) String area,
                                      @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease) {
        try {
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level)) + "";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCost(level, area, disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1831,11 +1843,11 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionDispatchingTotal")
    @ResponseBody
    @ApiOperation("配送统计-头部总数接口")
    public String getPrescriptionDispatchingTotal(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                                  @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                                  @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionDispatchingTotal(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease));
    public String getPrescriptionDispatchingTotal(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                                  @ApiParam(name = "area", value = "级别编码") @RequestParam(required = true) String area,
                                                  @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease) {
        try {
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionDispatchingTotal(elasticsearchUtil.changeLevel(Integer.valueOf(level)), area, disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1845,13 +1857,13 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionDispatchingHistogram")
    @ResponseBody
    @ApiOperation("配送统计-中部条形图")
    public String getPrescriptionDispatchingHistogram(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                                      @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                                      @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                                      @ApiParam(name="type", value="1.自取,2.快递配送,3.健管师配送") @RequestParam(required = true)String type,
                                                      @ApiParam(name="interval",value ="时间类型:1日2周3月")@RequestParam(required = true)int interval){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionDispatchingHistogram(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease,type,interval));
    public String getPrescriptionDispatchingHistogram(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                                      @ApiParam(name = "area", value = "级别编码") @RequestParam(required = true) String area,
                                                      @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease,
                                                      @ApiParam(name = "type", value = "1.自取,2.快递配送,3.健管师配送") @RequestParam(required = true) String type,
                                                      @ApiParam(name = "interval", value = "时间类型:1日2周3月") @RequestParam(required = true) int interval) {
        try {
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionDispatchingHistogram(elasticsearchUtil.changeLevel(Integer.valueOf(level)), area, disease, type, interval));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1861,13 +1873,13 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionDispatchingLowLevel")
    @ResponseBody
    @ApiOperation("配送统计-下部条形图")
    public String getPrescriptionDispatchingLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                                     @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)int lowlevel,
                                                     @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                                     @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                                     @ApiParam(name="type", value="1.自取,2.快递配送,3.健管师配送") @RequestParam(required = true)String type){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionDispatchingLowLevel(elasticsearchUtil.changeLevel(Integer.valueOf(level)),String.valueOf(elasticsearchUtil.changeLevel(lowlevel)),area,disease,type));
    public String getPrescriptionDispatchingLowLevel(@ApiParam(name = "level", value = "级别") @RequestParam(required = true) String level,
                                                     @ApiParam(name = "lowlevel", value = "第二级别") @RequestParam(required = true) int lowlevel,
                                                     @ApiParam(name = "area", value = "级别编码") @RequestParam(required = true) String area,
                                                     @ApiParam(name = "disease", value = "疾病") @RequestParam(required = false) String disease,
                                                     @ApiParam(name = "type", value = "1.自取,2.快递配送,3.健管师配送") @RequestParam(required = true) String type) {
        try {
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionDispatchingLowLevel(elasticsearchUtil.changeLevel(Integer.valueOf(level)), String.valueOf(elasticsearchUtil.changeLevel(lowlevel)), area, disease, type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1889,10 +1901,10 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping(value = "/sign_info_online")
    @ResponseBody
    public String getAreaSignInfoOnline(@RequestParam(required = true) String endDate,
                                  @RequestParam(required = true) String area,
                                  @RequestParam(required = true) int level,
                                  @RequestParam(required = false) String lowCode,
                                  @RequestParam(required = false) String year) {
                                        @RequestParam(required = true) String area,
                                        @RequestParam(required = true) int level,
                                        @RequestParam(required = false) String lowCode,
                                        @RequestParam(required = false) String year) {
        try {
            //新版与旧版统计适配
            level = elasticsearchUtil.changeLevel(level);
@ -1906,11 +1918,11 @@ public class EsStatisticsController extends BaseController {
                //总签约数量
                long sign = statisticsESService.getIndexTotal(endDate, area, level, "1", SaveModel.timeLevel_DDL);
                //总线上签约数量
                long signOnline = statisticsESService.getIndexTotal(endDate,area,level,"72",SaveModel.timeLevel_DDL);
                long signOnline = statisticsESService.getIndexTotal(endDate, area, level, "72", SaveModel.timeLevel_DDL);
                //总签约率
                JSONObject signRate = statisticsESService.getSignRate(endDate, area, level, year,"1");
                JSONObject signRate = statisticsESService.getSignRate(endDate, area, level, year, "1");
                //线上签约率=线上签约人数/总签约量
                JSONObject signOnlineRate = statisticsESService.getSignOnlineRate(endDate,area,level,year,sign);
                JSONObject signOnlineRate = statisticsESService.getSignOnlineRate(endDate, area, level, year, sign);
                //result.put("sign", sign);
                result.put("signOnline", signOnline);
@ -1935,10 +1947,10 @@ public class EsStatisticsController extends BaseController {
     * 获取 线上续签率和续签率
     * 前端:线上续签
     *
     * @param index 29,43,44 (51,53,54 服务类型维度)
     * @param level 等级  4 市  3区  2社区 1团队
     * @param code  市 默认是厦门市 350200  区 就是区的code  社区就是社区的code 团队就是团队的code.
     * @param year  年份 非比传
     * @param index   29,43,44 (51,53,54 服务类型维度)
     * @param level   等级  4 市  3区  2社区 1团队
     * @param code    市 默认是厦门市 350200  区 就是区的code  社区就是社区的code 团队就是团队的code.
     * @param year    年份 非比传
     * @param lowCode 服务类型维度code(老年人3,高血压1,糖尿病2)
     * @return
     */
@ -1955,7 +1967,7 @@ public class EsStatisticsController extends BaseController {
            /*if (org.springframework.util.StringUtils.isEmpty(year)) {
                year = Constant.getNowYear();
            }*/
            return write(200,"查询成功!","data",statisticsESService.getRenewPercentOnline(index,elasticsearchUtil.changeLevel(level),code,year,lowCode));
            return write(200, "查询成功!", "data", statisticsESService.getRenewPercentOnline(index, elasticsearchUtil.changeLevel(level), code, year, lowCode));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1996,7 +2008,7 @@ public class EsStatisticsController extends BaseController {
                lowLevel = level - 1 + "";
            }
            result.put("index_" + index, statisticsESService.getLevelTwoLowLevelTotalRenewOnline(area,elasticsearchUtil.changeLevel(level), index, sort, String.valueOf(elasticsearchUtil.changeLevel(Integer.valueOf(lowLevel))), year, lowCode));
            result.put("index_" + index, statisticsESService.getLevelTwoLowLevelTotalRenewOnline(area, elasticsearchUtil.changeLevel(level), index, sort, String.valueOf(elasticsearchUtil.changeLevel(Integer.valueOf(lowLevel))), year, lowCode));
            return write(200, "查询成功", "data", result);
        } catch (Exception e) {
            e.printStackTrace();
@ -2005,28 +2017,29 @@ public class EsStatisticsController extends BaseController {
    }
    /**
     *获取线上和线下缴费的比例
     * @author zhangdan 2017-11-29
     * 获取线上和线下缴费的比例
     *
     * @param area
     * @param level
     * @param year
     * @return
     * @author zhangdan 2017-11-29
     */
    @ApiOperation("获取线上缴费和线下缴费的比例")
    @RequestMapping("/signPayOnline")
    @ResponseBody
    public String signPayOnline(
            @RequestParam(required = true)String area,
            @RequestParam(required = true)int level,
            @RequestParam(required = true)String year){
        try{
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String year) {
        try {
            JSONObject result = new JSONObject();
            //如果年度是空,按当前时间计算是年度是属于那个年度
            if (org.springframework.util.StringUtils.isEmpty(year)) {
                year = Constant.getNowYear();
            }
            return write(200, "查询成功", "data", statisticsESService.getSignPayOnline(elasticsearchUtil.changeLevel(level),area,year));
        }catch (Exception e) {
            return write(200, "查询成功", "data", statisticsESService.getSignPayOnline(elasticsearchUtil.changeLevel(level), area, year));
        } catch (Exception e) {
            e.printStackTrace();
            return error(-1, "查询失败");
        }
@ -2034,7 +2047,7 @@ public class EsStatisticsController extends BaseController {
    /**
     * 获取线上缴费的各个读取的列表
     * @author zhangdan 2017-11-29
     *
     * @param index
     * @param area
     * @param level
@ -2042,6 +2055,7 @@ public class EsStatisticsController extends BaseController {
     * @param lowLevel
     * @param year
     * @return
     * @author zhangdan 2017-11-29
     */
    @ApiOperation("获取线上缴费的各个地区的列表")
    @RequestMapping("/lowlevel_all_sign_pay_online")
@ -2052,7 +2066,7 @@ public class EsStatisticsController extends BaseController {
            @RequestParam(required = true) int level,
            @RequestParam(required = true) int sort,
            @RequestParam(required = false) String lowLevel,
            @RequestParam(required = false) String year){
            @RequestParam(required = false) String year) {
        try {
            JSONObject result = new JSONObject();
            //如果年度是空,按当前时间计算是年度是属于那个年度
@ -2064,7 +2078,7 @@ public class EsStatisticsController extends BaseController {
                lowLevel = level - 1 + "";
            }
            result.put("index_" + index, statisticsESService.getLowLevelSignPayOnline(area,elasticsearchUtil.changeLevel(level), index, sort, String.valueOf(elasticsearchUtil.changeLevel(Integer.valueOf(lowLevel))), year));
            result.put("index_" + index, statisticsESService.getLowLevelSignPayOnline(area, elasticsearchUtil.changeLevel(level), index, sort, String.valueOf(elasticsearchUtil.changeLevel(Integer.valueOf(lowLevel))), year));
            return write(200, "查询成功", "data", result);
        } catch (Exception e) {
            e.printStackTrace();