Browse Source

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

chenweida 7 years ago
parent
commit
32ad0f1f89

+ 5 - 117
common/common-entity/src/main/java/com/yihu/wlyy/entity/job/QuartzJobConfig.java

@ -1,130 +1,17 @@
package com.yihu.wlyy.entity.job;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
/**
 * 计划任务
 */
@Entity
@Table(name = "wlyy_job_config")
@Table(name = "wlyy_job_config_cwd")
public class QuartzJobConfig implements java.io.Serializable {
    /*private String id;
    private String quotaId;//指标id
    private String jobName;//任务名称
    private String jobInfo;//任务描述
    private String jobType;//任务类型(0--单次执行  1--周期执行 2--监听任务)
    private String jobClass;//任务执行的class
    private String quartzCron;//quartz表达式
    private String status;//1 启动 0停止
    private String del;//是否删除 1正常 0删除
    *//** minimal constructor *//*
    public QuartzJobConfig() {
    }
    *//** full constructor *//*
    public QuartzJobConfig(String jobName, String jobInfo, String jobType,
                           String jobClass, String quartzCron, String status) {
        this.jobName = jobName;
        this.jobInfo = jobInfo;
        this.jobType = jobType;
        this.jobClass = jobClass;
        this.quartzCron = quartzCron;
        this.status = status;
    }
    // Property accessors
    @GenericGenerator(name = "generator", strategy = "uuid")
    @Id
    @GeneratedValue(generator = "generator")
    @Column(name = "id", unique = true, nullable = false, length = 50)
    public String getId() {
        return this.id;
    }
    public void setId(String id) {
        this.id = id;
    }
    @Column(name = "job_name", length = 50)
    public String getJobName() {
        return this.jobName;
    }
    public void setJobName(String jobName) {
        this.jobName = jobName;
    }
    @Column(name = "job_info", length = 200)
    public String getJobInfo() {
        return this.jobInfo;
    }
    public void setJobInfo(String jobInfo) {
        this.jobInfo = jobInfo;
    }
    @Column(name = "job_type", length = 10)
    public String getJobType() {
        return this.jobType;
    }
    public void setJobType(String jobType) {
        this.jobType = jobType;
    }
    @Column(name = "job_class", length = 200)
    public String getJobClass() {
        return jobClass;
    }
    public void setJobClass(String jobClass) {
        this.jobClass = jobClass;
    }
    @Column(name = "quartz_cron", length = 200)
    public String getQuartzCron() {
        return this.quartzCron;
    }
    public void setQuartzCron(String quartzCron) {
        this.quartzCron = quartzCron;
    }
    @Column(name = "status", length = 1)
    public String getStatus() {
        return this.status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "quota_id", length = 50)
    public String getQuotaId() {
        return quotaId;
    }
    public void setQuotaId(String quotaId) {
        this.quotaId = quotaId;
    }
    @Column(name = "del", length = 1)
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }*/
    private String id;
	private String id;
	private String quotaId;//指标id
	private String jobName;//任务名称
	private String jobInfo;//任务描述
@ -279,4 +166,5 @@ public class QuartzJobConfig implements java.io.Serializable {
	public void setCacheKey(String cacheKey) {
		this.cacheKey = cacheKey;
	}
}

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

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

+ 14 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/DateUtil.java

@ -1063,4 +1063,18 @@ public class DateUtil {
		return y+m+d;
	}
	public static int getWeekOfMonth(String dateString){
		Date date = strToDate(dateString);
		return getWeekOfMonth(date);
	}
	public static int getWeekOfMonth(Date date){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH);
		return weekOfMonth;
	}
}

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

@ -833,7 +833,7 @@ public class EsStatisticsController extends BaseController {
                                   @RequestParam(required = true) String endDate) {
        try {
            return write(200, "查询成功", "data", statisticsService.getStatTitleInfo(getUID(), startDate, endDate));
            return write(200, "查询成功", "data", statisticsESService.getStatTitleInfo(getUID(), startDate, endDate));
            //return write(200, "查询成功", "data", statisticsService.getStatTitleInfo("zbqD201703150228",startDate,endDate));
        } catch (Exception e) {
@ -860,10 +860,10 @@ public class EsStatisticsController extends BaseController {
        try {
            //判断是签约还是续签
            if ("0".equals(signType)) {
                return write(200, "查询成功", "data", statisticsService.getSignCountLineByType(getUID(), type, startDate, endDate));
                return write(200, "查询成功", "data", statisticsESService.getSignCountLineByType(getUID(), type, startDate, endDate));
                //return write(200, "查询成功", "data", statisticsService.getSignCountLineByType("xh1D201703150222",type,startDate,endDate));
            } else {
                return write(200, "查询成功", "data", statisticsService.getRenewCountLineByType(getUID(), type, startDate, endDate));
                return write(200, "查询成功", "data", statisticsESService.getRenewCountLineByType(getUID(), type, startDate, endDate));
                //return write(200, "查询成功", "data", statisticsService.getRenewCountLineByType("xh1D201703150222",type,startDate,endDate));
            }
        } catch (Exception e) {
@ -886,7 +886,7 @@ public class EsStatisticsController extends BaseController {
                                   @RequestParam(required = true) String endDate,
                                   @RequestParam(required = true) String isNow) {
        try {
            return write(200, "查询成功", "data", statisticsService.getReyStatbyTeamNow(getUID(), startDate, endDate, isNow));
            return write(200, "查询成功", "data", statisticsESService.getReyStatbyTeamNow(getUID(), startDate, endDate, isNow));
            //return write(200, "查询成功", "data", statisticsService.getReyStatbyTeamNow("zbqD201703150228",startDate,endDate,isNow));
        } catch (Exception e) {
            error(e);
@ -928,7 +928,7 @@ public class EsStatisticsController extends BaseController {
                             @RequestParam(required = true) String endDate,
                             @RequestParam(required = true) String type) {
        try {
            return write(200, "查询成功", "data", statisticsService.getAvgLine(getUID(), startDate, endDate, type));
            return write(200, "查询成功", "data", statisticsESService.getAvgLine(getUID(), startDate, endDate, type));
            // return write(200, "查询成功", "data", statisticsService.getAvgLine("xh1D201703150222",startDate,endDate,type));
        } catch (Exception e) {
            error(e);
@ -968,7 +968,7 @@ public class EsStatisticsController extends BaseController {
                                      @RequestParam(required = true) String endDate,
                                      @RequestParam(required = true) String type) {
        try {
            return write(200, "查询成功", "data", statisticsService.getTeamConsultCount(teamCode, startDate, endDate, type));
            return write(200, "查询成功", "data", statisticsESService.getTeamConsultCount(teamCode, startDate, endDate, type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -976,7 +976,7 @@ public class EsStatisticsController extends BaseController {
    }
    /**
     * 计算团队医生月或周咨询未回复和总数折线图
     * 计算团队某个医生月或周咨询未回复和总数折线图
     *
     * @param teamCode
     * @param startDate
@ -1001,7 +1001,7 @@ public class EsStatisticsController extends BaseController {
    }
    /**
     * 获取团队内这成员,未回复数,总数,结束咨询数
     * 获取某个团队内所有成员,未回复数,总数,结束咨询数
     *
     * @param teamCode
     * @param startDate
@ -1025,7 +1025,7 @@ public class EsStatisticsController extends BaseController {
    }
    /**
     * 获取Doctor咨询结果
     * 获取某个Doctor咨询结果
     *
     * @param doctor
     * @param teamCode
@ -1048,7 +1048,7 @@ public class EsStatisticsController extends BaseController {
    }
    /**
     * 获取团队随访量折线统计图
     * 获取团队随访量折线统计图(弃用)
     *
     * @param type
     * @param teamCode
@ -1134,7 +1134,7 @@ public class EsStatisticsController extends BaseController {
    }
    /**
     * 获取待预约量团队统计则线图
     * 获取待预约量团队统计折线图
     *
     * @param teamCode
     * @param type
@ -1149,7 +1149,7 @@ public class EsStatisticsController extends BaseController {
                                 @RequestParam(required = true) String startDate,
                                 @RequestParam(required = true) String endDate) {
        try {
            return write(200, "查询成功", "data", statisticsService.getTeamResLine(teamCode, startDate, endDate, type));
            return write(200, "查询成功", "data", statisticsESService.getTeamResLine(teamCode, startDate, endDate, type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");