|
@ -21,6 +21,7 @@ import com.yihu.jw.patient.dao.BasePatientDao;
|
|
|
import com.yihu.jw.patient.service.BasePatientMedicardCardService;
|
|
|
import com.yihu.jw.restmodel.ResponseContant;
|
|
|
import com.yihu.jw.restmodel.web.PageEnvelop;
|
|
|
import com.yihu.jw.sms.dao.HospitalSysDictDao;
|
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import com.yihu.jw.utils.StringUtil;
|
|
@ -73,6 +74,8 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
private String wxId;
|
|
|
@Autowired
|
|
|
private DeviceService deviceService;
|
|
|
@Autowired
|
|
|
private HospitalSysDictDao hospitalSysDictDao;
|
|
|
|
|
|
/**
|
|
|
* 签约记录
|
|
@ -441,21 +444,48 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
String online= imUtil.getOnlineListByType(null);
|
|
|
JSONObject json = JSON.parseObject(online).getJSONObject("data");
|
|
|
String limit = " limit "+(page-1)*size+","+size;
|
|
|
String filter ="";
|
|
|
if("1".equals(type)||StringUtil.isBlank(type)){
|
|
|
List<Map<String,Object>> list = findChild(name,residentialArea,limit,json.getJSONObject("child"));
|
|
|
String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_child' ";
|
|
|
List<Map<String,Object>> listtmp = jdbcTemplate.queryForList(sqltmp);
|
|
|
if(listtmp.size()>0){
|
|
|
String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
|
|
|
orgCodes = orgCodes.replaceAll(",","','");
|
|
|
filter = " and id not in ('"+orgCodes+"')";
|
|
|
}
|
|
|
|
|
|
List<Map<String,Object>> list = findChild(name,residentialArea,limit,filter);
|
|
|
re.put("child",list);
|
|
|
re.put("childTotal",findChildTotal(name,residentialArea));
|
|
|
re.put("childTotal",findChildTotal(name,residentialArea,filter));
|
|
|
}
|
|
|
if("2".equals(type)||StringUtil.isBlank(type)){
|
|
|
List<Map<String,Object>> list = findOld(name,residentialArea,limit,json);
|
|
|
filter = "";
|
|
|
String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_older' ";
|
|
|
List<Map<String,Object>> listtmp = jdbcTemplate.queryForList(sqltmp);
|
|
|
if(listtmp.size()>0){
|
|
|
String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
|
|
|
orgCodes = orgCodes.replaceAll(",","','");
|
|
|
filter = " and a.id not in ('"+orgCodes+"')";
|
|
|
}
|
|
|
|
|
|
List<Map<String,Object>> list = findOld(name,residentialArea,limit,json,filter);
|
|
|
re.put("old",list);
|
|
|
re.put("oldTotal",findOldTotal(name,residentialArea));
|
|
|
re.put("oldTotal",findOldTotal(name,residentialArea,filter));
|
|
|
}
|
|
|
if("3".equals(type)||StringUtil.isBlank(type)){
|
|
|
List<Map<String,Object>> list = findHelper(name,limit,json.getJSONObject("helper"));
|
|
|
filter = "";
|
|
|
String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_helper' ";
|
|
|
List<Map<String,Object>> listtmp = jdbcTemplate.queryForList(sqltmp);
|
|
|
if(listtmp.size()>0){
|
|
|
String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
|
|
|
orgCodes = orgCodes.replaceAll(",","','");
|
|
|
filter = " and id not in ('"+orgCodes+"')";
|
|
|
}
|
|
|
|
|
|
List<Map<String,Object>> list = findHelper(name,limit,filter);
|
|
|
re.put("helper",list);
|
|
|
|
|
|
re.put("helperTotal",findHelperTotal(name));
|
|
|
re.put("helperTotal",findHelperTotal(name,filter));
|
|
|
}
|
|
|
return re;
|
|
|
}
|
|
@ -465,10 +495,9 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
* @param name
|
|
|
* @param residentialArea
|
|
|
* @param limit
|
|
|
* @param json
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findChild(String name,String residentialArea,String limit,JSONObject json){
|
|
|
public List<Map<String,Object>> findChild(String name,String residentialArea,String limit,String filter1){
|
|
|
String sql = "SELECT id,name,photo,idcard,CAST(IFNULL(birthday,'') AS char ) birthday,residential_area residentialArea" +
|
|
|
",sex,IFNULL(on_line,0) online from base_patient WHERE archive_type = 2 and del = '1' ";
|
|
|
if(!StringUtil.isBlank(name)){
|
|
@ -477,6 +506,8 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
if(!StringUtil.isBlank(residentialArea)){
|
|
|
sql+= " and residential_area = '"+residentialArea+"' ";
|
|
|
}
|
|
|
|
|
|
sql += filter1;
|
|
|
sql += " order by online desc";
|
|
|
sql+=limit;
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
@ -485,7 +516,6 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
String paientId = map.get("id").toString();
|
|
|
String filter = " and patient = '"+paientId+"'";
|
|
|
Integer count = jdbcTemplate.queryForObject(sqlCount+filter,Integer.class);
|
|
|
// map.put("online",json.containsKey(paientId));
|
|
|
map.put("doorCoach",count);
|
|
|
String idcardNo = map.get("idcard") + "";
|
|
|
Date birthday = DateUtil.strToDate(map.get("birthday").toString());
|
|
@ -495,7 +525,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public Integer findChildTotal(String name,String residentialArea){
|
|
|
public Integer findChildTotal(String name,String residentialArea,String filter){
|
|
|
String sql = "SELECT count(id) from base_patient WHERE archive_type = 2 and del = '1' ";
|
|
|
if(!StringUtil.isBlank(name)){
|
|
|
sql+= " and name like '%"+name+"%' ";
|
|
@ -503,6 +533,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
if(!StringUtil.isBlank(residentialArea)){
|
|
|
sql+= " and residential_area = '"+residentialArea+"' ";
|
|
|
}
|
|
|
sql += filter;
|
|
|
return jdbcTemplate.queryForObject(sql,Integer.class);
|
|
|
}
|
|
|
|
|
@ -514,7 +545,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
* @param json
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findOld(String name,String residentialArea,String limit,JSONObject json){
|
|
|
public List<Map<String,Object>> findOld(String name,String residentialArea,String limit,JSONObject json,String filter1){
|
|
|
String sql = "SELECT a.id,a.name,a.photo,a.idcard,CAST(IFNULL(a.birthday,'') AS char ) birthday,a.residential_area residentialArea,a.sex " +
|
|
|
", GROUP_CONCAT(DISTINCT d.category_code) deviceFlag,IFNULL(on_line,0) online,IFNULL(sign_status,0) signStatus from base_patient a " +
|
|
|
" LEFT JOIN wlyy_patient_device d on d.`user`=a.id WHERE a.archive_type = 1 and a.del = '1' ";
|
|
@ -524,6 +555,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
if(!StringUtil.isBlank(residentialArea)){
|
|
|
sql+= " and residential_area = '"+residentialArea+"' ";
|
|
|
}
|
|
|
sql += filter1;
|
|
|
sql += " GROUP BY a.id,a.name,a.photo,a.idcard,a.birthday,a.residential_area,a.sex,online,signStatus ";
|
|
|
sql += " ORDER BY online,signStatus desc";
|
|
|
sql += limit;
|
|
@ -550,7 +582,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public Integer findOldTotal(String name,String residentialArea){
|
|
|
public Integer findOldTotal(String name,String residentialArea,String filter){
|
|
|
String sql = "SELECT count(a.id) from base_patient a WHERE a.archive_type = 1 and a.del = '1' ";
|
|
|
if(!StringUtil.isBlank(name)){
|
|
|
sql+= " and name like '%"+name+"%' ";
|
|
@ -558,6 +590,7 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
if(!StringUtil.isBlank(residentialArea)){
|
|
|
sql+= " and residential_area = '"+residentialArea+"' ";
|
|
|
}
|
|
|
sql += filter;
|
|
|
return jdbcTemplate.queryForObject(sql,Integer.class);
|
|
|
}
|
|
|
|
|
@ -565,14 +598,14 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
* 查找助老员
|
|
|
* @param name
|
|
|
* @param limit
|
|
|
* @param json
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findHelper(String name,String limit,JSONObject json){
|
|
|
public List<Map<String,Object>> findHelper(String name,String limit,String fileter){
|
|
|
String sql = "SELECT id,name,photo,sex,IFNULL(on_line,0) online from base_doctor WHERE doctor_level = 2 and del = '1' ";
|
|
|
if(!StringUtil.isBlank(name)){
|
|
|
sql+= " and name like '%"+name+"%' ";
|
|
|
}
|
|
|
sql += fileter;
|
|
|
sql += " ORDER BY online desc";
|
|
|
sql+=limit;
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
@ -594,7 +627,6 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
Integer lifeCare = jdbcTemplate.queryForObject(sqlLife+filter,Integer.class);
|
|
|
Integer emergency = jdbcTemplate.queryForObject(sqlEmergency+filter,Integer.class);
|
|
|
Integer security = jdbcTemplate.queryForObject(sqlSecurity+filter,Integer.class);
|
|
|
// map.put("online",json.containsKey(doctorId));
|
|
|
map.put("lifeCare",lifeCare);
|
|
|
map.put("emergency",emergency);
|
|
|
map.put("security",security);
|
|
@ -602,11 +634,12 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public Integer findHelperTotal(String name){
|
|
|
public Integer findHelperTotal(String name,String filter){
|
|
|
String sql = "SELECT count(id) from base_doctor WHERE doctor_level = 2 and del = '1' ";
|
|
|
if(!StringUtil.isBlank(name)){
|
|
|
sql+= " and name like '%"+name+"%' ";
|
|
|
}
|
|
|
sql += filter;
|
|
|
return jdbcTemplate.queryForObject(sql,Integer.class);
|
|
|
}
|
|
|
|