chenweida 7 år sedan
förälder
incheckning
b5a77baf49

+ 7 - 3
patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/ConvertHelper.java

@ -27,24 +27,28 @@ public class ConvertHelper {
    private WlyyDimensionQuotaDao wlyyDimensionQuotaDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 把每个维度的key清洗到对应的slaveKey中
     * @param filterModel  过滤之后的model
     *
     * @param filterModel     过滤之后的model
     * @param dimensionQuotas 维度的列表
     * @return
     * @throws Exception
     */
    public FilterModel convert(FilterModel filterModel, List<WlyyDimensionQuota> dimensionQuotas) throws Exception {
        List<DataModel> data = filterModel.getData();
        for (int i = 0; i < dimensionQuotas.size(); i++) {
            WlyyDimensionQuota temp = dimensionQuotas.get(i);
            String clazz = temp.getConvertClazz();
            if (!StringUtils.isEmpty(clazz)) {
                //反射出对象并且调用convert方法去转换对应的slavekey
                Object obj = Class.forName(clazz).newInstance();
                Method method = obj.getClass().getMethod("convert",JdbcTemplate.class, List.class,String.class,WlyyDimensionQuota.class);
                method.invoke(obj,jdbcTemplate, filterModel.getData(), String.valueOf(i + 1),temp);
                Method method = obj.getClass().getMethod("convert", JdbcTemplate.class, List.class, String.class, WlyyDimensionQuota.class);
                data = (List<DataModel>) method.invoke(obj, jdbcTemplate, data, String.valueOf(i + 1), temp);
            }
        }
        filterModel.setData(data);
        return filterModel;
    }
}

+ 5 - 1
patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/DiseaseLableConvert.java

@ -39,7 +39,7 @@ public class DiseaseLableConvert implements Convert {
                "  spli.label_type = '3' " +
                "AND spli. STATUS = '1'";
        List<HealthLable> healthLables = jdbcTemplate.query(sql, new BeanPropertyRowMapper(HealthLable.class));
        //疾病标签可能有多个
        //疾病标签可能有多个 转mapkey是患者code value是服务标签的code
        Map<String, List<String>> healthLablesMap = new HashMap<>();
        healthLables.stream().forEach(one -> {
            List<String> value = new ArrayList<String>();
@ -47,14 +47,18 @@ public class DiseaseLableConvert implements Convert {
                value = healthLablesMap.get(one.getPatient());
            }
            value.add(one.getHealthLable());
            healthLablesMap.put(one.getPatient(),value);
        });
        //给DataModel复制维度数据
        oneList.stream().forEach(one -> {
            try {
                //如果没有标签信息默认在未分组
                List<String> value = healthLablesMap.get(one.getPatient());
                if(value==null||value.size()==0){
                    value=new ArrayList<String>();
                    value.add("0");
                }
                //如果
                for (int i = 0; i < value.size(); i++) {
                    DataModel dataModelTemp = new DataModel();
                    BeanUtils.copyProperties(one, dataModelTemp);

+ 1 - 1
patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/job/business/CurrentMysqlToEsQuotaJob.java

@ -181,7 +181,7 @@ public class CurrentMysqlToEsQuotaJob implements Job {
                            .must(QueryBuilders.matchQuery("quotaCode", quotaCode))
                            .must(QueryBuilders.matchQuery("timeLevel", timeLevel))
                            .must(QueryBuilders.matchQuery("quotaDate", quotaDate)))
                    .size(100000);
                    .size(50000);
            Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(esIndex).addType(esType)
                    .build();

+ 1 - 1
patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/job/business/MysqlToEsQuotaJob.java

@ -184,7 +184,7 @@ public class MysqlToEsQuotaJob implements Job {
                            .must(QueryBuilders.matchQuery("quotaCode", quotaCode))
                            .must(QueryBuilders.matchQuery("timeLevel", timeLevel))
                            .must(QueryBuilders.matchQuery("quotaDate", quotaDate))
            ).size(100000);//一次取10000条
            ).size(50000);//一次取10000条
            Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(esIndex).addType(esType)
                    .build();