浏览代码

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

yeshijie 7 年之前
父节点
当前提交
f2b9a4b237
共有 16 个文件被更改,包括 317 次插入197 次删除
  1. 6 0
      common/common-entity/pom.xml
  2. 7 50
      common/common-entity/src/main/java/com/yihu/wlyy/entity/job/QuartzJobConfig.java
  3. 1 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/feedback/AppealService.java
  4. 1 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/feedback/FeedbackService.java
  5. 17 4
      patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/AgeConvert.java
  6. 9 0
      patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/DiseaseConvert.java
  7. 2 2
      patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/PrescriptionStatusConvert.java
  8. 5 5
      patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/util/IdCardUtil.java
  9. 0 1
      patient-co/patient-co-wlyy/pom.xml
  10. 2 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/SwaggerConfig.java
  11. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/SignPatientLabelDao.java
  12. 179 102
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statisticsES/StatisticsESService.java
  13. 56 19
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ElasticsearchUtil.java
  14. 8 3
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/EsStatisticsController.java
  15. 16 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/gateway/service/GcEduArticleService.java
  16. 7 7
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/jkedu/controller/doctor/EduDoctorArticleController.java

+ 6 - 0
common/common-entity/pom.xml

@ -63,5 +63,11 @@
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-data-elasticsearch</artifactId>-->
            <!--<version>1.1.1.RELEASE</version>-->
        <!--</dependency>-->
    </dependencies>
</project>

+ 7 - 50
common/common-entity/src/main/java/com/yihu/wlyy/entity/job/QuartzJobConfig.java

@ -1,14 +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_cwd")
@Table(name = "wlyy_job_config")
public class QuartzJobConfig implements java.io.Serializable {
	private String id;
@ -20,11 +23,6 @@ public class QuartzJobConfig implements java.io.Serializable {
	private String quartzCron;//quartz表达式
	private String status;//1 启动 0停止
	private String del;//是否删除 1正常 0删除
	private String sql;
	private String sqlCount;
	private String sqlDay;
	private String sqlYear;
	private String cacheKey;//缓存的key
	/** minimal constructor */
	public QuartzJobConfig() {
@ -33,7 +31,7 @@ public class QuartzJobConfig implements java.io.Serializable {
	/** full constructor */
	public QuartzJobConfig(String jobName, String jobInfo, String jobType,
                           String jobClass, String quartzCron, String status) {
						   String jobClass, String quartzCron, String status) {
		this.jobName = jobName;
		this.jobInfo = jobInfo;
		this.jobType = jobType;
@ -126,45 +124,4 @@ public class QuartzJobConfig implements java.io.Serializable {
	public void setDel(String del) {
		this.del = del;
	}
	public String getSql() {
		return sql;
	}
	public void setSql(String sql) {
		this.sql = sql;
	}
	public String getSqlCount() {
		return sqlCount;
	}
	public void setSqlCount(String sqlCount) {
		this.sqlCount = sqlCount;
	}
	public String getSqlDay() {
		return sqlDay;
	}
	public void setSqlDay(String sqlDay) {
		this.sqlDay = sqlDay;
	}
	public String getSqlYear() {
		return sqlYear;
	}
	public void setSqlYear(String sqlYear) {
		this.sqlYear = sqlYear;
	}
	public String getCacheKey() {
		return cacheKey;
	}
	public void setCacheKey(String cacheKey) {
		this.cacheKey = cacheKey;
	}
}

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/feedback/AppealService.java

@ -255,7 +255,7 @@ public class AppealService extends BaseService {
                message.setSender("system");//设置发送的用户
                message.setTitle(title);
                message.setReadonly(1);//是否只读消息
                message.setRelationCode(id.toString());
                message.setRelationCode(appeal.getCode());
                //wlyy给医生发送系统消息
                Doctor doctor = doctorDao.findByCode(creater);

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/feedback/FeedbackService.java

@ -247,7 +247,7 @@ public class FeedbackService extends BaseService {
                message.setSender("system");//设置发送的用户
                message.setTitle(title);
                message.setReadonly(1);//是否只读消息
                message.setRelationCode(feedback.getId().toString());
                message.setRelationCode(feedback.getCode());
                //wlyy给医生发送系统消息
                Doctor doctor = doctorDao.findByCode(creater);

+ 17 - 4
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/AgeConvert.java

@ -9,7 +9,10 @@ import com.yihu.wlyy.statistics.vo.DataModel;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by chenweida on 2017/6/5.
@ -20,18 +23,28 @@ public class AgeConvert implements Convert {
     * @param slaveLevel 从1开始
     * @return
     */
    public List<DataModel> convert(JdbcTemplate jdbcTemplate, List oneList, String slaveLevel, WlyyDimensionQuota temp ) {
        oneList.stream().forEach(one -> {
    public List<DataModel> convert(JdbcTemplate jdbcTemplate, List<DataModel> oneList, String slaveLevel, WlyyDimensionQuota temp ) {
        Map<String,Object> tempMap = new HashMap<>();
        List<DataModel> result = new ArrayList<>();
        for(DataModel one:oneList) {
            try {
                Object value = DataModel.class.getMethod("get" + temp.getKey()).invoke(one);
                Integer age= IdCardUtil.getAgeForIdcard(String.valueOf(value));
                String key = getAgeCode(age);
                if("63".equals(temp.getQuotaCode())){
                    if(tempMap.containsKey(String.valueOf(value))){
                        continue;
                    }
                }
                tempMap.put(String.valueOf(value),one);
                DataModel.class.getMethod("setSlaveKey" + slaveLevel, String.class).invoke(one, key);
                result.add(one);
            } catch (Exception e) {
                e.printStackTrace();
            }
        });
        return oneList;
        };
        return result;
    }
    public String getAgeCode(Integer age) {

+ 9 - 0
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/DiseaseConvert.java

@ -24,6 +24,7 @@ public class DiseaseConvert implements Convert {
        List<DataModel> returnList = new ArrayList<>();
        //初始化标签Map
//        Map<String, Object> map = initHealthLabesMap(jdbcTemplate, temp);
        Map<String,Object> tempMap = new HashMap<>();
        //把标签Map设置到对应的维度里面
        List<String> keyList = null;
        for(DataModel one:oneList){
@ -32,9 +33,17 @@ public class DiseaseConvert implements Convert {
                for(String key:keyList){
                    DataModel dataModelTemp = new DataModel();
                    BeanUtils.copyProperties(one, dataModelTemp);
                    if("63".equals(temp.getQuotaCode())){
                        if(tempMap.containsKey(String.valueOf(one.getPatient()))){
                            continue;
                        }
                        tempMap.put(String.valueOf(one.getPatient()),one);
                    }
                    DataModel.class.getMethod("setSlaveKey" + slaveLevel, String.class).invoke(dataModelTemp, key);
                    returnList.add(dataModelTemp);
                }
            }catch (Exception e) {
                e.printStackTrace();
            }

+ 2 - 2
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/PrescriptionStatusConvert.java

@ -38,7 +38,7 @@ public class PrescriptionStatusConvert implements Convert {
    }
    public String getStatusCode(Integer status) {
        if (status >= 0 && status <= 100) {
        if (status >= 0 && status < 100) {
            return Contant.prescriptionStatus.status_1;
        } else if (status==100) {
            return Contant.prescriptionStatus.status_2;
@ -46,7 +46,7 @@ public class PrescriptionStatusConvert implements Convert {
            return Contant.prescriptionStatus.status_3;
        } else if (status==-1) {
            return Contant.prescriptionStatus.status_4;
        } else if (status==-3) {
        } else if (status==-3||status==-4||status==-5) {
            return Contant.prescriptionStatus.status_5;
        } else{
            return "0";

+ 5 - 5
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/util/IdCardUtil.java

@ -63,27 +63,27 @@ public class IdCardUtil {
    public static String getSexForIdcard(String CardCode)
            throws Exception {
        try {
            String sex = "1";
            String sex = "2";
            if (CardCode.length() == 18) {
                if (Integer.parseInt(CardCode.substring(16).substring(0, 1)) % 2 == 0) {// 判断性别
                    // modifid by lyr 2016-09-29
                    // sex =  Constant.level_sex_2;
                    sex = "2";
                    sex = "1";
                    // modifid by lyr 2016-09-29
                } else {
                    // modifid by lyr 2016-09-29
                    // sex =  Constant.level_sex_1;
                    sex = "1";
                    sex = "2";
                    // modifid by lyr 2016-09-29
                }
            } else if (CardCode.length() == 15) {
                String usex = CardCode.substring(14, 15);// 用户的性别
                if (Integer.parseInt(usex) % 2 == 0) {
                    // sex =  Constant.level_sex_2;
                    sex = "2";
                    sex = "1";
                } else {
                    // sex =  Constant.level_sex_1;
                    sex = "1";
                    sex = "2";
                }
            }
            return sex;

+ 0 - 1
patient-co/patient-co-wlyy/pom.xml

@ -10,7 +10,6 @@
        <relativePath>../../patient-co-lib/pom.xml</relativePath>
    </parent>
    <artifactId>patient-co-wlyy</artifactId>
    <name>patient-co-wlyy</name>
    <version>1.0.0</version>

+ 2 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/SwaggerConfig.java

@ -180,7 +180,8 @@ public class SwaggerConfig {
                        regex("/express/.*"),
                        regex("/doctorFeedback/.*"),
                        regex("/patientFeedback/.*"),
                        regex("/esstatistics/.*")
                        regex("/esstatistics/.*"),
                        regex("/old/statistics/.*")
                ))
                .build()
                .apiInfo(otherApiInfo());

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/SignPatientLabelDao.java

@ -33,7 +33,7 @@ public interface SignPatientLabelDao extends
     * @param status
     * @return
     */
    @Query("select a from SignPatientLabel a where a.labelType = ?1 and a.status = ?2 ORDER BY a.sort ASC ")
    @Query("select a from SignPatientLabel a where a.labelType = ?1 and a.status = ?2 and a.labelCode !=0 ORDER BY a.sort ASC ")
    List<SignPatientLabel> findByLabelTypeAndStatus(String labelType,Integer status);
    /**

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

@ -434,7 +434,7 @@ public class StatisticsESService {
//        if (endDate.compareTo(dateFormat.format(new Date())) >= 0) {
//            endDate = elasticsearchUtil.getQuotaTime();
//        }
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(endDate,endDate, area, level, index, "2");
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, index, "2");
        List<Map<String, Object>> resultList = new ArrayList<>();
        DecimalFormat df = new DecimalFormat("0.0000");
        long total = 0;
@ -453,10 +453,10 @@ public class StatisticsESService {
                String code = saveModel.getSlaveKey1();
                if (!"2".equals(code)) {
                    total += saveModel.getResult2().intValue();
                    total += saveModel.getResult2();
                }
            } else {
                total += saveModel.getResult2().intValue();
                total += saveModel.getResult2();
            }
            resultList.add(map);
        }
@ -498,6 +498,50 @@ public class StatisticsESService {
        return new JSONArray(resultList);
    }
    /**
     * 缴费和未交费的人数
     * @param endDate
     * @param area
     * @param level
     * @return
     * @throws Exception
     */
    public JSONArray getPayPremiums(String endDate, String area, int level)throws Exception{
        //已缴费
        SaveModel paidSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate,area,level,"1","2");
        //未交费
        SaveModel noPaySaveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate,area,level,"14","2");
        List<Map<String, Object>> resultList = new ArrayList<>();
        DecimalFormat df = new DecimalFormat("0.0000");
        long paidTotal = paidSaveModel.getResult2().longValue();
        Map<String,Object> map1 = new HashedMap();
        long noPayTotal = noPaySaveModel.getResult2().longValue();
        Map<String,Object> map2 = new HashedMap();
        //求签约总数
        long totalNum = paidTotal+noPayTotal;
        map1.put("code","1");
        map1.put("amount",paidTotal);
        map1.put("name","已缴费人数");
        double rateG = (paidTotal > 0 ? paidTotal * 1.0000 / totalNum * 100 : 0);
        map1.put("rate", df.format(rateG));;
        map1.put("rateString", paidTotal + "/" + totalNum);
        resultList.add(map1);
        map2.put("code","0");
        map2.put("amount",noPayTotal);
        map2.put("name","未缴费人数");
        double rateG2 = (noPayTotal > 0 ? noPayTotal * 1.0000 / totalNum * 100 : 0);
        map2.put("rate", df.format(rateG2));;
        map2.put("rateString", noPayTotal + "/" + totalNum);
        resultList.add(map2);
        return new JSONArray(resultList);
    }
    public PopulationBase getPopulationBase(String code, String year) {
        String sql = "select * from wlyy_people_num where code=? and year=? ";
@ -520,8 +564,8 @@ public class StatisticsESService {
     */
    public long getIndexTotal(String endDate, String area, int level, String index, String timeLevel) throws Exception {
        //endDate = elasticsearchUtil.changeTime(endDate);
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,endDate, area, level, index, timeLevel);
        endDate = elasticsearchUtil.changeTime(endDate);
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, area, level, index, timeLevel);
        return saveModel.getResult2().longValue();
    }
@ -543,10 +587,10 @@ public class StatisticsESService {
    public JSONObject getRenewPercent(String level, String area, String year) throws Exception {
        String renewIndex = "";
        if ("5".equals(level)) {
        if ("1".equals(level)) {
            //团队的续签量
            renewIndex = "42";
        } else if ("4".equals(level)) {
        } else if ("2".equals(level)) {
            //社区的续签量
            renewIndex = "43";
        } else if ("3".equals(level)) {
@ -641,7 +685,7 @@ public class StatisticsESService {
     * @return
     */
    public JSONObject getGroupInfo(String endDate, String lowCode, String area, int level, String year) throws Exception {
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "17", "2", lowCode, null, null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel1(endDate, endDate, area, level, "17", "2", 1,lowCode, null, null);
        long total = 0;
        if (list.size() > 0) {
            total = list.get(0).getResult2().longValue();
@ -799,7 +843,7 @@ public class StatisticsESService {
        List<SaveModel> list = null;
        if (StringUtils.isNotEmpty(lowCode)) {
            //一级维度
            list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, "2", lowCode, interval + "");
            list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, "2", interval + "", lowCode);
        } else {
            list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, "2", interval + "");
        }
@ -1711,22 +1755,21 @@ public class StatisticsESService {
            if (Constant.getNowYear().equals(year)) {
                timeKey = elasticsearchUtil.getQuotaTime();
            } else {
                Integer coutYear = Integer.parseInt(year);
                timeKey = coutYear + "-06-30";
                timeKey = coutYear+1 + "-06-30";
            }
        }
//        timeKey= "2017-11-01 00:00:00";
        //及时回复数
        List<SaveModel> relyVal = elasticsearchUtil.findListDateQuotaLevel0(null, timeKey, area, level, "23", "2", lowLevel);
        List<SaveModel> relyVal = elasticsearchUtil.findListDateQuotaLevel0(timeKey, timeKey, area, level, "23", "2", lowLevel);
        //咨询总数
        List<SaveModel> relyTotal = elasticsearchUtil.findListDateQuotaLevel0(null, timeKey, area, level, "3", "2", lowLevel);
        List<SaveModel> relyTotal = elasticsearchUtil.findListDateQuotaLevel0(timeKey, timeKey, area, level, "3", "2", lowLevel);
        //未回复数
        List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel0(null, timeKey, area, level, "22", "2", lowLevel);
        List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel0(timeKey, timeKey, area, level, "22", "2", lowLevel);
//        JSONArray rely = new JSONArray(relyVal);
//        JSONArray total = new JSONArray(relyTotal);
//        JSONArray noRely = new JSONArray(noRelyTotal);
        result.put("resultList", getCoutList(level, relyVal, relyTotal, noRelyTotal));
        result.put("resultList", getCoutList(level, lowLevel, relyVal, relyTotal, noRelyTotal));
        return result;
    }
@ -1739,18 +1782,19 @@ public class StatisticsESService {
     * @param onRely
     * @return
     */
    public List<Map<String, Object>> getCoutList(Integer level, List<SaveModel> rely, List<SaveModel> total, List<SaveModel> onRely) {
    public List<Map<String, Object>> getCoutList(Integer level, String lowLevel,List<SaveModel> rely, List<SaveModel> total, List<SaveModel> onRely) {
        Map<String, Object> relyMap = new HashMap<>();
        Map<String, Object> totalMap = new HashMap<>();
        Map<String, Object> onRelyMap = new HashMap<>();
        JSONObject result = new JSONObject();
        String low_level=StringUtils.isEmpty(lowLevel)?String.valueOf(level+1):lowLevel;
        //转换回复数
        for (SaveModel saveModel : rely) {
            if (level == 4) {
            if (SaveModel.teamLevel.equals(low_level)) {
                relyMap.put(saveModel.getTeam(), saveModel);
            } else if (level == 3) {
            } else if (SaveModel.OrgLevel.equals(low_level)) {
                relyMap.put(saveModel.getHospital(), saveModel);
            } else if (level == 2) {
            } else if (SaveModel.townLevel.equals(low_level)) {
                relyMap.put(saveModel.getTown(), saveModel);
            }
        }
@ -1758,22 +1802,22 @@ public class StatisticsESService {
        //转换总咨询数
        for (SaveModel saveModel : total) {
            if (level == 4) {
            if (SaveModel.teamLevel.equals(low_level)) {
                totalMap.put(saveModel.getTeam(), saveModel);
            } else if (level == 3) {
            } else if (SaveModel.OrgLevel.equals(low_level)) {
                totalMap.put(saveModel.getHospital(), saveModel);
            } else if (level == 2) {
            } else if (SaveModel.townLevel.equals(low_level)) {
                totalMap.put(saveModel.getTown(), saveModel);
            }
        }
        ;
        //转换总咨询数
        for (SaveModel saveModel : onRely) {
            if (level == 4) {
            if (SaveModel.teamLevel.equals(low_level)) {
                onRelyMap.put(saveModel.getTeam(), saveModel);
            } else if (level == 3) {
            } else if (SaveModel.OrgLevel.equals(low_level)) {
                onRelyMap.put(saveModel.getHospital(), saveModel);
            } else if (level == 2) {
            } else if (SaveModel.townLevel.equals(low_level)) {
                onRelyMap.put(saveModel.getTown(), saveModel);
            }
        }
@ -1792,11 +1836,11 @@ public class StatisticsESService {
            Integer relyNm = relyRs.getResult2().intValue();
            Integer noRelyNm = onRelyRs.getResult2().intValue();
//            rs.put("name", relyRs.get(area+"Name"));
            if (level == 4) {
            if (SaveModel.teamLevel.equals(low_level)) {
                rs.put("name", relyRs.getTeamName());
            } else if (level == 3) {
            } else if (SaveModel.OrgLevel.equals(low_level)) {
                rs.put("name", relyRs.getHospitalName());
            } else if (level == 2) {
            } else if (SaveModel.townLevel.equals(low_level)) {
                rs.put("name", relyRs.getTownName());
            }
            rs.put("noRelyCount", noRelyNm);
@ -1831,7 +1875,7 @@ public class StatisticsESService {
            }
            resultMaps.add(rs);
        }
        if (level == 4) {
        if ((level == 3 && "5".equals(low_level)) || (level == 4) || (level == 3 && "5".equals(low_level))) {
            Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
            if (resultMaps != null && resultMaps.size() > 0) {
                for (Map<String, Object> r : resultMaps) {
@ -1867,12 +1911,11 @@ public class StatisticsESService {
            if (Constant.getNowYear().equals(year)) {
                quotaTime = elasticsearchUtil.getQuotaTime();
            } else {
                quotaTime = year + "-6-30 00:00:00";
                quotaTime = Integer.valueOf(year)+1 + "-6-30";
            }
        }
//        quotaTime = "2017-10-19 00:00:00";
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(null, quotaTime, area, Integer.parseInt(level), "24", "2");
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel1(quotaTime, quotaTime, area, Integer.parseInt(level), "24", "2");
        JSONArray array = new JSONArray();
        for (SaveModel saveModel : list) {
            JSONObject jsonObject = new JSONObject();
@ -1897,7 +1940,7 @@ public class StatisticsESService {
        JSONObject result = new JSONObject();
        String quotaDate = elasticsearchUtil.getQuotaTime();
        if(!Constant.getNowYear().equals(year)){
            quotaDate = year + "-06-30";
            quotaDate = Integer.valueOf(year)+1 + "-06-30";
        }
        SaveModel relyVal = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, quotaDate, area, level, "23", "2");
@ -2153,13 +2196,13 @@ public class StatisticsESService {
//        Map<String, Object> expenseStatus1Sigjn = getByIndexSingle(date, area, level, "1",dateFormat);
        SaveModel expenseStatus1Sigjn = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "1", "2");
        JSONObject jsonObject = new JSONObject();
        if (Integer.valueOf(SaveModel.teamLevel)==level) {
        if (SaveModel.teamLevel.equals(level)) {
            jsonObject.put("name", expenseStatus1Sigjn.getTeamName());
        } else if (Integer.valueOf(SaveModel.OrgLevel)==level) {
        } else if (SaveModel.OrgLevel.equals(level)) {
            jsonObject.put("name", expenseStatus1Sigjn.getHospitalName());
        } else if (Integer.valueOf(SaveModel.townLevel)==level) {
        } else if (SaveModel.townLevel.equals(level)) {
            jsonObject.put("name", expenseStatus1Sigjn.getTownName());
        } else if (Integer.valueOf(SaveModel.cityLevel)==level) {
        } else if (SaveModel.cityLevel.equals(level)) {
            jsonObject.put("name", expenseStatus1Sigjn.getCityName());
        }
        jsonObject.put("code", area);
@ -2247,10 +2290,10 @@ public class StatisticsESService {
        if (StringUtils.isEmpty(lowCode)) {
            //续签量
            renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, "2", "", low_level);
            renewSaveModels = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index, "2", "", lowLevel);
        } else {
            //续签量
            renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index, "2", lowCode, "", low_level);
            renewSaveModels = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index, "2",1, lowCode, "", low_level);
        }
        if (renewSaveModels != null && renewSaveModels.size() > 0) {
@ -2275,17 +2318,17 @@ public class StatisticsESService {
            //查询去年的签约转map
            List<SaveModel> yearsList = new ArrayList();
            if (StringUtils.isBlank(lowCode)) {
                yearsList = elasticsearchUtil.findListDateQuotaLevel0(lastDate,lastDate,area,level,"1","2",low_level);
                yearsList = elasticsearchUtil.findListDateQuotaLevel0(lastDate, "", Integer.valueOf(low_level), "1", "2", "");
            } else {
                if ("3".equals(lowCode)) {
                    //老年人
                    yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, lastDate, level, "17", "2", low_level, "3");
                    yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, "", Integer.valueOf(low_level), "17", "2", "", "3");
                } else if ("4".equals(lowCode)) {
                    //高血压
                    yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, "", level, "17", "2", low_level, "1");
                    yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, "", Integer.valueOf(low_level), "17", "2", "", "1");
                } else if ("5".equals(lowCode)) {
                    //糖尿病
                    yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, "", level, "17", "2", low_level, "2");
                    yearsList = elasticsearchUtil.findListDateQuotaLevel1(lastDate, "", Integer.valueOf(low_level), "17", "2", "", "2");
                } else {
                }
            }
@ -2304,28 +2347,26 @@ public class StatisticsESService {
            for (Map<String, Object> reMap : resultList) {
                reMap.put("amount", reMap.get("amount") != null ? Long.valueOf(reMap.get("amount").toString()) : 0L);
                int signNum = 0;
                Integer renewNum = null;
                int renewNum = 0;
                //获取去年签约的人数 默认是上个年度的最后一天
                if (resultMap != null && resultMap.size() > 0) {
                    SaveModel one = resultMap.get(String.valueOf(reMap.get("code")));
                    SaveModel one = resultMap.get(reMap.get("code").toString());
                    if (one != null) {
                        signNum = one.getResult2().intValue();
                    }
                } else {
                }
                if (renewMap != null && renewMap.size() > 0) {;
                    renewNum = renewMap.get(String.valueOf(reMap.get("code")));
                    if(renewNum==null){
                        renewNum=0;
                    }
                if (renewMap != null && renewMap.size() > 0) {
                    renewNum = renewMap.get(reMap.get("code").toString());
                } else {
                }
                reMap.put("renewNum", renewNum);
                reMap.put("signNum", signNum);
                reMap.put("rate", getRange(renewNum, signNum, 2));//续签率是 续签量/去年的签约数
            }
            if ((level == 2 && "5".equals(low_level)) || (level == 4) || (level == 3 && "5".equals(low_level))) {
            if ((level == 2 && "5".equals(lowLevel)) || (level == 4) || (level == 3 && "5".equals(lowLevel))) {
                translateTeamLeaderName(resultList);
            }
            //对结果进行排序
@ -2768,83 +2809,84 @@ public class StatisticsESService {
    public Map<String, Object> getPrescriptionCount(int level, String area, String disease) throws Exception {
        String index = "58";
        Map<String, Object> rs = new HashedMap();
        List<SaveModel> totalList = null;
        List<SaveModel> processingList = null;
        List<SaveModel> finishedList = null;
        List<SaveModel> canceledList = null;
        List<SaveModel> unPassList = null;
        List<SaveModel> otherList = null;
        SaveModel total = null;
        SaveModel processing = null;
        SaveModel finished = null;
        SaveModel canceled = null;
        SaveModel unPass = null;
        SaveModel other = null;
        String quotaDate = elasticsearchUtil.getQuotaTime();
        //总数
        if (StringUtils.isNotBlank(disease)) {
            totalList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, disease);
            total = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index, "2", disease);
        } else {
            totalList = elasticsearchUtil.findListDateQuotaLevel0(null, area, level, index, "2", null);
            total = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, level, index, "2");
        }
        //进行中
        if (StringUtils.isNotBlank(disease)) {
            processingList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "1");
            processing = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, "2",  disease, "1");
        } else {
            processingList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "1");
            processing = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index, "2", "1");
        }
        //已完成
        if (StringUtils.isNotBlank(disease)) {
            finishedList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "2");
            finished = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, "2",  disease, "2");
        } else {
            finishedList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "2");
            finished = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index, "2", "2");
        }
        //已经取消
        if (StringUtils.isNotBlank(disease)) {
            canceledList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "3");
            canceled = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, "2",  disease, "3");
        } else {
            canceledList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "3");
            canceled = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index, "2", "3");
        }
        //审核不通过
        if (StringUtils.isNotBlank(disease)) {
            unPassList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "4");
            unPass = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, "2",  disease, "4");
        } else {
            unPassList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "4");
            unPass = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index, "2", "4");
        }
        //其他原因取消
        if (StringUtils.isNotBlank(disease)) {
            otherList = elasticsearchUtil.findListDateQuotaLevel2(null, area, level, index, "2", null, disease, "5");
            other = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index, "2",  disease, "5");
        } else {
            otherList = elasticsearchUtil.findListDateQuotaLevel1(null, area, level, index, "2", null, "5");
            other = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index, "2", "5");
        }
        //总数
        if (totalList != null && totalList.size() > 0) {
            rs.put("total", totalList.get(0).getResult2());
        if (total != null) {
            rs.put("total", total.getResult2());
        } else {
            rs.put("total", 0);
        }
        //进行中
        if (processingList != null && processingList.size() > 0) {
            rs.put("processingCount", processingList.get(0).getResult2());
        if (processing != null) {
            rs.put("processingCount", processing.getResult2());
        } else {
            rs.put("processingCount", 0);
        }
        //已完成
        if (finishedList != null && finishedList.size() > 0) {
            rs.put("finishCount", finishedList.get(0).getResult2());
        if (finished != null) {
            rs.put("finishCount", finished.getResult2());
        } else {
            rs.put("finishCount", 0);
        }
        //已取消
        if (canceledList != null && canceledList.size() > 0) {
            rs.put("patientCancelCount", canceledList.get(0).getResult2());
        if (canceled != null) {
            rs.put("patientCancelCount", canceled.getResult2());
        } else {
            rs.put("patientCancelCount", 0);
        }
        //审核不通过
        if (unPassList != null && unPassList.size() > 0) {
            rs.put("noReviewedCount", unPassList.get(0).getResult2());
        if (unPass != null) {
            rs.put("noReviewedCount", unPass.getResult2());
        } else {
            rs.put("noReviewedCount", 0);
        }
        //其他原因取消
        if (otherList != null && otherList.size() > 0) {
            rs.put("payOuttimeCount", otherList.get(0).getResult2());
        if (other != null) {
            rs.put("payOuttimeCount", other.getResult2());
        } else {
            rs.put("payOuttimeCount", 0);
        }
@ -3066,16 +3108,16 @@ public class StatisticsESService {
            //类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
            if ("0".equals(type)) {
                //总数
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index, "2", "3", disease);
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index, "1", "3", disease);
            } else {
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index, "2", "3", disease, type);
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index, "1", "3", disease, type);
            }
        } else {
            if ("0".equals(type)) {
                //总数
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel0(startTime, endTime, area, level, index, "2", "3");
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel0(startTime, endTime, area, level, index, "1", "3");
            } else {
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index, "2", "3", type);
                resultList = elasticsearchUtil.findLineChartDateQuotaLevel1Key2(startTime, endTime, area, level, index, "1", "3", type);
            }
        }
@ -3087,6 +3129,7 @@ public class StatisticsESService {
                String monthKeyEs = "";
                if (saveModel.getQuotaDate() != null) {
                    monthKeyEs = DateUtil.changeQuotaDate(saveModel.getQuotaDate());
                    m.put("month", monthKeyEs);
                }
                if (StringUtils.isNotBlank(monthKeyEs) && monthKey.equals(monthKeyEs)) {
                    m.put("count", saveModel.getResult2());
@ -3115,24 +3158,44 @@ public class StatisticsESService {
        //一级维度
        if (StringUtils.isEmpty(disease)) {
            //类型 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
//            if ("1".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate, area, level, index, "2", lowlevel);
//            } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, type);
//            } else if ("5".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "1");
//            } else if ("6".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "5");
//            }
            if ("1".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate, area, level, index, "2", lowlevel);
            } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, type);
            } else if ("5".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "1");
                //总数
                saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate,area,level,index,"2",lowlevel);
            } else if("2".equals(type) || "3".equals(type) || "4".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel1Key2(quotaDate,area,level,index,"2",lowlevel,type);
            } else if("5".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel1Key2(quotaDate,area,level,index,"2",lowlevel,"1");
            } else if ("6".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, "5");
                saveModels = elasticsearchUtil.findListDateQuotaLevel1Key2(quotaDate,area,level,index,"2",lowlevel,"5");
            }
        } else {
            //类型 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
//            if ("1".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, disease);
//            } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, type);
//            } else if ("5".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "1");
//            } else if ("6".equals(type)) {
//                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "5");
//            }
            if ("1".equals(type)) {
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index, "2", lowlevel, disease);
            } else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
                //总数String quotaDate,  String area, int level, String index, String timelevel,String lowLevel, String slaveKey2
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,disease);
            } else if("2".equals(type) || "3".equals(type) || "4".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, type);
            } else if ("5".equals(type)) {
            } else if("5".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "1");
            } else if ("6".equals(type)) {
            } else if("6".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index, "2", lowlevel, disease, "5");
            }
        }
@ -3493,7 +3556,11 @@ public class StatisticsESService {
                    map.put("name", one.getTeamName());
                }
                Long num = (Long) count.get("num");
                String avg = decimalFormat.format(one.getResult1() / num);
                String avg = "0.0";
                if(num!=0){
                    avg = decimalFormat.format(one.getResult1() / num);
                }
                map.put("val", avg);
                countList.add(map);
            }
@ -3521,7 +3588,7 @@ public class StatisticsESService {
        List<Map<String, Object>> countList = new ArrayList<>();
        for (SaveModel one : list) {
            sql = "  select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE  ";
            sql += " and  p.trace_time <= " + one.getQuotaDate();
            sql += " and  p.trace_time <= " + dateFormat3.format(one.getQuotaDate());
            if (SaveModel.townLevel.equals(level) || SaveModel.cityLevel.equals(level)) {
                sql += " and LEFT(s.hospital,6) ='" + area + "' ";
            } else if (SaveModel.OrgLevel.equals(level)) {
@ -3531,7 +3598,10 @@ public class StatisticsESService {
            }
            Map<String, Object> count = jdbcTemplate.queryForMap(sql);
            Long num = (Long) count.get("num");
            String avg = decimalFormat.format(one.getResult1() / num);
            String avg = "0.0";
            if(num!=0){
                avg = decimalFormat.format(one.getResult1() / num);
            }
            map = new HashMap<>();
            map.put("avg", avg);
            map.put("date", dateFormat.format(one.getQuotaDate()));
@ -3542,14 +3612,15 @@ public class StatisticsESService {
    public Map<String, Object> getPrescriptionCost(String level, String area, String disease) throws Exception {
        SaveModel saveModel = null;
        String index = "61";
        String quotaDate = elasticsearchUtil.getQuotaTime();
        if (StringUtils.isNotEmpty(disease)) {
            saveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), "61", "2", disease);
            saveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index, "2", disease);
        } else {
            saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), "61", "2");
            saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate, area, Integer.parseInt(level), index, "2");
        }
        String sql = "  select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE  ";
        sql += " and  p.trace_time <= " + dateFormat3.parse(quotaDate);
        sql += " and  p.create_time <= " + quotaDate;
        if (SaveModel.townLevel.equals(level) || SaveModel.cityLevel.equals(level)) {
            sql += " and LEFT(s.hospital,6) ='" + area + "' ";
        } else if (SaveModel.OrgLevel.equals(level)) {
@ -3561,7 +3632,13 @@ public class StatisticsESService {
        Long num = (Long) count.get("num");
        Map<String, Object> rs = new HashedMap();
        BigDecimal s = BigDecimal.valueOf(num);
        BigDecimal a = BigDecimal.valueOf(saveModel.getResult2() / num);
        BigDecimal a = null;
        if(num==0){
            a = BigDecimal.valueOf(0.0);
        }else{
            a = BigDecimal.valueOf(saveModel.getResult2().longValue() / num);
        }
        rs.put("sum", s.divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP));
        rs.put("avg", a.divide((new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP));
        return rs;

+ 56 - 19
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ElasticsearchUtil.java

@ -328,14 +328,23 @@ public class ElasticsearchUtil {
     * @param level     等级
     * @param index     指标
     * @param timeLevel 1增量 2到达量
     * @param slaveKey1 一级维度
     * @param slaveKeyValue 一级维度
     * @param interval  1日 2周 3月
     * @param lowLevel  下个等级
     * @return
     * @throws Exception
     */
    public List findDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel, String slaveKey1, String interval, String lowLevel) throws Exception {
    public List findDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel,int keyNum, String slaveKeyValue, String interval, String lowLevel) throws Exception {
        String slaveKey = "";
        String slaveKeyName = "";
        if(keyNum==1){
            slaveKey = "slaveKey1";
            slaveKeyName = "slaveKey1Name";
        }else if(keyNum==2){
            slaveKey = "slaveKey2";
            slaveKeyName = "slaveKey2Name";
        }
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if (StringUtils.isNotEmpty(startDate)) {
            if(startDate.length()>10){
@ -358,17 +367,17 @@ public class ElasticsearchUtil {
            low_level = lowLevel;
        }
        if (SaveModel.teamLevel.equals(low_level)) {
            sql.append("select team,teamName,slaveKey1,slaveKey1Name,sum(result1) result1, sum(result2) result2 from "+esIndex+" where ");
            groupBy.append("  group by team,teamName,slaveKey1,slaveKey1Name");
            sql.append("select team,teamName,"+slaveKey+","+slaveKeyName+",sum(result1) result1, sum(result2) result2 from "+esIndex+" where ");
            groupBy.append("  group by team,teamName,"+slaveKey+","+slaveKeyName);
        } else if (SaveModel.OrgLevel.equals(low_level)) {
            sql.append("select hospital,hospitalName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from "+esIndex+" where ");
            groupBy.append("  group by hospital,hospitalName,slaveKey1,slaveKey1Name");
            sql.append("select hospital,hospitalName,"+slaveKey+","+slaveKeyName+",sum(result1) result1,sum(result2) result2 from "+esIndex+" where ");
            groupBy.append("  group by hospital,hospitalName,"+slaveKey+","+slaveKeyName);
        } else if (SaveModel.townLevel.equals(low_level)) {
            sql.append("select town,townName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from "+esIndex+" where ");
            groupBy.append("  group by town,townName,slaveKey1,slaveKey1Name");
            sql.append("select town,townName,"+slaveKey+",slaveKey1Name,sum(result1) result1,sum(result2) result2 from "+esIndex+" where ");
            groupBy.append("  group by town,townName,"+slaveKey+","+slaveKeyName);
        } else if (SaveModel.cityLevel.equals(low_level)) {
            sql.append("select city,cityName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from "+esIndex+" where ");
            groupBy.append("  group by city,cityName,slaveKey1,slaveKey1Name");
            sql.append("select city,cityName,"+slaveKey+","+slaveKeyName+",sum(result1) result1,sum(result2) result2 from "+esIndex+" where ");
            groupBy.append("  group by city,cityName,"+slaveKey+","+slaveKeyName);
        }
        if(StringUtils.isNotEmpty(area)){
@ -393,8 +402,8 @@ public class ElasticsearchUtil {
        if (StringUtils.isNotEmpty(endDate)) {
            sql.append(" and quotaDate<='" + endDate + "'");
        }
        if (StringUtils.isNotEmpty(slaveKey1)) {
            sql.append(" and slaveKey1='" + slaveKey1 + "'  ");
        if (StringUtils.isNotEmpty(slaveKeyValue)) {
            sql.append(" and "+slaveKey+"='" + slaveKeyValue + "'  ");
        }
        //根据时间维度分组
@ -592,7 +601,11 @@ public class ElasticsearchUtil {
     * @return
     */
    public SaveModel findOneDateQuotaLevel1(String quotaDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,slaveKey1, null, null);
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,1,slaveKey1, null, null);
        return (SaveModel) list.get(0);
    }
    public SaveModel findOneDateQuotaLevel1Key2(String quotaDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,2,slaveKey1, null, null);
        return (SaveModel) list.get(0);
    }
    /**
@ -609,7 +622,11 @@ public class ElasticsearchUtil {
     * @return
     */
    public SaveModel findOneDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,slaveKey1, null, null);
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,1,slaveKey1, null, null);
        return (SaveModel) list.get(0);
    }
    public SaveModel findOneDateQuotaLevel1Key2(String startDate, String endDate, String area, int level, String index, String timelevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,2,slaveKey1, null, null);
        return (SaveModel) list.get(0);
    }
@ -625,7 +642,11 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findOneDateQuotaLevel1(String quotaDate, String area, int level, String index, String timelevel) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,null, null, null);
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,1,null, null, null);
        return list;
    }
    public List<SaveModel> findOneDateQuotaLevel1key2(String quotaDate, String area, int level, String index, String timelevel) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,2,null, null, null);
        return list;
    }
    /**
@ -639,7 +660,11 @@ public class ElasticsearchUtil {
     * @return
     */
    public List<SaveModel> findOneDateQuotaLevel1(String startDate,String endDate, String area, int level, String index, String timelevel) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,null, null, null);
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,1,null, null, null);
        return list;
    }
    public List<SaveModel> findOneDateQuotaLevel1Key2(String startDate,String endDate, String area, int level, String index, String timelevel) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,2,null, null, null);
        return list;
    }
    /**
@ -729,7 +754,11 @@ public class ElasticsearchUtil {
     * @return
     */
    public  List<SaveModel>  findLineChartDateQuotaLevel1(String startDate,String endDate,  String area, int level, String index, String timelevel,String interval, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,slaveKey1, interval, null);
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,1,slaveKey1, interval, null);
        return list;
    }
    public  List<SaveModel>  findLineChartDateQuotaLevel1Key2(String startDate,String endDate,  String area, int level, String index, String timelevel,String interval, String slaveKey2) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,2,slaveKey2, interval, null);
        return list;
    }
    /**
@ -803,7 +832,11 @@ public class ElasticsearchUtil {
     * @return
     */
    public  List<SaveModel>  findListDateQuotaLevel1(String quotaDate,  String area, int level, String index, String timelevel,String lowLevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,slaveKey1, null, lowLevel);
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,1,slaveKey1, null, lowLevel);
        return list;
    }
    public  List<SaveModel>  findListDateQuotaLevel1Key2(String quotaDate,  String area, int level, String index, String timelevel,String lowLevel, String slaveKey2) throws Exception {
        List list = findDateQuotaLevel1(quotaDate, quotaDate, area, level, index, timelevel,2,slaveKey2, null, lowLevel);
        return list;
    }
    /**
@ -822,7 +855,11 @@ public class ElasticsearchUtil {
     * @return
     */
    public  List<SaveModel>  findListDateQuotaLevel1(String startDate,String endDate,  String area, int level, String index, String timelevel,String lowLevel, String slaveKey1) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,slaveKey1, null, lowLevel);
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,1,slaveKey1, null, lowLevel);
        return list;
    }
    public  List<SaveModel>  findListDateQuotaLevel1Key2(String startDate,String endDate,  String area, int level, String index, String timelevel,String lowLevel, String slaveKey2) throws Exception {
        List list = findDateQuotaLevel1(startDate, endDate, area, level, index, timelevel,2,slaveKey2, null, lowLevel);
        return list;
    }
    /**

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

@ -353,7 +353,11 @@ public class EsStatisticsController extends BaseController {
            JSONObject result = new JSONObject();
            for (String idx : indexes) {
//                result.put("index_" + idx, statisticsAllService.getIndexLevelTwototal(endDate, area, level, idx));
                result.put("index_" + idx, statisticsESService.getIndexLevelTwototal(endDate, area, level, idx));
                if(!"16".equals(idx)){
                    result.put("index_" + idx, statisticsESService.getIndexLevelTwototal(endDate, area, level, idx));
                }else{
                    result.put("index_"+idx,statisticsESService.getPayPremiums(endDate,area,level));
                }
            }
            return write(200, "查询成功", "data", result);
        } catch (Exception e) {
@ -889,7 +893,7 @@ public class EsStatisticsController extends BaseController {
    }
    /**
     * 获取机构内服务排行
     * 获取机构内服务排行.
     *
     * @param startDate
     * @param endDate
@ -1666,7 +1670,7 @@ public class EsStatisticsController extends BaseController {
                                              @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsService.getPrescriptionAgeHistogram(level,area,disease));
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeHistogram(level,area,disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
@ -1784,6 +1788,7 @@ public class EsStatisticsController extends BaseController {
                                      @ApiParam(name="area", value="界别编码") @RequestParam(required = true)String area,
                                      @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCost(level,area,disease));
        } catch (Exception e) {
            error(e);

+ 16 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/gateway/service/GcEduArticleService.java

@ -1,7 +1,9 @@
package com.yihu.wlyy.web.third.gateway.service;
import com.yihu.es.entity.ArticleTest;
import com.yihu.wlyy.config.es.ElastricSearchSave;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.education.HealthEduArticlePatientDao;
@ -288,4 +290,18 @@ public class GcEduArticleService {
        List<String> groupPatient = jdbcTemplate.queryForList(tableSql+whereSql, String.class);
        patientSet.addAll(groupPatient);
    }
    @Transactional
    public void getSaveArticle(){
//        ArticleTest aa = new ArticleTest();
//        Patient pa = new Patient();
//        String batchNo = UUID.randomUUID().toString();
//        pa.setCode(batchNo);
//        pa.setCity("1212");
//        pa.setName("hukun");
//        batchNo = UUID.randomUUID().toString();
//        aa.setBatchNo(batchNo);
//        aa.setPatients(pa);
    }
}

+ 7 - 7
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/jkedu/controller/doctor/EduDoctorArticleController.java

@ -460,13 +460,13 @@ public class EduDoctorArticleController extends BaseController{
    }
//    @RequestMapping(value = "/sendPatients", method = RequestMethod.POST)
//    @ResponseBody
//    @ApiOperation("文章群推送")
//    public void saveArticle(){
//
//
//    }
    @RequestMapping(value = "/saveArticle", method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation("测试生成数据")
    public void saveArticle(){
    }
    /**
     * 获取要推送的患者