|
@ -782,6 +782,9 @@ public class StatisticsService {
|
|
|
* @param level 区域等级 2市3区4机构5团队6医生
|
|
|
*/
|
|
|
public JSONObject platformPeople(String area,Integer level) {
|
|
|
|
|
|
boolean b = StringUtils.isNotBlank(area) && 5 == level;
|
|
|
|
|
|
String areaFilter = " ";
|
|
|
JSONObject result = new JSONObject();
|
|
|
Integer olderTotal = 0;
|
|
@ -808,6 +811,9 @@ public class StatisticsService {
|
|
|
Integer unSignOlderTotal=0;
|
|
|
Integer unSignOlderOff=0;
|
|
|
Integer unSignOlderOn=0;
|
|
|
Integer streetOldTotal = 0;
|
|
|
Integer streetOldOff = 0;
|
|
|
Integer streetOldOn = 0;
|
|
|
|
|
|
|
|
|
//儿童注册人数
|
|
@ -841,13 +847,13 @@ public class StatisticsService {
|
|
|
oldFilter = " and a.id not in ('" + orgCodes + "')";
|
|
|
}
|
|
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(area)&&5==level){
|
|
|
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+"') OR ( a.saas_id = '"+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 archive_type = 1 and (a.sign_status=1 or a.register = 1) " +
|
|
|
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 archive_type = 1 and a.sign_status=1 " +
|
|
|
" and del='1' "+areaFilter+" " + oldFilter + " GROUP BY online";
|
|
|
List<Map<String, Object>> list1 = jdbcTemplate.queryForList(sql1);
|
|
|
for (Map<String, Object> map : list1) {
|
|
@ -862,8 +868,14 @@ public class StatisticsService {
|
|
|
olderTotal = olderOff + olderOn;
|
|
|
childTotal = childOff + childOn;
|
|
|
|
|
|
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 (sign_status=0 or sign_status is null ) " +
|
|
|
" and del='1' " + oldFilter + " GROUP BY online";
|
|
|
// 社区老人
|
|
|
String unSignOldAreaSql ="";
|
|
|
if (b) {
|
|
|
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";
|
|
|
list1 = jdbcTemplate.queryForList(sql1);
|
|
|
for (Map<String, Object> map : list1) {
|
|
|
Integer num = Integer.valueOf(map.get("c").toString());
|
|
@ -875,9 +887,27 @@ public class StatisticsService {
|
|
|
}
|
|
|
}
|
|
|
unSignOlderTotal = unSignOlderOff+unSignOlderOn;
|
|
|
//街道老人
|
|
|
|
|
|
String testUserSql = "(SELECT dict_code from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_older' OR dict_name = 'jkzl_user') AND (dict_code IS NOT null OR dict_code = ''))";
|
|
|
String needCareOldSql = "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 = 2 and (sign_status=0 or sign_status is null ) " +
|
|
|
" and del='1' AND id NOT IN " + testUserSql +unSignOldAreaSql+ " GROUP BY online";
|
|
|
list1 = jdbcTemplate.queryForList(needCareOldSql);
|
|
|
for (Map<String, Object> map : list1) {
|
|
|
Integer num = Integer.valueOf(map.get("c").toString());
|
|
|
Integer online = Integer.valueOf(map.get("online").toString());
|
|
|
if (online == 1) {
|
|
|
streetOldOn += num;
|
|
|
} else {
|
|
|
streetOldOff += num;
|
|
|
}
|
|
|
}
|
|
|
streetOldTotal = streetOldOff+streetOldOn;
|
|
|
|
|
|
|
|
|
|
|
|
//社工和教师注册人数
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(area)&&5==level){
|
|
|
if (b){
|
|
|
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 ) ";
|
|
|
}
|
|
@ -927,7 +957,7 @@ public class StatisticsService {
|
|
|
orgCodes = orgCodes.replaceAll(",", "','");
|
|
|
olderRelativeFilter = " and t2.id not in ('" + orgCodes + "') ";
|
|
|
}
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(area)&&5==level){
|
|
|
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 " +
|
|
@ -955,7 +985,7 @@ public class StatisticsService {
|
|
|
}
|
|
|
olderFamilyTotal = olderFamilyOff+olderFamilyOn;
|
|
|
//家属绑定老人数量
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(area)&&5==level){
|
|
|
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 " +
|
|
@ -967,7 +997,7 @@ public class StatisticsService {
|
|
|
|
|
|
olderFamilyBinding = jdbcTemplate.queryForObject(sql2,Integer.class);
|
|
|
|
|
|
//helper 社工,teacher 教师,child 幼儿,olderWx 老人公众号,olderPad 老人平板 olderFamily老人家属
|
|
|
//helper 社工,teacher 教师,child 幼儿,olderWx 老人公众号,olderPad 老人平板 olderFamily老人家属 street 街道老人二次导入朝辉街道
|
|
|
//helper4助老员 unSignOlder社区老人
|
|
|
result.put("olderTotal", olderTotal);
|
|
|
result.put("olderOn", olderOn);
|
|
@ -975,6 +1005,9 @@ public class StatisticsService {
|
|
|
result.put("childTotal", childTotal);
|
|
|
result.put("childOn", childOn);
|
|
|
result.put("childOff", childOff);
|
|
|
result.put("streetOldOn",streetOldOn);
|
|
|
result.put("streetOldTotal",streetOldTotal);
|
|
|
result.put("streetOldOff",streetOldOff);
|
|
|
result.put("unSignOlderTotal", unSignOlderTotal);
|
|
|
result.put("unSignOlderOff", unSignOlderOff);
|
|
|
result.put("unSignOlderOn", unSignOlderOn);
|
|
@ -3021,59 +3054,545 @@ public class StatisticsService {
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取招呼老人基本信息
|
|
|
* 获取照护老人+幼儿基本信息
|
|
|
* 签约老人+未签约有设备的
|
|
|
*
|
|
|
*/
|
|
|
public JSONObject findTendOld(Integer page,Integer size){
|
|
|
|
|
|
String sql = "SELECT DISTINCT p.id AS id,p.`name` AS `name`, p.sex AS sex,CASE WHEN LENGTH( p.idcard )= 18 THEN\n" +
|
|
|
"\t\tYEAR (\n" +
|
|
|
"\t\t\tnow()) - YEAR (\n" +
|
|
|
"\t\tsubstring( p.idcard, 7, 8 )) \n" +
|
|
|
"\t\tWHEN LENGTH( p.idcard )= 15 THEN\n" +
|
|
|
"\t\tYEAR (\n" +
|
|
|
"\t\t\tnow()) - YEAR (\n" +
|
|
|
"\t\tSTR_TO_DATE( CONCAT( '19', substring( p.idcard, 7, 2 )), '%Y' )) ELSE NULL \n" +
|
|
|
"\tEND AS age,\n" +
|
|
|
"\tp.mobile AS mobile,\n" +
|
|
|
"\tp.address AS address,\n" +
|
|
|
"\tt.`name` AS orgName,\n" +
|
|
|
"\tGROUP_CONCAT( DISTINCT d.NAME SEPARATOR ',' ) AS doctorName \n" +
|
|
|
"FROM base_patient p, base_service_package_sign_record sr, base_service_package_record r,base_service_package_item i, base_service_package pack,base_team t,base_team_member tm,base_doctor d \n" +
|
|
|
"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 ) = p.id \n" +
|
|
|
"\tAND r.team_code = t.id AND tm.team_code = t.id AND d.id = tm.doctor_code AND p.id NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' \n" +
|
|
|
" or dict_name = 'jkzl_user' or dict_name = 'jkzl_helper' or dict_name = 'jkzl_teacher' ) and dict_code is not null)\n" +
|
|
|
"GROUP BY p.idcard UNION SELECT p.id AS id,p.`name` AS `name`, p.sex AS sex,\n" +
|
|
|
"CASE\n" +
|
|
|
"\t\tWHEN LENGTH( p.idcard )= 18 THEN\n" +
|
|
|
"\t\tYEAR (\n" +
|
|
|
"\t\t\tnow()) - YEAR (\n" +
|
|
|
"\t\tsubstring( p.idcard, 7, 8 )) \n" +
|
|
|
"\t\tWHEN LENGTH( p.idcard )= 15 THEN\n" +
|
|
|
"\t\tYEAR (\n" +
|
|
|
"\t\t\tnow()) - YEAR (\n" +
|
|
|
"\t\tSTR_TO_DATE( CONCAT( '19', substring( p.idcard, 7, 2 )), '%Y' )) ELSE NULL \n" +
|
|
|
"\tEND AS age,\n" +
|
|
|
"\tp.mobile AS mobile,\n" +
|
|
|
"\tp.address AS address,\n" +
|
|
|
"\tp.address AS orgName,\n" +
|
|
|
"\t'' AS doctorName \n" +
|
|
|
"FROM base_patient p INNER JOIN wlyy_patient_device d ON p.id = d.`user` \n" +
|
|
|
"WHERE p.sign_status = 0 AND p.del = 1 AND d.del = 0 AND p.id NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' \n" +
|
|
|
" or dict_name = 'jkzl_user' or dict_name = 'jkzl_helper' or dict_name = 'jkzl_teacher' ) and dict_code is not null) ORDER BY id\n";
|
|
|
public JSONObject findTendOld(Integer type,Integer page,Integer size,String idcard,String name,String orgName){
|
|
|
|
|
|
String sql = "";
|
|
|
String orgNameSql = "";
|
|
|
String orgNameSql2 = "";
|
|
|
String nameSql = "";
|
|
|
String idcardSql = "";
|
|
|
|
|
|
if (StringUtils.isNotBlank(name)){
|
|
|
nameSql = " and p.name like '%"+name+"%'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(idcard)){
|
|
|
idcardSql = " and p.idcard = '"+idcard+"'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(orgName)){
|
|
|
orgNameSql = " and t.name ='"+orgName+"'";
|
|
|
orgNameSql2 = " and p.residential_area = '"+orgName+"'";
|
|
|
}
|
|
|
|
|
|
switch (type) {
|
|
|
case 1:
|
|
|
sql = " SELECT DISTINCT p.id AS id,p.`name` AS `name`,p.sex AS sex, p.idcard AS idcard, " +
|
|
|
" CASE WHEN LENGTH( p.idcard )= 18 THEN " +
|
|
|
" YEAR ( now()) - YEAR (substring( p.idcard, 7, 8 )) WHEN LENGTH( p.idcard )= 15 THEN " +
|
|
|
" YEAR ( now()) - YEAR (STR_TO_DATE( CONCAT( '19', substring( p.idcard, 7, 2 )), '%Y' )) ELSE NULL " +
|
|
|
" END AS age, p.mobile AS mobile, p.address AS address, t.`name` AS orgName, " +
|
|
|
" GROUP_CONCAT( DISTINCT d.NAME SEPARATOR ',' ) AS doctorName FROM " +
|
|
|
" base_patient p,base_service_package_sign_record sr,base_service_package_record r,base_service_package_item i,base_service_package pack,base_team t,base_team_member tm,base_doctor d " +
|
|
|
" 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 ) = p.id " +
|
|
|
" AND r.team_code = t.id " +
|
|
|
" AND tm.team_code = t.id " +
|
|
|
" AND p.archive_type = 1 " +nameSql+idcardSql+orgNameSql+
|
|
|
" AND d.id = tm.doctor_code <testUserSql> " +
|
|
|
" GROUP BY p.idcard " +
|
|
|
" UNION " +
|
|
|
" SELECT " +
|
|
|
" p.id AS id,p.`name` AS `name`, p.sex AS sex, p.idcard AS idcard, " +
|
|
|
" CASE WHEN LENGTH( p.idcard )= 18 THEN " +
|
|
|
" YEAR (now()) - YEAR ( substring( p.idcard, 7, 8 )) " +
|
|
|
" WHEN LENGTH( p.idcard )= 15 THEN " +
|
|
|
" YEAR (now()) - YEAR (STR_TO_DATE( CONCAT( '19', substring( p.idcard, 7, 2 )), '%Y' )) ELSE NULL " +
|
|
|
" END AS age, " +
|
|
|
" p.mobile AS mobile,p.address AS address, p.residential_area AS orgName,'' AS doctorName " +
|
|
|
" FROM " +
|
|
|
" base_patient p INNER JOIN wlyy_patient_device d ON p.id = d.`user` " +
|
|
|
" WHERE p.sign_status = 0 AND p.del = 1 AND d.del = 0 AND p.archive_type = 1 " + nameSql+idcardSql+orgNameSql2+
|
|
|
" <testUserSql> " +
|
|
|
" GROUP BY p.idcard ";
|
|
|
break;
|
|
|
case 2:
|
|
|
sql +=" SELECT DISTINCT p.id AS id, p.`name` AS `name`, p.sex AS sex, p.idcard AS idcard," +
|
|
|
" CASE WHEN LENGTH( p.idcard )= 18 THEN " +
|
|
|
" YEAR ( now()) - YEAR (substring( p.idcard, 7, 8 )) " +
|
|
|
" WHEN LENGTH( p.idcard )= 15 THEN YEAR (now()) - YEAR (STR_TO_DATE( CONCAT( '19', substring( p.idcard, 7, 2 )), '%Y' )) ELSE NULL " +
|
|
|
" END AS age,p.mobile AS mobile,p.address AS address " +
|
|
|
" FROM base_patient p " +
|
|
|
" WHERE p.archive_type = 2 and p.del = 1 "+nameSql+idcardSql+" <testUserSql>";
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
|
|
|
page = (page - 1) * size;
|
|
|
String testUserSql = "AND p.id NOT IN (SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict" +
|
|
|
" WHERE( dict_name = 'jkzl_child' OR dict_name = 'jkzl_older' OR dict_name = 'jkzl_user') AND dict_code IS NOT NULL ) ";
|
|
|
sql += " ORDER BY id limit " + page + "," + size + "";
|
|
|
|
|
|
sql = sql.replace("<testUserSql>",testUserSql);
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("data", list);
|
|
|
jsonObject.put("userTotal", list.size());
|
|
|
|
|
|
page = (page-1)*size;
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
//对应的社区
|
|
|
public List<Map<String, Object>> findOldOrg() {
|
|
|
String sql = " SELECT t.`name`,t.id FROM base_team t WHERE t.org_code IN(SELECT code FROM base_org WHERE type = '3' AND `code`" +
|
|
|
" not IN(SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org')) GROUP BY t.`name`";
|
|
|
return jdbcTemplate.queryForList(sql);
|
|
|
}
|
|
|
|
|
|
//超时工单
|
|
|
public JSONObject overTimeOrderList(Integer type,Integer page ,Integer size ,String name,String idcard,String orgCode){
|
|
|
|
|
|
String nameSql = "";
|
|
|
String idcardSql = "";
|
|
|
String orgCodeSql = "";
|
|
|
String total = "";
|
|
|
String sql = "";
|
|
|
if (StringUtils.isNotBlank(name)) {
|
|
|
nameSql = " AND p.`name` like '%"+name+"%'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(idcard)) {
|
|
|
idcardSql = " AND p.idcard = '"+idcard+"'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(idcard)) {
|
|
|
orgCodeSql = " AND t.id = '"+orgCode+"'";
|
|
|
}
|
|
|
|
|
|
String testUserSql = " NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_child' OR dict_name = 'jkzl_older' OR dict_name = 'jkzl_user' OR dict_name= 'jkzl_olderRelative' ) AND dict_code IS NOT NULL ) ";
|
|
|
|
|
|
if (page==0)page=1;
|
|
|
if (size==0)size=10;
|
|
|
|
|
|
page = (page - 1) * size;
|
|
|
|
|
|
|
|
|
switch (type) {
|
|
|
case 1:
|
|
|
sql = " SELECT DISTINCT" +
|
|
|
" p.name, o.`status`, o.id AS orderId,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%s') as create_time ," +
|
|
|
" GROUP_CONCAT( DISTINCT d.NAME SEPARATOR ',' ) AS doctorName," +
|
|
|
" GROUP_CONCAT( DISTINCT d.mobile SEPARATOR ',' ) AS dmobile," +
|
|
|
" p.mobile AS pmobile, p.address AS address, t.`name` AS orgName," +
|
|
|
" '紧急预警' AS ewtype, 1 AS type, o.serve_address AS serviceAddress " +
|
|
|
"FROM " +
|
|
|
" base_emergency_assistance_order o INNER JOIN base_patient p ON o.patient = p.id, base_service_package_sign_record sr, " +
|
|
|
" base_service_package_record r,base_service_package_item i, base_service_package pack,base_team t,base_team_member tm, " +
|
|
|
" base_doctor d WHERE o.STATUS = 1 AND o.patient "+testUserSql+" " +
|
|
|
" AND ( TIMESTAMPDIFF( HOUR, o.create_time, now()) >= 1 ) " +
|
|
|
" AND NOT EXISTS ( SELECT 1 FROM base_emergency_warn_log log WHERE log.order_id = o.id ) " +
|
|
|
" AND 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 ) = p.id " +
|
|
|
" AND r.team_code = t.id " +
|
|
|
" AND tm.team_code = t.id " +
|
|
|
" AND p.archive_type = 1 " +
|
|
|
" AND d.id = tm.doctor_code " +orgCodeSql+idcardSql+nameSql+
|
|
|
" union all " +
|
|
|
"SELECT DISTINCT p.name, o.`status`, o.id AS orderId, DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%s') as create_time, " +
|
|
|
" GROUP_CONCAT( DISTINCT d.NAME SEPARATOR ',' ) AS doctorName, " +
|
|
|
" GROUP_CONCAT( DISTINCT d.mobile SEPARATOR ',' ) AS dmobile, " +
|
|
|
" p.mobile AS pmobile, p.address AS address, t.`name` AS orgName, " +
|
|
|
" o.serve_desc AS ewtype, 2 AS type, o.serve_address AS serviceAddress " +
|
|
|
"FROM " +
|
|
|
" base_security_monitoring_order o INNER JOIN base_patient p ON o.patient = p.id , " +
|
|
|
" base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i, base_service_package pack, " +
|
|
|
" base_team t, base_team_member tm, base_doctor d " +
|
|
|
" WHERE " +
|
|
|
" o.STATUS = 1 " +
|
|
|
" AND o.patient "+testUserSql+" " +
|
|
|
" AND ( TIMESTAMPDIFF( HOUR, o.create_time, now()) >= 1 ) " +
|
|
|
" AND NOT EXISTS (SELECT 1 FROM base_emergency_warn_log log WHERE log.order_id = o.id) " +
|
|
|
" AND 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 ) = p.id " +
|
|
|
" AND r.team_code = t.id " +
|
|
|
" AND tm.team_code = t.id " +
|
|
|
" AND p.archive_type = 1 " + orgCodeSql+idcardSql+nameSql+
|
|
|
" AND d.id = tm.doctor_code ";
|
|
|
total = overTimeOrderListTotalSql(1,nameSql,idcardSql,orgCodeSql);
|
|
|
break;
|
|
|
case 2:
|
|
|
sql = "SELECT DISTINCT o.id as orderId, p.`name`, p.mobile,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%s') as create_time , fd.NAME AS lifeName, bo.NAME AS serviceOrgName, bo.mobile AS orgMobile, t.`name` AS area " +
|
|
|
" FROM " +
|
|
|
" base_life_care_order o " +
|
|
|
" INNER JOIN base_patient p ON o.patient = p.id " +
|
|
|
" LEFT JOIN base_life_care_fee_detail fd ON o.id = fd.order_id " +
|
|
|
" LEFT JOIN base_org bo ON o.hospital = bo.`code`, " +
|
|
|
" base_service_package_sign_record sr, " +
|
|
|
" base_service_package_record r, " +
|
|
|
" base_service_package_item i, " +
|
|
|
" base_service_package pack, " +
|
|
|
" base_team t " +
|
|
|
" WHERE " +
|
|
|
" o.STATUS = 1 " +
|
|
|
" AND o.patient "+testUserSql+" " +
|
|
|
" AND ( TIMESTAMPDIFF( HOUR, o.create_time, now()) >= 6 ) " +
|
|
|
" AND 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 ) = p.id " +
|
|
|
" AND r.team_code = t.id " +
|
|
|
" AND p.archive_type = 1 "+nameSql+idcardSql+orgCodeSql+" UNION ALL " +
|
|
|
"SELECT DISTINCT co.id as orderId, p.`name`, p.mobile, DATE_FORMAT(co.create_time,'%Y-%m-%d %H:%i:%s') as create_time, fd.NAME AS lifeName, co.hospital_name AS serviceOrgName,bo.mobile AS orgMobile, p.residential_area AS area " +
|
|
|
"FROM " +
|
|
|
" base_life_care_order co " +
|
|
|
" LEFT JOIN base_patient p ON co.patient = p.id " +
|
|
|
" LEFT JOIN base_life_care_fee_detail fd ON co.id = fd.order_id " +
|
|
|
" LEFT JOIN base_org bo ON co.hospital = bo.`code` " +
|
|
|
"WHERE " +
|
|
|
" p.sign_status <> 1 " +
|
|
|
" AND co.`status` = 1 " +
|
|
|
" AND p.id "+testUserSql+""+nameSql+idcardSql+orgCodeSql;
|
|
|
total = overTimeOrderListTotalSql(2,nameSql,idcardSql,orgCodeSql);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
sql += "GROUP BY orderId ORDER BY create_time DESC LIMIT "+page+","+size+" ";
|
|
|
|
|
|
sql += " limit "+page+","+size+"";
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("data",list);
|
|
|
jsonObject.put("oldTotal",list.size());
|
|
|
jsonObject.put("list",list);
|
|
|
jsonObject.put("total",total);
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
//紧急安防工单列表
|
|
|
public JSONObject emeSecOrderList(Integer status,String name,String idcard,String orgCode,Integer page,Integer size){
|
|
|
|
|
|
if (page==null) page=1;
|
|
|
if (size==null) size=10;
|
|
|
page = (page-1)*size;
|
|
|
|
|
|
String statusSql ="AND o.`status` <> -1";
|
|
|
String nameSql = "";
|
|
|
String idcardSql = "";
|
|
|
String orgCodeSql = "";
|
|
|
|
|
|
if (StringUtils.isNotBlank(name)){
|
|
|
nameSql = " AND p.`name` LIKE '%"+name+"%'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(idcard)){
|
|
|
idcardSql = "AND p.idcard = '"+idcard+"'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(orgCode)){
|
|
|
orgCodeSql =" AND t.id = '"+orgCode+"'";
|
|
|
}
|
|
|
if (null!=status){
|
|
|
statusSql = "AND o.status = "+status+"";
|
|
|
}
|
|
|
|
|
|
String sql = "SELECT p.name,o.`status`,o.id AS orderId,DATE_FORMAT( o.create_time, '%Y-%m-%d %H:%i:%s' ) AS create_time, " +
|
|
|
" GROUP_CONCAT( DISTINCT d.NAME SEPARATOR ',' ) AS doctorName, " +
|
|
|
" GROUP_CONCAT( DISTINCT d.mobile SEPARATOR ',' ) AS dmobile, " +
|
|
|
" p.mobile AS pmobile, p.address AS address,t.`name` AS orgName, " +
|
|
|
" '紧急预警' AS ewtype, 1 AS type,o.serve_address AS serviceAddress " +
|
|
|
" FROM " +
|
|
|
" base_emergency_assistance_order o " +
|
|
|
" LEFT JOIN base_patient p ON o.patient = p.id " +
|
|
|
" LEFT JOIN base_service_package_sign_record sr ON CONVERT( sr.patient USING utf8 ) = p.id AND sr.STATUS = 1 AND sr.`status` = 1 " +
|
|
|
" LEFT JOIN base_service_package_record r ON sr.id = r.sign_id " +
|
|
|
" LEFT JOIN base_service_package_item i ON r.service_package_id = i.service_package_id AND i.del = 1 " +
|
|
|
" LEFT JOIN base_service_package pack ON r.service_package_id = pack.id " +
|
|
|
" LEFT JOIN base_team t ON r.team_code = t.id " +
|
|
|
" LEFT JOIN base_team_member tm ON tm.team_code = t.id " +
|
|
|
" LEFT JOIN base_doctor d ON d.id = tm.doctor_code " +
|
|
|
"WHERE 1=1 " +
|
|
|
statusSql+nameSql+idcardSql+orgCodeSql+
|
|
|
" AND o.org_code NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' AND dict_code IS NOT NULL ) GROUP BY o.id " +
|
|
|
" UNION ALL " +
|
|
|
" SELECT p.name,o.`status`,o.id AS orderId,DATE_FORMAT( o.create_time, '%Y-%m-%d %H:%i:%s' ) AS create_time, " +
|
|
|
" GROUP_CONCAT( DISTINCT d.NAME SEPARATOR ',' ) AS doctorName, " +
|
|
|
" GROUP_CONCAT( DISTINCT d.mobile SEPARATOR ',' ) AS dmobile, " +
|
|
|
" p.mobile AS pmobile,p.address AS address,t.`name` AS orgName, " +
|
|
|
" o.serve_desc AS ewtype,2 AS type,o.serve_address AS serviceAddress " +
|
|
|
"FROM " +
|
|
|
" base_security_monitoring_order o " +
|
|
|
" LEFT JOIN base_patient p ON o.patient = p.id " +
|
|
|
" LEFT JOIN base_service_package_sign_record sr ON CONVERT ( sr.patient USING utf8 ) = p.id AND sr.`status` = 1 " +
|
|
|
" LEFT JOIN base_service_package_record r ON sr.id = r.sign_id " +
|
|
|
" LEFT JOIN base_service_package_item i ON r.service_package_id = i.service_package_id AND i.del = 1 " +
|
|
|
" LEFT JOIN base_service_package pack ON r.service_package_id = pack.id " +
|
|
|
" LEFT JOIN base_team t ON r.team_code = t.id " +
|
|
|
" LEFT JOIN base_team_member tm ON tm.team_code = t.id " +
|
|
|
" LEFT JOIN base_doctor d ON d.id = tm.doctor_code " +
|
|
|
" WHERE 1=1 " +
|
|
|
statusSql+nameSql+idcardSql+orgCodeSql+
|
|
|
" AND p.id NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_child' OR dict_name = 'jkzl_older' OR dict_name = 'jkzl_user' OR dict_name= 'jkzl_olderRelative' ) AND dict_code IS NOT NULL ) " +
|
|
|
" GROUP BY o.id ORDER BY create_time DESC LIMIT "+page+","+size+"";
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("list",list);
|
|
|
jsonObject.put("total",emeSecOrderListTotalSql(nameSql,idcardSql,orgCodeSql,statusSql));
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
|
|
|
private String emeSecOrderListTotalSql(String nameSql,String idcardSql,String orgCodeSql,String statusSql){
|
|
|
String sql ="SELECT SUM(a.total) FROM(\n" +
|
|
|
"SELECT \n" +
|
|
|
"\tcount(DISTINCT o.id) AS total \n" +
|
|
|
"FROM\n" +
|
|
|
"\tbase_emergency_assistance_order o\n" +
|
|
|
"\tLEFT JOIN base_patient p ON o.patient = p.id\n" +
|
|
|
"\tLEFT JOIN base_service_package_sign_record sr ON CONVERT( sr.patient USING utf8 ) = p.id AND sr.STATUS = 1 AND sr.`status` = 1 \t\n" +
|
|
|
"\tLEFT JOIN base_service_package_record r ON sr.id = r.sign_id \n" +
|
|
|
"\tLEFT JOIN base_service_package_item i ON r.service_package_id = i.service_package_id AND i.del = 1 \n" +
|
|
|
"\tLEFT JOIN base_service_package pack ON r.service_package_id = pack.id \n" +
|
|
|
"\tLEFT JOIN base_team t ON r.team_code = t.id\n" +
|
|
|
"\tLEFT JOIN\tbase_team_member tm ON tm.team_code = t.id\n" +
|
|
|
"\tLEFT JOIN base_doctor d ON d.id = tm.doctor_code\n" +
|
|
|
"WHERE\t\n" +
|
|
|
"\t1=1 \n " +statusSql+nameSql+idcardSql+orgCodeSql+
|
|
|
" AND o.`status` <> -1\n" +
|
|
|
"\tAND o.org_code NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' AND dict_code IS NOT NULL ) \n" +
|
|
|
"UNION ALL\n" +
|
|
|
"SELECT \n" +
|
|
|
"\tcount(DISTINCT o.id) AS total \n" +
|
|
|
"FROM\n" +
|
|
|
"\tbase_security_monitoring_order o\n" +
|
|
|
"\tLEFT JOIN base_patient p ON o.patient = p.id\n" +
|
|
|
"\tLEFT JOIN base_service_package_sign_record sr ON CONVERT ( sr.patient USING utf8 ) = p.id AND sr.`status` = 1 \n" +
|
|
|
" LEFT JOIN\tbase_service_package_record r ON sr.id = r.sign_id \n" +
|
|
|
"\tLEFT JOIN base_service_package_item i ON r.service_package_id = i.service_package_id AND i.del = 1 \n" +
|
|
|
"\tLEFT JOIN base_service_package pack ON r.service_package_id = pack.id \n" +
|
|
|
"\tLEFT JOIN base_team t ON r.team_code = t.id \n" +
|
|
|
"\tLEFT JOIN base_team_member tm ON tm.team_code = t.id \n" +
|
|
|
"\tLEFT JOIN base_doctor d ON d.id = tm.doctor_code \n" +
|
|
|
"WHERE 1=1 \n" +
|
|
|
"\t\n" +statusSql+nameSql+idcardSql+orgCodeSql+
|
|
|
"\tAND p.id NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_child' OR dict_name = 'jkzl_older' OR dict_name = 'jkzl_user' OR dict_name= 'jkzl_olderRelative' ) AND dict_code IS NOT NULL )\n" +
|
|
|
") a";
|
|
|
|
|
|
List<String> list = jdbcTemplate.queryForList(sql, String.class);
|
|
|
return list.get(0);
|
|
|
}
|
|
|
|
|
|
private String overTimeOrderListTotalSql(Integer type,String nameSql,String idcardSql,String orgCodeSql){
|
|
|
String sql = "";
|
|
|
switch (type){
|
|
|
case 1:
|
|
|
sql = "SELECT SUM(a.total) FROM (\n" +
|
|
|
"\tSELECT \n" +
|
|
|
"\t\tcount(DISTINCT o.id) AS total\n" +
|
|
|
"\tFROM\n" +
|
|
|
"\t\tbase_emergency_assistance_order o\n" +
|
|
|
"\t\tINNER JOIN base_patient p ON o.patient = p.id,\n" +
|
|
|
"\t\tbase_service_package_sign_record sr,\n" +
|
|
|
"\t\tbase_service_package_record r,\n" +
|
|
|
"\t\tbase_service_package_item i,\n" +
|
|
|
"\t\tbase_service_package pack,\n" +
|
|
|
"\t\tbase_team t,\n" +
|
|
|
"\t\tbase_team_member tm,\n" +
|
|
|
"\t\tbase_doctor d \n" +
|
|
|
"\tWHERE\n" +
|
|
|
"\t\to.STATUS = 1 \n" +
|
|
|
"\t\tAND o.patient NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_child' OR dict_name = 'jkzl_older' OR dict_name = 'jkzl_user' ) AND dict_code IS NOT NULL ) \n" +
|
|
|
"\t\tAND ( TIMESTAMPDIFF( HOUR, o.create_time, now()) >= 6 ) \n" +
|
|
|
"\t\tAND NOT EXISTS ( SELECT 1 FROM base_emergency_warn_log log WHERE log.order_id = o.id ) \n" +
|
|
|
"\t\tAND sr.id = r.sign_id \n" +
|
|
|
"\t\tAND sr.STATUS = 1 \n" +
|
|
|
"\t\tAND r.service_package_id = i.service_package_id \n" +
|
|
|
"\t\tAND r.service_package_id = pack.id \n" +
|
|
|
"\t\tAND i.del = 1 \n" +
|
|
|
"\t\tAND sr.`status` = 1 \n" +
|
|
|
"\t\tAND CONVERT ( sr.patient USING utf8 ) = p.id \n" +
|
|
|
"\t\tAND r.team_code = t.id \n" +
|
|
|
"\t\tAND tm.team_code = t.id \n" +
|
|
|
"\t\tAND p.archive_type = 1 \n" +
|
|
|
"\t\tAND d.id = tm.doctor_code "+nameSql+idcardSql+orgCodeSql+" UNION ALL\n" +
|
|
|
"\tSELECT \n" +
|
|
|
"\t\tCOUNT(DISTINCT o.id) AS total\n" +
|
|
|
"\tFROM\n" +
|
|
|
"\t\tbase_security_monitoring_order o\n" +
|
|
|
"\t\tINNER JOIN base_patient p ON o.patient = p.id,\n" +
|
|
|
"\t\tbase_service_package_sign_record sr,\n" +
|
|
|
"\t\tbase_service_package_record r,\n" +
|
|
|
"\t\tbase_service_package_item i,\n" +
|
|
|
"\t\tbase_service_package pack,\n" +
|
|
|
"\t\tbase_team t,\n" +
|
|
|
"\t\tbase_team_member tm,\n" +
|
|
|
"\t\tbase_doctor d \n" +
|
|
|
"\tWHERE\n" +
|
|
|
"\t\to.STATUS = 1 \n" +
|
|
|
"\t\tAND o.patient NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_child' OR dict_name = 'jkzl_older' OR dict_name = 'jkzl_user' ) AND dict_code IS NOT NULL ) \n" +
|
|
|
"\t\tAND ( TIMESTAMPDIFF( HOUR, o.create_time, now()) >= 6 ) \n" +
|
|
|
"\t\tAND NOT EXISTS ( SELECT 1 FROM base_emergency_warn_log log WHERE log.order_id = o.id ) \n" +
|
|
|
"\t\tAND sr.id = r.sign_id \n" +
|
|
|
"\t\tAND sr.STATUS = 1 \n" +
|
|
|
"\t\tAND r.service_package_id = i.service_package_id \n" +
|
|
|
"\t\tAND r.service_package_id = pack.id \n" +
|
|
|
"\t\tAND i.del = 1 \n" +
|
|
|
"\t\tAND sr.`status` = 1 \n" +
|
|
|
"\t\tAND CONVERT ( sr.patient USING utf8 ) = p.id \n" +
|
|
|
"\t\tAND r.team_code = t.id \n" +
|
|
|
"\t\tAND tm.team_code = t.id "+nameSql+idcardSql+orgCodeSql+" \n" +
|
|
|
"\t\tAND p.archive_type = 1 \n" +
|
|
|
"\t\tAND d.id = tm.doctor_code) a";
|
|
|
break;
|
|
|
case 2:
|
|
|
sql = "SELECT\n" +
|
|
|
"\tSUM( a.total ) \n" +
|
|
|
"FROM\n" +
|
|
|
"\t(\n" +
|
|
|
"\tSELECT\n" +
|
|
|
"\t\tcount( DISTINCT o.id ) AS total \n" +
|
|
|
"\tFROM\n" +
|
|
|
"\t\tbase_life_care_order o\n" +
|
|
|
"\t\tINNER JOIN base_patient p ON o.patient = p.id\n" +
|
|
|
"\t\tLEFT JOIN base_life_care_fee_detail fd ON o.id = fd.order_id\n" +
|
|
|
"\t\tLEFT JOIN base_org bo ON o.hospital = bo.`code`,\n" +
|
|
|
"\t\tbase_service_package_sign_record sr,\n" +
|
|
|
"\t\tbase_service_package_record r,\n" +
|
|
|
"\t\tbase_service_package_item i,\n" +
|
|
|
"\t\tbase_service_package pack,\n" +
|
|
|
"\t\tbase_team t \n" +
|
|
|
"\tWHERE\n" +
|
|
|
"\t\to.STATUS = 1 \n" +
|
|
|
"\t\tAND o.patient NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_child' OR dict_name = 'jkzl_older' OR dict_name = 'jkzl_user' ) AND dict_code IS NOT NULL ) \n" +
|
|
|
"\t\tAND ( TIMESTAMPDIFF( HOUR, o.create_time, now()) >= 6 ) \n" +
|
|
|
"\t\tAND sr.id = r.sign_id \n" +
|
|
|
"\t\tAND sr.STATUS = 1 \n" +
|
|
|
"\t\tAND r.service_package_id = i.service_package_id \n" +
|
|
|
"\t\tAND r.service_package_id = pack.id \n" +
|
|
|
"\t\tAND i.del = 1 \n" +
|
|
|
"\t\tAND sr.`status` = 1 \n" +
|
|
|
"\t\tAND CONVERT ( sr.patient USING utf8 ) = p.id \n" +
|
|
|
"\t\tAND r.team_code = t.id \n" +
|
|
|
"\t\tAND p.archive_type = 1 "+nameSql+idcardSql+orgCodeSql+" UNION ALL\n" +
|
|
|
"\tSELECT\n" +
|
|
|
"\t\tcount( DISTINCT co.id ) AS total \n" +
|
|
|
"\tFROM\n" +
|
|
|
"\t\tbase_life_care_order co\n" +
|
|
|
"\t\tLEFT JOIN base_patient p ON co.patient = p.id\n" +
|
|
|
"\t\tLEFT JOIN base_life_care_fee_detail fd ON co.id = fd.order_id\n" +
|
|
|
"\t\tLEFT JOIN base_org bo ON co.hospital = bo.`code`\n" +
|
|
|
"\t\tLEFT JOIN base_team t ON t.org_code = bo.CODE \n" +
|
|
|
"\tWHERE\n" +
|
|
|
"\t\tp.sign_status <> 1 \n" +
|
|
|
"\t\tAND co.`status` = 1 "+nameSql+idcardSql+orgCodeSql+" \n" +
|
|
|
"\t\tAND p.id NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_child' OR dict_name = 'jkzl_older' OR dict_name = 'jkzl_user' ) AND dict_code IS NOT NULL ) \n" +
|
|
|
"\t) a";
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
|
|
|
List<String> list = jdbcTemplate.queryForList(sql, String.class);
|
|
|
return list.get(0);
|
|
|
}
|
|
|
|
|
|
//健康设备-安防设备 列表
|
|
|
public PageEnvelop healthySecurityDeviceList(String name, String deviceSn, String categoryCode, String contactStatus, String type, Integer page, Integer size) {
|
|
|
|
|
|
String nameSql = "";
|
|
|
String deviceSnSql = "";
|
|
|
String categoryCodeSql = "";
|
|
|
String contactStatusSql = "";
|
|
|
String totalSql = "";
|
|
|
if (StringUtils.isNotBlank(contactStatus))
|
|
|
contactStatusSql = " AND wd.contact_status = '" + contactStatus + "'";
|
|
|
if (StringUtils.isNotBlank(name)) nameSql = " AND p.name LIKE '%" + name + "%'";
|
|
|
if (StringUtils.isNotBlank(deviceSn)) deviceSnSql = " AND pd.device_sn = '" + deviceSn + "'";
|
|
|
|
|
|
if (page == null) page = 1;
|
|
|
if (size == null) size = 10;
|
|
|
page = (page - 1) * size;
|
|
|
|
|
|
String deviceSql = "";
|
|
|
if ("jk".equals(type)) {
|
|
|
categoryCodeSql = " AND ( pd.category_code = 1 OR pd.category_code = 2 )";
|
|
|
if (StringUtils.isNotBlank(categoryCode))
|
|
|
categoryCodeSql = " AND pd.category_code = '" + categoryCode + "'";
|
|
|
|
|
|
deviceSql = "SELECT DISTINCT p.id AS patient, pd.id as id,pd.device_name AS deviceName,pd.device_sn AS deviceSn,'健康设备' AS deviceType,p.`name`," +
|
|
|
" p.mobile,p.phone,dd.photo,wd.contact_status * 1 AS contactStatus" +
|
|
|
" FROM " +
|
|
|
" wlyy_patient_device pd LEFT JOIN base_patient p ON pd.`user` = p.id LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
|
|
|
" LEFT JOIN wlyy_devices wd ON wd.device_code = pd.device_sn WHERE " +
|
|
|
" pd.del = 0 " + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
|
|
|
totalSql = "SELECT count(DISTINCT pd.id) FROM " +
|
|
|
" wlyy_patient_device pd LEFT JOIN base_patient p ON pd.`user` = p.id LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
|
|
|
" LEFT JOIN wlyy_devices wd ON wd.device_code = pd.device_sn WHERE " +
|
|
|
" pd.del = 0 " + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
|
|
|
}
|
|
|
|
|
|
if ("af".equals(type) || StringUtils.isBlank(type)) {
|
|
|
categoryCodeSql = " AND pd.category_code > 2 ";
|
|
|
if (StringUtils.isNotBlank(categoryCode))
|
|
|
categoryCodeSql = " AND pd.category_code = '" + categoryCode + "'";
|
|
|
|
|
|
deviceSql = " SELECT DISTINCT p.id AS patient,pd.id AS id ,pd.device_name AS deviceName,pd.device_sn AS deviceSn,'安防设备' AS deviceType,p.`name`,p.mobile,p.phone,dd.photo,wd.contact_status * 1 AS contactStatus " +
|
|
|
" FROM " +
|
|
|
" wlyy_patient_device pd LEFT JOIN base_patient p ON pd.`user` = p.id LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
|
|
|
" LEFT JOIN wlyy_devices wd ON wd.device_code = pd.device_sn WHERE " +
|
|
|
" pd.del = 0 " + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
|
|
|
|
|
|
totalSql = " SELECT count(DISTINCT p.id) FROM " +
|
|
|
" wlyy_patient_device pd LEFT JOIN base_patient p ON pd.`user` = p.id LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
|
|
|
" LEFT JOIN wlyy_devices wd ON wd.device_code = pd.device_sn WHERE " +
|
|
|
" pd.del = 0 " + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
|
|
|
}
|
|
|
|
|
|
deviceSql += " GROUP BY id LIMIT " + page + "," + size + " ";
|
|
|
|
|
|
List<Map<String, Object>> deviceList = jdbcTemplate.queryForList(deviceSql);
|
|
|
List<String> list = jdbcTemplate.queryForList(totalSql, String.class);
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
for (Map<String, Object> map : deviceList) {
|
|
|
Map<String, Object> signInfoMap = patientSignInfo(map.get("patient").toString());
|
|
|
if (null!=signInfoMap) {
|
|
|
map.put("orgName", signInfoMap.get("orgName"));
|
|
|
jsonArray.add(map);
|
|
|
}
|
|
|
}
|
|
|
return PageEnvelop.getSuccessListWithPage("success", jsonArray, page, size, Long.parseLong(list.get(0)));
|
|
|
}
|
|
|
|
|
|
//获取对应设备名称
|
|
|
public List<Map<String, Object>> deviceNameList(String type){
|
|
|
String sql = "SELECT `name`,category_code FROM dm_device WHERE device_type = "+type+" GROUP BY category_code";
|
|
|
return jdbcTemplate.queryForList(sql);
|
|
|
}
|
|
|
|
|
|
|
|
|
private Map<String, Object> patientSignInfo(String patient){
|
|
|
String signSql ="SELECT p.NAME,p.id AS id, " +
|
|
|
" GROUP_CONCAT( DISTINCT d.NAME SEPARATOR ',' ) AS doctorName," +
|
|
|
" GROUP_CONCAT( DISTINCT d.mobile SEPARATOR ',' ) AS dmobile," +
|
|
|
" p.mobile AS pmobile, p.address AS address,t.`name` AS orgName " +
|
|
|
" FROM " +
|
|
|
" base_patient p " +
|
|
|
" INNER JOIN base_service_package_sign_record sr ON CONVERT( sr.patient USING utf8 ) = p.id AND sr.STATUS = 1 AND sr.`status` = 1 " +
|
|
|
" INNER JOIN base_service_package_record r ON sr.id = r.sign_id " +
|
|
|
" INNER JOIN base_service_package_item i ON r.service_package_id = i.service_package_id AND i.del = 1 " +
|
|
|
" INNER JOIN base_service_package pack ON r.service_package_id = pack.id " +
|
|
|
" INNER JOIN base_team t ON r.team_code = t.id " +
|
|
|
" INNER JOIN base_team_member tm ON tm.team_code = t.id " +
|
|
|
" INNER JOIN base_doctor d ON d.id = tm.doctor_code " +
|
|
|
" WHERE 1=1 and p.id = '"+patient+"' " +
|
|
|
" AND p.id NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_user' OR dict_name = 'jkzl_older' ) AND dict_code IS NOT NULL ) GROUP BY id\n";
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(signSql);
|
|
|
return list.size()>0?list.get(0):null;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|