Bläddra i källkod

Merge branch '2.0' of suqinyi/wlyy2.0 into 2.0

wangzhinan 1 år sedan
förälder
incheckning
0da503df84

+ 159 - 48
business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java

@ -5902,11 +5902,25 @@ public class StatisticsEsService {
    public JSONObject getTotal3Data(ScreenQvo qvo) throws Exception {
        JSONObject result = new JSONObject();
        if (qvo.getFlag()==1){
            qvo.setStartDate( DateUtil.getFirstMonthDay() +" 00:00:00");
            qvo.setEndDate(DateUtil.getLastMonthDay()+" 23:59:59");
        } else if (qvo.getFlag()==2) {
            qvo.setStartDate(DateUtil.getMonthDate(new Date(),-6)+" 00:00:00");
            qvo.setEndDate(DateUtil.getStringDateShort()+" 23:59:59");
        }else if (qvo.getFlag()==3){
            qvo.setStartDate(DateUtil.getCurrentYearStartTime()+" 00:00:00");
            qvo.setEndDate(DateUtil.getCurrentYearEndTime() +" 23:59:59");
        }
        // 计算上一个周期  开始时间period[0] 、结束时间period[1]
        String[] period = calculatePreviousPeriod(qvo.getStartDate(), qvo.getEndDate());
        //计算去年同期时间段 开始时间periodYear[0] 、结束时间periodYear[1]
        String[] periodYear = calculatePreviousYearPeriod(qvo.getStartDate(), qvo.getEndDate());
//        List<SaveModel> model01 = elasticsearchUtil.findListDateQuotaLevel1(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "3", SaveModel.timeLevel_ZL, null, null);
//        List<SaveModel> model02 = elasticsearchUtil.findListDateQuotaLevel1(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "21", SaveModel.timeLevel_ZL, null, null);
        //到结束时间的增量
        SaveModel model01 = elasticsearchUtil.findOneDateQuotaLevel0(qvo.getEndDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "3", "2");//查询诊查费
        SaveModel model02 = elasticsearchUtil.findOneDateQuotaLevel0(qvo.getEndDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "21", "2");//处方费
@ -6010,6 +6024,17 @@ public class StatisticsEsService {
     * {"index":5,"startDate":"2023-07-01","endDate":"2023-07-19","area":"350200","level":2,"level2_type":4,"interval":1}
     */
    public JSONObject getKindsConsultCount(ScreenQvo qvo) throws Exception {
        if (qvo.getFlag()==1){
            qvo.setStartDate( DateUtil.getFirstMonthDay() +" 00:00:00");
            qvo.setEndDate(DateUtil.getLastMonthDay()+" 23:59:59");
        } else if (qvo.getFlag()==2) {
            qvo.setStartDate(DateUtil.getMonthDate(new Date(),-6)+" 00:00:00");
            qvo.setEndDate(DateUtil.getStringDateShort()+" 23:59:59");
        }else if (qvo.getFlag()==3){
            qvo.setStartDate(DateUtil.getCurrentYearStartTime()+" 00:00:00");
            qvo.setEndDate(DateUtil.getCurrentYearEndTime() +" 23:59:59");
        }
        //专家咨询数量 = 图文咨询 + 视频咨询
        //协同门诊
        List<SaveModel> xt_list = elasticsearchUtil.findDateQuotaLevel1(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "14", SaveModel.timeLevel_ZL, "12", null, "4");
@ -6063,22 +6088,37 @@ public class StatisticsEsService {
     */
    public JSONObject getConsultAndPrescriptionList(ScreenQvo qvo) throws Exception {
        JSONObject result = new JSONObject();
        if (qvo.getFlag()==1){
            //本月
            qvo.setStartDate( DateUtil.getFirstMonthDay() +" 00:00:00");
            qvo.setEndDate(DateUtil.getLastMonthDay()+" 23:59:59");
        } else if (qvo.getFlag()==2) {
            //近半年
            qvo.setStartDate(DateUtil.getMonthDate(new Date(),-6)+" 00:00:00");
            qvo.setEndDate(DateUtil.getStringDateShort()+" 23:59:59");
        }else if (qvo.getFlag()==3){
            //全年
            qvo.setStartDate(DateUtil.getCurrentYearStartTime()+" 00:00:00");
            qvo.setEndDate(DateUtil.getCurrentYearEndTime() +" 23:59:59");
        }
        HashMap<String, String> map = new HashMap<>();
        map.put("notReceivedTreatment", "0"); //未接诊
        map.put("receivedTreatment", "1"); //已接诊
        map.put("patientCanceled", "-1"); //患者取消
        //按天分组
        if ("1".equals(qvo.getTimeType())) {
        //按月分组
        if ("2".equals(String.valueOf(qvo.getFlag()))|| "3".equals(String.valueOf(qvo.getFlag())) ) {
            for (Map.Entry<String, String> entry : map.entrySet()) {
                String key = entry.getKey();
                String value = entry.getValue();
                JSONArray array01 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "12", "9", SaveModel.timeLevel_ZL, value);//图文复诊
                JSONArray array02 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "16", "16", SaveModel.timeLevel_ZL, value);//视频复诊
                JSONArray array03 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "14", "12", SaveModel.timeLevel_ZL, value);//社区协诊
                JSONArray array04 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "12", "1", SaveModel.timeLevel_ZL, value);//图文咨询
                JSONArray array05 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "16", "17", SaveModel.timeLevel_ZL, value);//视频咨询
                JSONArray array01 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "12", "9", SaveModel.timeLevel_ZL, value);//图文复诊
                JSONArray array02 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "16", "16", SaveModel.timeLevel_ZL, value);//视频复诊
                JSONArray array03 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "14", "12", SaveModel.timeLevel_ZL, value);//社区协诊
                JSONArray array04 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "12", "1", SaveModel.timeLevel_ZL, value);//图文咨询
                JSONArray array05 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "16", "17", SaveModel.timeLevel_ZL, value);//视频咨询
                //数据处理进行合并相加
                ArrayList<JSONArray> list = new ArrayList<>();
@ -6088,24 +6128,22 @@ public class StatisticsEsService {
                list.add(array04);
                list.add(array05);
                JSONArray arrayAll = jsonArrayCalculation(list);
                //数据转化
                result.put(key, addWeekdayToJSONArray(arrayAll));
                result.put(key, arrayAll);
            }
            //算出每天的开方量
            JSONArray array = dateTotalStatistics3(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "2", null, SaveModel.timeLevel_ZL, null);
            result.put("prescriptionVolume", addWeekdayToJSONArray(array));
        }
        //按月分组
        if ("3".equals(qvo.getTimeType())) {
            //算出开方量
            JSONArray array = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "2", null, SaveModel.timeLevel_ZL, null);
            result.put("prescriptionVolume", array);
        }else {
            //按天分组
            for (Map.Entry<String, String> entry : map.entrySet()) {
                String key = entry.getKey();
                String value = entry.getValue();
                JSONArray array01 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "12", "9", SaveModel.timeLevel_ZL, value);//图文复诊
                JSONArray array02 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "16", "16", SaveModel.timeLevel_ZL, value);//视频复诊
                JSONArray array03 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "14", "12", SaveModel.timeLevel_ZL, value);//社区协诊
                JSONArray array04 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "12", "1", SaveModel.timeLevel_ZL, value);//图文咨询
                JSONArray array05 = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "16", "17", SaveModel.timeLevel_ZL, value);//视频咨询
                JSONArray array01 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "12", "9", SaveModel.timeLevel_ZL, value);//图文复诊
                JSONArray array02 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "16", "16", SaveModel.timeLevel_ZL, value);//视频复诊
                JSONArray array03 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "14", "12", SaveModel.timeLevel_ZL, value);//社区协诊
                JSONArray array04 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "12", "1", SaveModel.timeLevel_ZL, value);//图文咨询
                JSONArray array05 = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "16", "17", SaveModel.timeLevel_ZL, value);//视频咨询
                //数据处理进行合并相加
                ArrayList<JSONArray> list = new ArrayList<>();
@ -6115,11 +6153,12 @@ public class StatisticsEsService {
                list.add(array04);
                list.add(array05);
                JSONArray arrayAll = jsonArrayCalculation(list);
                result.put(key, arrayAll);
                //数据转化
                result.put(key, addWeekdayToJSONArray(arrayAll));
            }
            //算出开方量
            JSONArray array = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "2", null, SaveModel.timeLevel_ZL, null);
            result.put("prescriptionVolume", array);
            //算出每天的开方量
            JSONArray array = dateTotalStatistics3(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), "2", null, SaveModel.timeLevel_ZL, null);
            result.put("prescriptionVolume", addWeekdayToJSONArray(array));
        }
        return result;
    }
@ -6129,23 +6168,35 @@ public class StatisticsEsService {
     * 诊查费(21) + 处方费(3)
     */
    public JSONObject getDrugAndExaminationFeeList(ScreenQvo qvo) throws Exception {
        JSONObject result = new JSONObject();
        if (qvo.getFlag()==1){
            //本月
            qvo.setStartDate( DateUtil.getFirstMonthDay() +" 00:00:00");
            qvo.setEndDate(DateUtil.getLastMonthDay()+" 23:59:59");
        } else if (qvo.getFlag()==2) {
            //近半年
            qvo.setStartDate(DateUtil.getMonthDate(new Date(),-6)+" 00:00:00");
            qvo.setEndDate(DateUtil.getStringDateShort()+" 23:59:59");
        }else if (qvo.getFlag()==3){
            //全年
            qvo.setStartDate(DateUtil.getCurrentYearStartTime()+" 00:00:00");
            qvo.setEndDate(DateUtil.getCurrentYearEndTime() +" 23:59:59");
        }
        HashMap<String, String> map = new HashMap<>();
        JSONObject result = new JSONObject();
        map.put("drugFree", "3"); //诊查费
        map.put("ExaminationFee", "1"); //处方费
        for (Map.Entry<String, String> entry : map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            //按日
            if ("1".equals(qvo.getTimeType())) {
                JSONArray array = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), value, null, SaveModel.timeLevel_ZL, null);
                result.put(key, addWeekdayToJSONArray(array));
            }
            //按月
            if ("3".equals(qvo.getTimeType())) {
            if ("2".equals(String.valueOf(qvo.getFlag()))|| "3".equals(String.valueOf(qvo.getFlag())) ) {
                JSONArray array = monthTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), value, null, SaveModel.timeLevel_ZL, null);
                result.put(key, array);
            }else {
                //按日
                JSONArray array = dateTotalStatistics2(qvo.getStartDate(), qvo.getEndDate(), qvo.getArea(), qvo.getLevel(), value, null, SaveModel.timeLevel_ZL, null);
                result.put(key, addWeekdayToJSONArray(array));
            }
        }
@ -6168,6 +6219,19 @@ public class StatisticsEsService {
     */
    public JSONObject getDeptOrDoctorVolumeList(ScreenQvo qvo) throws Exception {
        JSONObject result = new JSONObject();
        if (qvo.getFlag()==1){
            //本月
            qvo.setStartDate( DateUtil.getFirstMonthDay() +" 00:00:00");
            qvo.setEndDate(DateUtil.getLastMonthDay()+" 23:59:59");
        } else if (qvo.getFlag()==2) {
            //近半年
            qvo.setStartDate(DateUtil.getMonthDate(new Date(),-6)+" 00:00:00");
            qvo.setEndDate(DateUtil.getStringDateShort()+" 23:59:59");
        }else if (qvo.getFlag()==3){
            //全年
            qvo.setStartDate(DateUtil.getCurrentYearStartTime()+" 00:00:00");
            qvo.setEndDate(DateUtil.getCurrentYearEndTime() +" 23:59:59");
        }
        //查科室
        if ("4".equals(String.valueOf(qvo.getLevel()))) {
            //问诊总数
@ -6261,6 +6325,19 @@ public class StatisticsEsService {
    public JSONObject getAllHospitalDetails(ScreenQvo qvo) throws Exception {
        JSONObject result = new JSONObject();
        List<Map<String, Object>> resultList = null;
        if (qvo.getFlag()==1){
            //本月
            qvo.setStartDate( DateUtil.getFirstMonthDay() +" 00:00:00");
            qvo.setEndDate(DateUtil.getLastMonthDay()+" 23:59:59");
        } else if (qvo.getFlag()==2) {
            //近半年
            qvo.setStartDate(DateUtil.getMonthDate(new Date(),-6)+" 00:00:00");
            qvo.setEndDate(DateUtil.getStringDateShort()+" 23:59:59");
        }else if (qvo.getFlag()==3){
            //全年
            qvo.setStartDate(DateUtil.getCurrentYearStartTime()+" 00:00:00");
            qvo.setEndDate(DateUtil.getCurrentYearEndTime() +" 23:59:59");
        }
        //查科室
        if ("4".equals(String.valueOf(qvo.getLevel()))) {
            JSONObject jsonObject = getDeptOrDoctorVolumeList(qvo);//问诊量、接诊量、未接诊量、接诊率
@ -6286,23 +6363,39 @@ public class StatisticsEsService {
        return result;
    }
    /**
     * 获取全部的科室和医生数据
     */
    public List getAllDeptAndDoctorDetails(ScreenQvo qvo) {
        return null;
    }
    /**
     * 补充数据
     */
    private List<Map<String, Object>> mergeListsToList(List<Map<String, Object>> resultList, List<SaveModel> model01, List<SaveModel> model02, List<SaveModel> model03, String type) {
        for (Map<String, Object> map : resultList) {
            String name = (String) map.get("name");
            String key ="";
            if ("1".equals(type)) {
                key= (String) map.get("deptName");
            }else {
                key= (String) map.get("doctorCode");
            }
            //处方费
            for (SaveModel model : model01) {
                if ("1".equals(type)) {
                    String deptName = model.getDeptName();
                    if (deptName.equals(name)) {
                    if (deptName.equals(key)) {
                        map.put("free_prescription", model.getResult1().doubleValue());
                    }
                }
                if ("2".equals(type)) {
                    String doctorName = model.getDoctorName();
                    if (doctorName.equals(name)) {
                    String doctorCode = model.getDoctor();
                    if (doctorCode.equals(key)) {
                        map.put("free_prescription", model.getResult1().doubleValue());
                    }
                }
@ -6311,13 +6404,13 @@ public class StatisticsEsService {
            for (SaveModel model : model02) {
                if ("1".equals(type)) {
                    String deptName = model.getDeptName();
                    if (deptName.equals(name)) {
                    if (deptName.equals(key)) {
                        map.put("free_exam", model.getResult1().doubleValue());
                    }
                }
                if ("2".equals(type)) {
                    String doctorName = model.getDoctorName();
                    if (doctorName.equals(name)) {
                    String doctorCode = model.getDoctor();
                    if (doctorCode.equals(key)) {
                        map.put("free_exam", model.getResult1().doubleValue());
                    }
                }
@ -6326,13 +6419,13 @@ public class StatisticsEsService {
            for (SaveModel model : model03) {
                if ("1".equals(type)) {
                    String deptName = model.getDeptName();
                    if (deptName.equals(name)) {
                    if (deptName.equals(key)) {
                        map.put("prescription_volume", model.getResult1().doubleValue());
                    }
                }
                if ("2".equals(type)) {
                    String doctorName = model.getDoctorName();
                    if (doctorName.equals(name)) {
                    String doctorCode = model.getDoctor();
                    if (doctorCode.equals(key)) {
                        map.put("prescription_volume", model.getResult1().doubleValue());
                    }
                }
@ -6379,12 +6472,33 @@ public class StatisticsEsService {
            map.put("jzl", jzl + "%");//接诊率
        }
        if ("1".equals(type)) {
            //科室
            for (Map<String, Object> map : sortedMaps) {
                Object name = map.remove("name"); // 删除旧的键值对,并获取其值
                Object code = map.remove("code");
                map.put("deptName", name); // 添加新的键值对
                map.put("deptCode", code);
                map.put("doctorName", "-");
                map.put("doctorCode", "-");
            }
            //排序
            sortedMaps.sort(Comparator.comparingInt(map -> (int) map.get("total")));
            Collections.reverse(sortedMaps);
        }
        if ("2".equals(type)) {
            // todo 查出所有医生的数据 赋值科室
            //医生
            for (Map<String, Object> map : sortedMaps) {
                Object name = map.remove("name"); // 删除旧的键值对,并获取其值
                Object code = map.remove("code");
                map.put("doctorName", name); // 添加新的键值对
                map.put("doctorCode", code);
                //补充字段
                map.put("deptCode", "");
                map.put("deptName", "");
                map.put("photo", "");
            }
            // 查出所有医生的数据 赋值科室
            String sql = " SELECT\t`id`,\t`name`,\tphoto,\tvisit_dept \"deptCode\",visit_dept_name \"deptName\" \n" +
                    "FROM\n" +
                    "\tbase.base_doctor \n" +
@ -6393,10 +6507,8 @@ public class StatisticsEsService {
                    "\tAND visit_dept IS NOT NULL \n";
            List<Map<String, Object>> doctorList = jdbcTemplate.queryForList(sql);
            for (Map<String, Object> map : sortedMaps) {
                map.put("deptCode", "");
                map.put("deptName", "");
                map.put("photo", "");
                String code = String.valueOf(map.get("code"));
                String code = String.valueOf(map.get("doctorCode"));
                for (Map<String, Object> doctorMap : doctorList) {
                    if (code.equals(String.valueOf(doctorMap.get("id")))) {
                        map.put("deptCode", String.valueOf(doctorMap.get("deptCode")));
@ -6405,8 +6517,6 @@ public class StatisticsEsService {
                    }
                }
            }
            sortedMaps.sort(Comparator.comparingInt(map -> (int) map.get("haveReceiveCount")));
            Collections.reverse(sortedMaps);
        }
@ -6583,4 +6693,5 @@ public class StatisticsEsService {
    }
}

+ 12 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/statistics/ScreenQvo.java

@ -18,7 +18,18 @@ public class ScreenQvo {
   private int level;//等级
   private String index;//指标
   private String timeType;//查询时间范围 1自定义时间 2 本月  3 近半年 4 全年
   private int flag;//1本月 2近半年 3全年
   private String timeType;//查询时间范围 1 按天  3按月
   public int getFlag() {
      return flag;
   }
   public void setFlag(int flag) {
      this.flag = flag;
   }
   public String getStartDate() {
      return startDate;

+ 164 - 149
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/statistics/EsStatisticsEndpoint.java

@ -5,14 +5,11 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.es.service.StatisticsEsService;
import com.yihu.jw.restmodel.hospital.statistics.ScreenQvo;
import com.yihu.jw.es.util.SaveModel;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -24,10 +21,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
/**
@ -41,16 +37,14 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    Logger logger = LoggerFactory.getLogger(EsStatisticsEndpoint.class);
    @Autowired
    private StatisticsEsService statisticsEsService;
    /**
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level       2 市  3区  4医院 5、科室 6医生
     * @param index
     * @param level2_type 2 市  3区  4医院 5、科室 6医生
     * @return
@ -63,16 +57,16 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false)int interval,
            @RequestParam(required = false) int interval,
            @RequestParam(required = false) String level2_type) {
            //新版与旧版统计适配
        //新版与旧版统计适配
        JSONObject result = new JSONObject();
        logger.info("index:"+index+" and level2_type:"+level2_type+" and level:"+level);
        logger.info("index:" + index + " and level2_type:" + level2_type + " and level:" + level);
        try {
            if (index.equalsIgnoreCase("3,21")||index.equalsIgnoreCase("3")||index.equalsIgnoreCase("21")){
                result= statisticsEsService.getOutPatientPriceLine(startDate, endDate, area, level, index, interval,level2_type);
            }else {
                result= statisticsEsService.getOutPatientLine(startDate, endDate, area, level, index, interval,level2_type);
            if (index.equalsIgnoreCase("3,21") || index.equalsIgnoreCase("3") || index.equalsIgnoreCase("21")) {
                result = statisticsEsService.getOutPatientPriceLine(startDate, endDate, area, level, index, interval, level2_type);
            } else {
                result = statisticsEsService.getOutPatientLine(startDate, endDate, area, level, index, interval, level2_type);
            }
            return success(result);
        } catch (Exception e) {
@ -84,11 +78,10 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level       2 市  3区  4医院 5、科室 6医生
     * @param index
     * @param level2_type 2 市  3区  4医院 5、科室 6医生
     * @return
@ -101,23 +94,23 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false)int interval,
            @RequestParam(required = false) int interval,
            @RequestParam(required = false) String level2_type) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getPrescriptionLine(startDate, endDate, area, level, index, interval,level2_type);
            result = statisticsEsService.getPrescriptionLine(startDate, endDate, area, level, index, interval, level2_type);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    /**
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level       2 市  3区  4医院 5、科室 6医生
     * @param index
     * @param level2_type 2 市  3区  4医院 5、科室 6医生
     * @return
@ -130,23 +123,23 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false)int interval,
            @RequestParam(required = false) int interval,
            @RequestParam(required = false) String level2_type) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getPrescriptionLineBy(startDate, endDate, area, level, index, interval,level2_type);
            result = statisticsEsService.getPrescriptionLineBy(startDate, endDate, area, level, index, interval, level2_type);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return success(result);
    }
    /**
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level       2 市  3区  4医院 5、科室 6医生
     * @param index
     * @param level2_type 2 市  3区  4医院 5、科室 6医生
     * @return
@ -159,11 +152,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false)int interval,
            @RequestParam(required = false) int interval,
            @RequestParam(required = false) String level2_type) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getPrescriptionLineByType(startDate, endDate, area, level, index, interval,level2_type);
            result = statisticsEsService.getPrescriptionLineByType(startDate, endDate, area, level, index, interval, level2_type);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -192,7 +185,6 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.outPatientCircular)
    @ApiOperation(value = "门诊类别统计-圆形")
    public ObjEnvelop getOutPatientCircular(
@ -215,6 +207,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 门诊统计-分级
     *
     * @param startDate
     * @param endDate
     * @param area
@ -246,10 +239,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 问诊量统计-类别曲线
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level       2 市  3区  4医院 5、科室 6医生
     * @param index
     * @param level2_type 2 市  3区  4医院 5、科室 6医生
     * @return
@ -266,7 +260,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
        String[] indexes = index.split(",");
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getOutPatientTypeline(startDate, endDate, area, level, index,level2_type);
            result = statisticsEsService.getOutPatientTypeline(startDate, endDate, area, level, index, level2_type);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -285,7 +279,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
                                          @RequestParam(required = true) Integer flag) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getDoctorStatistics(startDate,endDate,area,level,index,level2_type,flag);
            result = statisticsEsService.getDoctorStatistics(startDate, endDate, area, level, index, level2_type, flag);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -304,7 +298,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
                                     @RequestParam(required = true) Integer flag) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getDoctorTotal(startDate,endDate,area,level,index,level2_type,flag);
            result = statisticsEsService.getDoctorTotal(startDate, endDate, area, level, index, level2_type, flag);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -314,15 +308,15 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.doctorStatictisExcel)
    @ApiOperation(value = "人数统计-excel表")
    public ObjEnvelop getDoctorStatisticsExcel(@RequestParam(required = true) String startDate,
                                     @RequestParam(required = true) String endDate,
                                     @RequestParam(required = true) String area,
                                     @RequestParam(required = true) int level,
                                     @RequestParam(required = true) String index,
                                     @RequestParam(required = false) String level2_type,
                                     @RequestParam(required = true) Integer flag) {
                                               @RequestParam(required = true) String endDate,
                                               @RequestParam(required = true) String area,
                                               @RequestParam(required = true) int level,
                                               @RequestParam(required = true) String index,
                                               @RequestParam(required = false) String level2_type,
                                               @RequestParam(required = true) Integer flag) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getDoctorStatisticsExcel(startDate,endDate,area,level,index,level2_type,flag);
            result = statisticsEsService.getDoctorStatisticsExcel(startDate, endDate, area, level, index, level2_type, flag);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -332,10 +326,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 专科咨询列表
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.specialConsultHead)
@ -359,10 +354,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 专科咨询列表
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.specialConsultLine)
@ -373,12 +369,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false)int interval,
            @RequestParam(required = false) int interval,
            @RequestParam(required = false) String level2_type) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getSpecialConsultLine(startDate, endDate, area, level, index, interval,level2_type);
            result = statisticsEsService.getSpecialConsultLine(startDate, endDate, area, level, index, interval, level2_type);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -389,11 +385,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 专科咨询列表
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param lowLevel 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @param lowLevel  2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.specialConsultExcel)
@ -407,7 +404,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getConsultingStatisticsList(startDate, endDate,level,area,lowLevel);
            result = statisticsEsService.getConsultingStatisticsList(startDate, endDate, level, area, lowLevel);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -416,13 +413,13 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    }
    /**
     * 服务评价总平均分
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.scoreHead)
@ -447,10 +444,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 服务评价分析曲线
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.scoreLine)
@ -461,12 +459,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false)int interval,
            @RequestParam(required = false) int interval,
            @RequestParam(required = false) String level2_type) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getScoreLine(startDate, endDate, area, level, index, interval,level2_type);
            result = statisticsEsService.getScoreLine(startDate, endDate, area, level, index, interval, level2_type);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -477,11 +475,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 服务评价分析列表
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param lowLevel 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @param lowLevel  2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.scoreList)
@ -495,7 +494,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getScoreList(startDate, endDate,level,area,lowLevel);
            result = statisticsEsService.getScoreList(startDate, endDate, level, area, lowLevel);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -515,7 +514,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getScheduleTotal(startDate, endDate,index,level,area);
            result = statisticsEsService.getScheduleTotal(startDate, endDate, index, level, area);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -532,11 +531,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = true)Integer interval) {
            @RequestParam(required = true) Integer interval) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getScheduleLine(startDate, endDate,area,level,index,interval);
            result = statisticsEsService.getScheduleLine(startDate, endDate, area, level, index, interval);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -552,11 +551,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = true)String levelCode) {
            @RequestParam(required = true) String levelCode) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getScheduleList(startDate, endDate,index,level,area,levelCode);
            result = statisticsEsService.getScheduleList(startDate, endDate, index, level, area, levelCode);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -567,10 +566,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 咨询列表
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.consultHead)
@ -585,7 +585,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
        //新版与旧版统计适配
        JSONObject result = new JSONObject();
        try {
            result = statisticsEsService.getConsultHead(startDate, endDate, area, level, index,lowCode);
            result = statisticsEsService.getConsultHead(startDate, endDate, area, level, index, lowCode);
        } catch (Exception e) {
            e.printStackTrace();
@ -596,10 +596,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 咨询列表
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.consultLine)
@ -610,12 +611,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false)int interval,
            @RequestParam(required = false) int interval,
            @RequestParam(required = false) String level2_type) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getConsultLine(startDate, endDate, area, level, index, interval,level2_type);
            result = statisticsEsService.getConsultLine(startDate, endDate, area, level, index, interval, level2_type);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -626,11 +627,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 咨询列表
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5、科室 6医生
     * @param lowLevel 2 市  3区  4医院 5、科室 6医生
     * @param level     2 市  3区  4医院 5、科室 6医生
     * @param lowLevel  2 市  3区  4医院 5、科室 6医生
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.consultList)
@ -645,7 +647,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.getConsultingList(startDate, endDate,level,area,lowLevel,index);
            result = statisticsEsService.getConsultingList(startDate, endDate, level, area, lowLevel, index);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -656,11 +658,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * app端首页门诊量统计
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level
     * @param index 5咨询量,6专家咨询,11图文复诊,13专科协同,15视频复诊
     * @param index     5咨询量,6专家咨询,11图文复诊,13专科协同,15视频复诊
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.consultTotalApp)
@ -711,11 +714,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * app端首页门诊量统计-曲线图
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level
     * @param index 5
     * @param index       5
     * @param interval
     * @param level2_type
     * @return
@ -728,11 +732,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = true)Integer interval,
            @RequestParam(required = false)String level2_type) {
            @RequestParam(required = true) Integer interval,
            @RequestParam(required = false) String level2_type) {
        JSONObject result = new JSONObject();
        try {
            result = statisticsEsService.getConsultLineApp(startDate, endDate, area, level, index,interval,level2_type);
            result = statisticsEsService.getConsultLineApp(startDate, endDate, area, level, index, interval, level2_type);
        } catch (Exception e) {
            e.printStackTrace();
@ -748,10 +752,10 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = true)String lowLevel) {
            @RequestParam(required = true) String lowLevel) {
        JSONObject result = new JSONObject();
        try {
            result = statisticsEsService.getConsultListApp(startDate, endDate,level,area, lowLevel,index);
            result = statisticsEsService.getConsultListApp(startDate, endDate, level, area, lowLevel, index);
        } catch (Exception e) {
            e.printStackTrace();
@ -761,12 +765,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level
     * @param index 专家咨询6,图文复诊11,专家协同13,视频复诊15
     * @param index       专家咨询6,图文复诊11,专家协同13,视频复诊15
     * @param interval
     * @param level2_type
     * @return
@ -779,12 +782,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = true)Integer interval,
            @RequestParam(required = false)String  lowCode,
            @RequestParam(required = false)String level2_type) {
            @RequestParam(required = true) Integer interval,
            @RequestParam(required = false) String lowCode,
            @RequestParam(required = false) String level2_type) {
        JSONObject result = new JSONObject();
        try {
            result = statisticsEsService.getConsultLinePC(startDate, endDate, area, level, index,interval,level2_type,lowCode);
            result = statisticsEsService.getConsultLinePC(startDate, endDate, area, level, index, interval, level2_type, lowCode);
        } catch (Exception e) {
            e.printStackTrace();
@ -793,12 +796,13 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    }
    /**
     *pc端首页门诊量统计-表格
     * pc端首页门诊量统计-表格
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level
     * @param index 专家咨询6,图文复诊11,专家协同13,视频复诊15
     * @param index     专家咨询6,图文复诊11,专家协同13,视频复诊15
     * @return
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.consultListPC)
@ -810,10 +814,10 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false) String lowCode,
            @RequestParam(required = true)String lowLevel) {
            @RequestParam(required = true) String lowLevel) {
        JSONObject result = new JSONObject();
        try {
            result = statisticsEsService.getConsultingListPC(startDate, endDate, level,area,lowLevel, index,lowCode);
            result = statisticsEsService.getConsultingListPC(startDate, endDate, level, area, lowLevel, index, lowCode);
        } catch (Exception e) {
            e.printStackTrace();
@ -823,11 +827,12 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * app端首页数据统计
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level
     * @param index 6专家,13协同,11、在线复诊
     * @param index     6专家,13协同,11、在线复诊
     * @param timeLevel
     * @return
     */
@ -839,10 +844,10 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = true)String timeLevel) {
            @RequestParam(required = true) String timeLevel) {
        JSONObject result = new JSONObject();
        try {
            result = statisticsEsService.getIndexTotalApp(startDate, endDate,area, level,index,timeLevel);
            result = statisticsEsService.getIndexTotalApp(startDate, endDate, area, level, index, timeLevel);
        } catch (Exception e) {
            e.printStackTrace();
@ -852,11 +857,10 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5科室 6医生
     * @param level     2 市  3区  4医院 5科室 6医生
     * @param index
     * @return
     */
@ -870,7 +874,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String index) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.appIndexHead(startDate, endDate, area, level, index);
            result = statisticsEsService.appIndexHead(startDate, endDate, area, level, index);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -879,11 +883,10 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    }
    /**
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5科室 6医生
     * @param level     2 市  3区  4医院 5科室 6医生
     * @param index
     * @return
     */
@ -897,7 +900,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = false) String index) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.appIndexCenter(startDate, endDate, area, level, index);
            result = statisticsEsService.appIndexCenter(startDate, endDate, area, level, index);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -908,10 +911,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * app收入统计-头部
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5科室 6医生
     * @param level     2 市  3区  4医院 5科室 6医生
     * @param index
     * @return
     */
@ -925,7 +929,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String index) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.appPriceHead(startDate, endDate, area, level, index);
            result = statisticsEsService.appPriceHead(startDate, endDate, area, level, index);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -936,10 +940,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * app收入统计-头部
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5科室 6医生
     * @param level     2 市  3区  4医院 5科室 6医生
     * @param index
     * @return
     */
@ -953,7 +958,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = true) String index) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.appPrescriptionHead(startDate, endDate, area, level, index);
            result = statisticsEsService.appPrescriptionHead(startDate, endDate, area, level, index);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -962,10 +967,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * app中间饼状图-中部
     *
     * @param startDate
     * @param endDate
     * @param area
     * @param level 2 市  3区  4医院 5科室 6医生
     * @param level     2 市  3区  4医院 5科室 6医生
     * @param index
     * @return
     */
@ -980,7 +986,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(required = false) String flag) {
        JSONObject result = new JSONObject();
        try {
            result= statisticsEsService.appCenterCircular(startDate, endDate, area, level, index,flag);
            result = statisticsEsService.appCenterCircular(startDate, endDate, area, level, index, flag);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -992,18 +998,18 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = " 文章头部统计")
    public ObjEnvelop getArticleTotalHead(
            @ApiParam(name = "startDate", value = "开始时间", required = false)
            @RequestParam(value = "startDate",required = false) String startDate,
            @RequestParam(value = "startDate", required = false) String startDate,
            @ApiParam(name = "endDate", value = "结束时间", required = false)
            @RequestParam(value = "endDate",required = false) String endDate,
            @RequestParam(value = "endDate", required = false) String endDate,
            @ApiParam(name = "area", value = "区域编码 如 level2 area传市编码", required = true)
            @RequestParam(value = "area",required = true) String area,
            @RequestParam(value = "area", required = true) String area,
            @ApiParam(name = "level", value = "2 市  3区  4医院 5、科室 6医生", required = true)
            @RequestParam(value = "level",required = true) int level,
            @RequestParam(value = "level", required = true) int level,
            @ApiParam(name = "flag", value = "0自定义 1本月2近半年3本年", required = true)
            @RequestParam(value = "flag",required = true) Integer flag) {
            @RequestParam(value = "flag", required = true) Integer flag) {
        JSONObject result = new JSONObject();
        try {
            result = statisticsEsService.getArticleTotalHead(flag,startDate, endDate, area, level);
            result = statisticsEsService.getArticleTotalHead(flag, startDate, endDate, area, level);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -1015,20 +1021,20 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = " 发布量柱状图")
    public ListEnvelop getArticleTotalHead(
            @ApiParam(name = "startDate", value = "开始时间", required = false)
            @RequestParam(value = "startDate",required = false) String startDate,
            @RequestParam(value = "startDate", required = false) String startDate,
            @ApiParam(name = "endDate", value = "结束时间", required = false)
            @RequestParam(value = "endDate",required = false) String endDate,
            @RequestParam(value = "endDate", required = false) String endDate,
            @ApiParam(name = "area", value = "区域编码 如 level2 area传市编码", required = true)
            @RequestParam(value = "area",required = true) String area,
            @RequestParam(value = "area", required = true) String area,
            @ApiParam(name = "level", value = "2 市  3区  4医院 5、科室 6医生", required = true)
            @RequestParam(value = "level",required = true) int level,
            @RequestParam(value = "level", required = true) int level,
            @ApiParam(name = "lowLevel", value = "下一级区域等级   2 市  3区  4医院 5、科室 6医生", required = true)
            @RequestParam(value = "lowLevel",required = true) String lowLevel,
            @RequestParam(value = "lowLevel", required = true) String lowLevel,
            @ApiParam(name = "flag", value = "0自定义 1本月2近半年3本年", required = true)
            @RequestParam(value = "flag",required = true) Integer flag) {
            @RequestParam(value = "flag", required = true) Integer flag) {
        try {
            return success(statisticsEsService.getArticlePublishList(flag,startDate, endDate,level,area,lowLevel));
            return success(statisticsEsService.getArticlePublishList(flag, startDate, endDate, level, area, lowLevel));
        } catch (Exception e) {
            e.printStackTrace();
            return failedListEnvelopException(e);
@ -1040,18 +1046,18 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = " 文章互动情况")
    public ObjEnvelop getArticleOperateDateLine(
            @ApiParam(name = "startDate", value = "开始时间", required = false)
            @RequestParam(value = "startDate",required = false) String startDate,
            @RequestParam(value = "startDate", required = false) String startDate,
            @ApiParam(name = "endDate", value = "结束时间", required = false)
            @RequestParam(value = "endDate",required = false) String endDate,
            @RequestParam(value = "endDate", required = false) String endDate,
            @ApiParam(name = "area", value = "区域编码 如 level2 area传市编码", required = true)
            @RequestParam(value = "area",required = true) String area,
            @RequestParam(value = "area", required = true) String area,
            @ApiParam(name = "level", value = "2 市  3区  4医院 5、科室 6医生", required = true)
            @RequestParam(value = "level",required = true) int level,
            @RequestParam(value = "level", required = true) int level,
            @ApiParam(name = "flag", value = "0自定义 1本月2近半年3本年", required = true)
            @RequestParam(value = "flag",required = true) Integer flag) {
            @RequestParam(value = "flag", required = true) Integer flag) {
        try {
            return success(statisticsEsService.getArticleOperateDateLine(flag,startDate, endDate,level,area));
            return success(statisticsEsService.getArticleOperateDateLine(flag, startDate, endDate, level, area));
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException(e);
@ -1063,22 +1069,22 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = " 文章全院明细")
    public Envelop getArticleExcel(
            @ApiParam(name = "startDate", value = "开始时间", required = false)
            @RequestParam(value = "startDate",required = false) String startDate,
            @RequestParam(value = "startDate", required = false) String startDate,
            @ApiParam(name = "endDate", value = "结束时间", required = false)
            @RequestParam(value = "endDate",required = false) String endDate,
            @RequestParam(value = "endDate", required = false) String endDate,
            @ApiParam(name = "area", value = "区域编码 如 level2 area传市编码", required = true)
            @RequestParam(value = "area",required = true) String area,
            @RequestParam(value = "area", required = true) String area,
            @ApiParam(name = "level", value = "2 市  3区  4医院 5、科室 6医生", required = true)
            @RequestParam(value = "level",required = true) int level,
            @RequestParam(value = "level", required = true) int level,
            @ApiParam(name = "flag", value = "0自定义 1本月2近半年3本年", required = true)
            @RequestParam(value = "flag",required = true) Integer flag,
            @RequestParam(value = "flag", required = true) Integer flag,
            @ApiParam(name = "lowLevel", value = "下一级区域等级   2 市  3区  4医院 5、科室 6医生", required = false)
            @RequestParam(value = "lowLevel",required = false) String lowLevel,
            @RequestParam(value = "lowLevel", required = false) String lowLevel,
            @ApiParam(name = "lowCode", value = "", required = false)
            @RequestParam(value = "lowCode",required = false) String lowCode) {
            @RequestParam(value = "lowCode", required = false) String lowCode) {
        try {
            return success(statisticsEsService.getArticleExcel(flag,startDate, endDate,level,area,lowLevel,lowCode));
            return success(statisticsEsService.getArticleExcel(flag, startDate, endDate, level, area, lowLevel, lowCode));
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException(e);
@ -1090,22 +1096,22 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = " 文章类型统计")
    public Envelop getArticleTypeCircle(
            @ApiParam(name = "startDate", value = "开始时间", required = false)
            @RequestParam(value = "startDate",required = false) String startDate,
            @RequestParam(value = "startDate", required = false) String startDate,
            @ApiParam(name = "endDate", value = "结束时间", required = false)
            @RequestParam(value = "endDate",required = false) String endDate,
            @RequestParam(value = "endDate", required = false) String endDate,
            @ApiParam(name = "area", value = "区域编码 如 level2 area传市编码", required = true)
            @RequestParam(value = "area",required = true) String area,
            @RequestParam(value = "area", required = true) String area,
            @ApiParam(name = "level", value = "2 市  3区  4医院 5、科室 6医生", required = true)
            @RequestParam(value = "level",required = true) int level,
            @RequestParam(value = "level", required = true) int level,
            @ApiParam(name = "flag", value = "0自定义 1本月2近半年3本年", required = true)
            @RequestParam(value = "flag",required = true) Integer flag,
            @RequestParam(value = "flag", required = true) Integer flag,
            @ApiParam(name = "lowLevel", value = "下一级区域等级   2 市  3区  4医院 5、科室 6医生", required = false)
            @RequestParam(value = "lowLevel",required = false) String lowLevel,
            @RequestParam(value = "lowLevel", required = false) String lowLevel,
            @ApiParam(name = "lowCode", value = "", required = false)
            @RequestParam(value = "lowCode",required = false) String lowCode) {
            @RequestParam(value = "lowCode", required = false) String lowCode) {
        try {
            return success(statisticsEsService.getArticleTypeCircle(flag,startDate, endDate,level,area,lowLevel,lowCode));
            return success(statisticsEsService.getArticleTypeCircle(flag, startDate, endDate, level, area, lowLevel, lowCode));
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException(e);
@ -1113,7 +1119,6 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    }
    /**
     * 查询收入,开方,问诊量
     * 参数:
@ -1151,11 +1156,11 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 【业务情况】 统计全院在相应时间内累计的:已接诊量、未接诊量、取消量的数据,三者之和等于总问诊量;
     *  获取 已接诊量、未接诊量、取消量、处方量数量
     *  参数:
     *  timeType=1 按天分组
     *  timeType=3 按月分组
     *  strJson={"startDate":"2023-07-15","endDate":"2023-07-16","area":"350200","level":2,"timeType":"1"}
     * 获取 已接诊量、未接诊量、取消量、处方量数量
     * 参数:
     * timeType=1 按天分组
     * timeType=3 按月分组
     * strJson={"startDate":"2023-07-15","endDate":"2023-07-16","area":"350200","level":2,"timeType":"1"}
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.getConsultAndPrescriptionList)
    @ApiOperation(value = "获取【已接诊量、未接诊量、取消量、处方量】数据")
@ -1173,7 +1178,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 费用情况
     *【费用情况】分别展示每日药品费与诊查费用情况
     * 【费用情况】分别展示每日药品费与诊查费用情况
     * 参数:
     * timeType=1 按天分组
     * timeType=3 按月分组
@ -1213,7 +1218,7 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     *【全院明细】
     * 【全院明细】
     * 科室、医生、问诊量、接诊量、未接诊量、接诊率、处方量、检查费、药品费、总收入
     * 参数:
     * 科室:strJson={"startDate":"2023-07-01","endDate":"2023-07-20","area":"医院代码","level":4,"lowLevel":5}
@ -1233,18 +1238,28 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    }
    /**
     *  todo 导出的接口
     * todo 导出的接口
     * 导出全部数据
     */
    @GetMapping(value = BaseHospitalRequestMapping.Statistics.exportHospitalDetails)
    @ApiOperation(value = "【导出全院明细】")
    public ObjEnvelop exportHospitalDetails(@RequestParam(required = true) String strJson) {
    public ObjEnvelop exportHospitalDetails(@RequestParam(required = true) String strJson, HttpServletResponse response) {
        JSONObject result = new JSONObject();
        ScreenQvo qvo = JSON.parseObject(strJson, ScreenQvo.class);
        //导出...
        try {
            ScreenQvo qvo = JSON.parseObject(strJson, ScreenQvo.class);
            //导出...
            List  list= statisticsEsService.getAllDeptAndDoctorDetails(qvo);
            result.put("list",list);
//            List<Map<String, Object>> list = expressages.getDetailMexportHospitalDetailsodelList();
            response.setContentType("octets/stream");
            response.setHeader("Content-Disposition", "attachment; filename=" + new String("pushDataList.xls"));
            OutputStream os = response.getOutputStream();
//            statisticsEsService.pushListWrite(os, list);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return success(result);
    }
}