|
@ -3,6 +3,7 @@ package com.yihu.wlyy.statistics.etl.convert.wlyy;
|
|
|
import com.yihu.wlyy.entity.dimension.WlyyDimensionQuota;
|
|
|
import com.yihu.wlyy.statistics.etl.convert.Convert;
|
|
|
import com.yihu.wlyy.statistics.etl.convert.wlyy.model.HealthLable;
|
|
|
import com.yihu.wlyy.statistics.util.IdCardUtil;
|
|
|
import com.yihu.wlyy.statistics.vo.DataModel;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
@ -24,7 +25,7 @@ public class DiseaseAndAgeConvert implements Convert {
|
|
|
List<DataModel> returnList = new ArrayList<>();
|
|
|
Map<String, List<String>> healthLablesMap = new HashMap<>();//key是患者code value是患者标签 1高血压 2糖尿病 3 65岁以上
|
|
|
//初始化标签Map
|
|
|
initHealthLabesMap(jdbcTemplate, healthLablesMap);
|
|
|
initHealthLabesMap(jdbcTemplate, healthLablesMap,oneList);
|
|
|
//把标签Map设置到对应的维度里面
|
|
|
for (DataModel dataModel : oneList) {
|
|
|
List<String> labels = healthLablesMap.get(dataModel.getPatient());
|
|
@ -44,7 +45,7 @@ public class DiseaseAndAgeConvert implements Convert {
|
|
|
return returnList;
|
|
|
}
|
|
|
|
|
|
private void initHealthLabesMap(JdbcTemplate jdbcTemplate, Map<String, List<String>> healthLablesMap) {
|
|
|
private void initHealthLabesMap(JdbcTemplate jdbcTemplate, Map<String, List<String>> healthLablesMap, List<DataModel> oneList) {
|
|
|
//得到患者的疾病标签(只要高血压 糖尿病)
|
|
|
String sql = "SELECT " +
|
|
|
" spli.label AS health_lable, " +
|
|
@ -65,23 +66,16 @@ public class DiseaseAndAgeConvert implements Convert {
|
|
|
healthLablesMap.put(one.getPatient(), labels);
|
|
|
});
|
|
|
//-得到患者的老年人标签
|
|
|
sql = " SELECT " +
|
|
|
" spli.label AS health_lable, " +
|
|
|
" spli.patient " +
|
|
|
" FROM " +
|
|
|
" wlyy_sign_patient_label_info spli " +
|
|
|
" WHERE " +
|
|
|
" spli.label_type = '1' " +
|
|
|
" AND spli. STATUS = '1' " +
|
|
|
" AND spli.label = 3 ";
|
|
|
healthLables = jdbcTemplate.query(sql, new BeanPropertyRowMapper(HealthLable.class));
|
|
|
healthLables.stream().forEach(one -> {
|
|
|
List<String> labels = healthLablesMap.get(one.getPatient());
|
|
|
if (labels == null) {
|
|
|
labels = new ArrayList<String>();
|
|
|
oneList.stream().forEach(one->{
|
|
|
int age = IdCardUtil.getAgeForIdcard(one.getIdcard());
|
|
|
if(age>=65){
|
|
|
List<String> labels = healthLablesMap.get(one.getPatient());
|
|
|
if (labels == null) {
|
|
|
labels = new ArrayList<String>();
|
|
|
}
|
|
|
labels.add(one.getHealthLable());
|
|
|
healthLablesMap.put(one.getPatient(), labels);
|
|
|
}
|
|
|
labels.add(one.getHealthLable());
|
|
|
healthLablesMap.put(one.getPatient(), labels);
|
|
|
});
|
|
|
}
|
|
|
}
|