|
@ -2738,9 +2738,152 @@ public class StatisticsESService {
|
|
|
startDate = elasticsearchUtil.changeTime(startDate + " 00:00:00");
|
|
|
endDate = elasticsearchUtil.changeTime(endDate + " 23:59:59");
|
|
|
Integer interval = Integer.parseInt(type)+2;
|
|
|
|
|
|
//签入统计
|
|
|
List<SaveModel> inData = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"34","2",interval+"");
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> inList = new ArrayList<>();
|
|
|
for(SaveModel one:inData){
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("inCount",one.getResult2().longValue());
|
|
|
inList.add(map);
|
|
|
}
|
|
|
|
|
|
//签出统计
|
|
|
List<SaveModel> outData = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"35","2",interval+"");
|
|
|
return null;
|
|
|
List<Map<String, Object>> outList = new ArrayList<>();
|
|
|
for(SaveModel one:outData){
|
|
|
map = new HashMap<>();
|
|
|
if ("0".equals(type)) {
|
|
|
map.put("dateNo",dateFormat.format(one.getQuotaDate()));
|
|
|
}else{
|
|
|
map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
|
|
|
}
|
|
|
map.put("outCount",one.getResult2().longValue());
|
|
|
outList.add(map);
|
|
|
}
|
|
|
JSONObject rs = new JSONObject();
|
|
|
rs.put("inLine", inList);
|
|
|
rs.put("outLine", outList);
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> getPrescriptionAgeLowLevel(String level,String lowlevel,String area,String disease) throws Exception{
|
|
|
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
List<SaveModel> list = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,Integer.parseInt(level),"58","2",lowlevel,disease);
|
|
|
Map<String, Object> map = null;
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
if(list.size()>0){
|
|
|
for(SaveModel one:list){
|
|
|
map = new HashMap<>();
|
|
|
if(Integer.parseInt(lowlevel)>=Integer.parseInt(level)){
|
|
|
lowlevel = String.valueOf(Integer.parseInt(level)+1);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTown());
|
|
|
map.put("name",one.getTownName());
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getHospital());
|
|
|
map.put("name",one.getHospitalName());
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTeam());
|
|
|
map.put("name",one.getTeamName());
|
|
|
}
|
|
|
map.put("val",one.getResult2().longValue());
|
|
|
}
|
|
|
}else{
|
|
|
|
|
|
//统计数据为空时,自建结果集
|
|
|
List<Town> townList = null;
|
|
|
List<Hospital> hospitalList = null;
|
|
|
List<AdminTeam> adminTeams = null;
|
|
|
if(SaveModel.cityLevel.equals(level)){
|
|
|
townList = townDao.findByCityCode(area);
|
|
|
hospitalList = hospitalDao.findByCity(area);
|
|
|
adminTeams = findAllTeam();
|
|
|
}else if(SaveModel.townLevel.equals(level)){
|
|
|
hospitalList = hospitalDao.findByTownCode(area);
|
|
|
adminTeams = adminTeamDao.findByTownCode(area);
|
|
|
}else if(SaveModel.OrgLevel.equals(level)){
|
|
|
adminTeams = adminTeamDao.findByOrgCode(area);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
for(Town one : townList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
}
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
for(Hospital one : hospitalList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
}
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
for(AdminTeam one : adminTeams){
|
|
|
map.put("code",one.getLeaderCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
rs.add(map);
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 得到全部团队
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
private List<AdminTeam> findAllTeam() {
|
|
|
String sql = "SELECT " +
|
|
|
" wat.id id, " +
|
|
|
" wat.name name, " +
|
|
|
" h.`code` org_code, " +
|
|
|
" h.`name` org_name, " +
|
|
|
" h.town town_code, " +
|
|
|
" h.town_name town_name " +
|
|
|
"FROM " +
|
|
|
" dm_hospital h, " +
|
|
|
" wlyy_admin_team wat " +
|
|
|
"WHERE " +
|
|
|
" h.`code` = wat.org_code " +
|
|
|
"AND wat.available = 1";
|
|
|
List<AdminTeam> adminTeams = jdbcTemplate.query(sql, new BeanPropertyRowMapper(AdminTeam.class));
|
|
|
return adminTeams;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getPrescriptionAgeHistogram(String level,String area,String disease) throws Exception{
|
|
|
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
//统计年龄分布
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate,area,Integer.parseInt(level),"60","2",disease);
|
|
|
//获取总人数
|
|
|
String sql = " SELECT COUNT(1) AS num FROM ( SELECT DISTINCT p.patient FROM wlyy_prescription p ) a ";
|
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
|
Long num = (Long)count.get("num");
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
|
Double ageRate = list.get(0).getResult2()/num;
|
|
|
map.put("0ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(1).getResult2()/num;
|
|
|
map.put("7ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(2).getResult2()/num;
|
|
|
map.put("19ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(3).getResult2()/num;
|
|
|
map.put("31ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(4).getResult2()/num;
|
|
|
map.put("51ageRate",decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(5).getResult2()/num;
|
|
|
map.put("65ageRate",decimalFormat.format(ageRate));
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
/**
|