|
@ -426,36 +426,49 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
|
|
|
|
|
|
public PageEnvelop getArchiveList(Integer type,Integer signStatus,String name,Integer page,Integer size){
|
|
|
page = page>0?page-1:0;
|
|
|
String countSql ="select count(DISTINCT p.id) from base_patient p where 1=1 ";
|
|
|
String sql = "select DISTINCT p.id,p.name,p.sex,p.photo,p.idcard,null as sign_status from base_patient p where a.patient = p.id ";
|
|
|
String sql = "";
|
|
|
String sqlCondition = "";
|
|
|
|
|
|
if (null!=signStatus&&1==type){
|
|
|
String countSql = "";
|
|
|
if (StringUtils.isNotBlank(name)){
|
|
|
sqlCondition +=" and p.name like '%"+name+"%' ";
|
|
|
}
|
|
|
if(1==type){//老人
|
|
|
if (0==signStatus){//未签约
|
|
|
countSql ="select count(DISTINCT p.id) from base_patient p where 1=1 ";
|
|
|
sql = "select DISTINCT p.id,p.name,p.sex,p.photo,p.idcard,false as sign_status from base_patient p where 1=1 ";
|
|
|
sql = "select DISTINCT p.id,p.name,p.sex,p.photo,p.idcard,0 as sign_status from base_patient p where 1=1 ";
|
|
|
sqlCondition +=" and NOT EXISTS(select sr.id from base_service_package_sign_record sr " +
|
|
|
" INNER JOIN base_service_package_record pr on sr.id = pr.sign_id and sr.status=1 " +
|
|
|
" INNER JOIN base_service_package pack on pr.service_package_id = pack.id and pack.del=1 " +
|
|
|
" where sr.patient = p.id) ";
|
|
|
}
|
|
|
else if (1==signStatus){//已签约
|
|
|
countSql ="select count(DISTINCT p.id) from base_patient p where 1=1 ";
|
|
|
sql = "select DISTINCT p.id,p.name,p.sex,p.photo,p.idcard,a.sign_status as sign_status from base_patient p,wlyy_archive a where a.patient = p.id ";
|
|
|
" where sr.patient = p.id) and p.del=1 and p.archive_type=1 ";
|
|
|
sql += sqlCondition;
|
|
|
}else if (1==signStatus){//已签约
|
|
|
countSql ="select count(DISTINCT p.id) from base_patient p,wlyy_archive a where a.patient = p.id ";
|
|
|
sql = "select DISTINCT p.id,p.name,p.sex,p.photo,p.idcard,1 as sign_status from base_patient p,wlyy_archive a where a.patient = p.id ";
|
|
|
sqlCondition +=" and EXISTS(select sr.id from base_service_package_sign_record sr " +
|
|
|
" INNER JOIN base_service_package_record pr on sr.id = pr.sign_id and sr.status=1 " +
|
|
|
" INNER JOIN base_service_package pack on pr.service_package_id = pack.id and pack.del=1 " +
|
|
|
" where sr.patient = p.id) ";
|
|
|
" where sr.patient = p.id) and p.del=1 and p.archive_type=1 ";
|
|
|
sql += sqlCondition;
|
|
|
}
|
|
|
}
|
|
|
if (null!=type){//档案类型
|
|
|
sqlCondition +=" and p.del=1 and p.archive_type="+type+" ";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(name)){
|
|
|
sqlCondition +=" and p.name like '%"+name+"%' ";
|
|
|
}
|
|
|
if(1==type&&1==signStatus){
|
|
|
sqlCondition += " order by a.sign_status desc ";
|
|
|
else {
|
|
|
countSql = "select count(DISTINCT p.id) from base_patient p where 1=1 and p.del=1 and p.archive_type=1 ";
|
|
|
sql = "select DISTINCT p.id,p.name,p.sex,p.photo,p.idcard,0 as sign_status from base_patient p where 1=1 "+
|
|
|
" and NOT EXISTS(select sr.id from base_service_package_sign_record sr " +
|
|
|
" INNER JOIN base_service_package_record pr on sr.id = pr.sign_id and sr.status=1 " +
|
|
|
" INNER JOIN base_service_package pack on pr.service_package_id = pack.id and pack.del=1 " +
|
|
|
" where sr.patient = p.id) and p.del=1 and p.archive_type=1 "+sqlCondition+
|
|
|
" union "+
|
|
|
"select DISTINCT p.id,p.name,p.sex,p.photo,p.idcard,1 as sign_status from base_patient p,wlyy_archive a where a.patient = p.id "+
|
|
|
" and EXISTS(select sr.id from base_service_package_sign_record sr " +
|
|
|
" INNER JOIN base_service_package_record pr on sr.id = pr.sign_id and sr.status=1 " +
|
|
|
" INNER JOIN base_service_package pack on pr.service_package_id = pack.id and pack.del=1 " +
|
|
|
" where sr.patient = p.id) and p.del=1 and p.archive_type=1 "+sqlCondition;
|
|
|
}
|
|
|
}else if (2==type){//新生儿
|
|
|
countSql ="select count(DISTINCT p.id) from base_patient p where 1=1 ";
|
|
|
sql = "select DISTINCT p.id,p.name,p.sex,p.photo,p.idcard,null as sign_status from base_patient p where 1=1 ";
|
|
|
sqlCondition +=" and p.del=1 and p.archive_type="+2+" ";//新生儿
|
|
|
sql += sqlCondition;
|
|
|
}
|
|
|
|
|
|
Long count = jdbcTemplate.queryForObject(countSql+sqlCondition,Long.class);
|
|
@ -475,7 +488,6 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
return PageEnvelop.getSuccessListWithPage("查询成功",result,page,size,count);
|
|
|
}
|
|
|
|