|  | @ -426,36 +426,49 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     public PageEnvelop getArchiveList(Integer type,Integer signStatus,String name,Integer page,Integer size){
 |  |     public PageEnvelop getArchiveList(Integer type,Integer signStatus,String name,Integer page,Integer size){
 | 
												
													
														
															|  |         page = page>0?page-1:0;
 |  |         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 = "";
 |  |         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){//未签约
 |  |             if (0==signStatus){//未签约
 | 
												
													
														
															|  |                 countSql  ="select count(DISTINCT p.id) from base_patient p where 1=1  ";
 |  |                 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 " +
 |  |                 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_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 " +
 |  |                         " 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 " +
 |  |                 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_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 " +
 |  |                         " 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);
 |  |         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);
 |  |         return PageEnvelop.getSuccessListWithPage("查询成功",result,page,size,count);
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 |