|
@ -791,11 +791,11 @@ public class StatisticsService {
|
|
|
*/
|
|
|
public JSONObject platformPeople(String area,Integer level) {
|
|
|
|
|
|
boolean b = StringUtils.isNotBlank(area) && 5 == level;
|
|
|
boolean areaFilterFlag = StringUtils.isNotBlank(area) && 5 == level;
|
|
|
|
|
|
String areaFilter = " ";
|
|
|
JSONObject result = new JSONObject();
|
|
|
Integer olderTotal = 0;
|
|
|
Integer olderTotal = 0; //已照护老人
|
|
|
Integer childTotal = 0;
|
|
|
Integer helperTotal = 0;
|
|
|
Integer teacherTotal = 0;
|
|
@ -816,7 +816,7 @@ public class StatisticsService {
|
|
|
Integer helper4On=0;
|
|
|
Integer helper4Off=0;
|
|
|
Integer helper4Total=0;
|
|
|
Integer unSignOlderTotal=0;
|
|
|
Integer unSignOlderTotal=0; //需招呼老人
|
|
|
Integer unSignOlderOff=0;
|
|
|
Integer unSignOlderOn=0;
|
|
|
Integer streetOldTotal = 0;
|
|
@ -852,17 +852,19 @@ public class StatisticsService {
|
|
|
if (listOldtmp.size() > 0) {
|
|
|
String orgCodes = String.valueOf(listOldtmp.get(0).get("orgCodes"));
|
|
|
orgCodes = orgCodes.replaceAll(",", "','");
|
|
|
oldFilter = " and a.id not in ('" + orgCodes + "')";
|
|
|
}
|
|
|
|
|
|
if (b){
|
|
|
areaFilter = " and EXISTS ( select 1 from " +
|
|
|
"base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
|
|
|
" where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
|
|
|
" and i.del = 1 and sr.`status`=1 and CONVERT(sr.patient USING utf8) = a.id and r.team_code='"+area+"') ";
|
|
|
}
|
|
|
String sql1 = "SELECT COUNT(*) c,case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online from base_patient a WHERE a.archive_type = 1 AND a.sign_status = 1 AND a.del =1 " +
|
|
|
" and del='1' "+areaFilter+" " + oldFilter + " GROUP BY online";
|
|
|
oldFilter = " and a.id not in ('" + orgCodes + "') ";
|
|
|
}
|
|
|
|
|
|
String sql1 = " SELECT COUNT(distinct a.id) c,case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online from base_patient a " +
|
|
|
" WHERE a.archive_type = 1 and a.sign_status=1 and a.del = '1' " +oldFilter+
|
|
|
"and EXISTS ( select 1 from " +
|
|
|
"base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
|
|
|
"where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
|
|
|
"and i.del = 1 and sr.`status`=1 and CONVERT(sr.patient USING utf8) = a.id "+(areaFilterFlag?" and r.team_code='"+area+"' ":" ")+" ) " +
|
|
|
"UNION ALL " +
|
|
|
"SELECT COUNT(distinct a.id) c,case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online from base_patient a where a.archive_type = 1 " +
|
|
|
" and a.sign_status=0 and register='1' and a.del = '1' "+(areaFilterFlag?" and a.saas_id='"+area+"' ":"")+" " +oldFilter+
|
|
|
"and EXISTS (select 1 from wlyy_patient_device pd where pd.user = a.id and pd.del=0) GROUP BY on_line ";
|
|
|
List<Map<String, Object>> list1 = jdbcTemplate.queryForList(sql1);
|
|
|
for (Map<String, Object> map : list1) {
|
|
|
Integer num = Integer.valueOf(map.get("c").toString());
|
|
@ -876,14 +878,14 @@ public class StatisticsService {
|
|
|
olderTotal = olderOff + olderOn;
|
|
|
childTotal = childOff + childOn;
|
|
|
|
|
|
// 社区老人
|
|
|
// 需招呼老人
|
|
|
String unSignOldAreaSql ="";
|
|
|
if (b) {
|
|
|
if (areaFilterFlag) {
|
|
|
unSignOldAreaSql = " AND saas_id = '"+area+"'";
|
|
|
}
|
|
|
|
|
|
sql1 = "SELECT COUNT(*) c,case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online from base_patient a WHERE archive_type = 1 and a.register = 1 and (sign_status=0 or sign_status is null ) " +
|
|
|
" and del='1' " + oldFilter + unSignOldAreaSql + " GROUP BY online";
|
|
|
" and del='1' and not EXISTS (select 1 from wlyy_patient_device pd where pd.user = a.id and pd.del=0) " + oldFilter + unSignOldAreaSql + " GROUP BY online";
|
|
|
list1 = jdbcTemplate.queryForList(sql1);
|
|
|
for (Map<String, Object> map : list1) {
|
|
|
Integer num = Integer.valueOf(map.get("c").toString());
|
|
@ -915,7 +917,7 @@ public class StatisticsService {
|
|
|
|
|
|
|
|
|
//社工和教师注册人数
|
|
|
if (b){
|
|
|
if (areaFilterFlag){
|
|
|
areaFilter = " and EXISTS ( select 1 from base_team_member mem where mem.doctor_code = a.id " +
|
|
|
" and mem.team_code='"+area+"' and mem.del=1 ) ";
|
|
|
}
|
|
@ -965,7 +967,7 @@ public class StatisticsService {
|
|
|
orgCodes = orgCodes.replaceAll(",", "','");
|
|
|
olderRelativeFilter = " and t2.id not in ('" + orgCodes + "') ";
|
|
|
}
|
|
|
if (b){
|
|
|
if (areaFilterFlag){
|
|
|
//有社区只查询该社区老人的家属列表
|
|
|
areaFilter = " and EXISTS ( select 1 from " +
|
|
|
"base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
|
|
@ -993,7 +995,7 @@ public class StatisticsService {
|
|
|
}
|
|
|
olderFamilyTotal = olderFamilyOff+olderFamilyOn;
|
|
|
//家属绑定老人数量
|
|
|
if (b){
|
|
|
if (areaFilterFlag){
|
|
|
areaFilter = " and EXISTS ( select 1 from " +
|
|
|
"base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
|
|
|
" where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
|
|
@ -2580,13 +2582,18 @@ public class StatisticsService {
|
|
|
orgCodes = orgCodes.replaceAll(",","','");
|
|
|
filter = " and a.id not in ('"+orgCodes+"')";
|
|
|
}
|
|
|
sql = "SELECT count(a.id) from base_patient a WHERE a.archive_type = 1 and a.sign_status=1 and a.del = '1' ";
|
|
|
sql += " and EXISTS ( select 1 from " +
|
|
|
"base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
|
|
|
" where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
|
|
|
" and i.del = 1 and sr.`status`=1 and CONVERT(sr.patient USING utf8) = a.id and r.team_code='"+teamId+"' ) "+filter;
|
|
|
sql = " select sum(total) from ( " +
|
|
|
"SELECT count(distinct a.id) total from base_patient a WHERE a.archive_type = 1 and a.sign_status=1 and a.del = '1' " +
|
|
|
"and EXISTS ( select 1 from " +
|
|
|
"base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
|
|
|
"where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
|
|
|
"and i.del = 1 and sr.`status`=1 and CONVERT(sr.patient USING utf8) = a.id and r.team_code='"+teamId+"') " +filter+
|
|
|
" UNION ALL " +
|
|
|
"SELECT count(distinct a.id) total from base_patient a where a.archive_type = 1 and a.sign_status=0 and register='1' and a.del = '1' and a.saas_id='"+teamId+"' " +
|
|
|
"and EXISTS (select 1 from wlyy_patient_device pd where pd.user = a.id and pd.del=0) " + filter+
|
|
|
" )A ";
|
|
|
count = jdbcTemplate.queryForObject(sql,Integer.class);
|
|
|
map.put("oldTotal",count);
|
|
|
map.put("oldTotal",count);//照护老人
|
|
|
//照护老人数量
|
|
|
filter = "";
|
|
|
sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' ";
|
|
@ -2677,14 +2684,18 @@ public class StatisticsService {
|
|
|
if(listtmp.size()>0){
|
|
|
String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
|
|
|
orgCodes = orgCodes.replaceAll(",","','");
|
|
|
filter = " and a.id not in ('"+orgCodes+"')";
|
|
|
}
|
|
|
sql = "SELECT count(distinct a.id) from base_patient a WHERE a.archive_type = 1 and a.sign_status=1 and a.del = '1' ";
|
|
|
sql += " and ( EXISTS ( select 1 from " +
|
|
|
"base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
|
|
|
" where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
|
|
|
" and i.del = 1 and sr.`status`=1 and CONVERT(sr.patient USING utf8) = a.id and r.team_code='"+teamId+"') or " +
|
|
|
" (EXISTS (select 1 from wlyy_patient_device pd where pd.user = a.id and pd.del=0) and a.register='1' and a.saas_id = '"+teamId+"' )) "+filter;
|
|
|
filter = " and a.id not in ('"+orgCodes+"') ";
|
|
|
}
|
|
|
sql = " select sum(total) from ( " +
|
|
|
"SELECT count(distinct a.id) total from base_patient a WHERE a.archive_type = 1 and a.sign_status=1 and a.del = '1' " +
|
|
|
"and EXISTS ( select 1 from " +
|
|
|
"base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack " +
|
|
|
"where sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id " +
|
|
|
"and i.del = 1 and sr.`status`=1 and CONVERT(sr.patient USING utf8) = a.id and r.team_code='"+teamId+"') " +filter+
|
|
|
" UNION ALL " +
|
|
|
"SELECT count(distinct a.id) total from base_patient a where a.archive_type = 1 and a.sign_status=0 and register='1' and a.del = '1' and a.saas_id='"+teamId+"' " +
|
|
|
"and EXISTS (select 1 from wlyy_patient_device pd where pd.user = a.id and pd.del=0) " + filter+
|
|
|
" )A ";
|
|
|
count = jdbcTemplate.queryForObject(sql,Integer.class);
|
|
|
|
|
|
map.put("oldTotal",count);//照护老人数量
|