|  | @ -8,6 +8,7 @@ import com.yihu.jw.care.service.wechat.WeiXinAccessTokenUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.im.util.ImUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.IdCardUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.security.MD5;
 | 
	
	
		
			
				|  | @ -37,6 +38,8 @@ public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamily
 | 
	
		
			
				|  |  |     private ServicePackageSignRecordDao signRecordDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private WeiXinAccessTokenUtils weiXinAccessTokenUtils;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private ImUtil imUtil;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -444,6 +447,79 @@ public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamily
 | 
	
		
			
				|  |  |         return resultArray;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取居民的家庭成员
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray membersWithOnLineFlag(String patient) {
 | 
	
		
			
				|  |  |         JSONArray resultArray = new JSONArray();
 | 
	
		
			
				|  |  |         String sql = "select *,CAST(t2.archive_type as char) as archive_type " +
 | 
	
		
			
				|  |  |                 " from " +
 | 
	
		
			
				|  |  |                 "    base_patient_family_member t1, " +
 | 
	
		
			
				|  |  |                 "    base_patient t2 " +
 | 
	
		
			
				|  |  |                 " where " +
 | 
	
		
			
				|  |  |                 "    t2.id in (select family_member from base_patient_family_member where patient = ? ) " +
 | 
	
		
			
				|  |  |                 "    and t1.patient = ? " +
 | 
	
		
			
				|  |  |                 "    and t1.family_member = t2.id ";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{patient, patient});
 | 
	
		
			
				|  |  |         if (result != null && result.size() > 0) {
 | 
	
		
			
				|  |  |             for (Map<String, Object> map : result) {
 | 
	
		
			
				|  |  |                 JSONObject obj = new JSONObject();
 | 
	
		
			
				|  |  |                 List<ServicePackageSignRecordDO> signs = signRecordDao.findByStatusAndPatient(1,map.get("family_member").toString());
 | 
	
		
			
				|  |  |                 boolean jtSign = false;
 | 
	
		
			
				|  |  |                 int status = 0;
 | 
	
		
			
				|  |  |                 if(signs.size()>0){
 | 
	
		
			
				|  |  |                     jtSign = true;
 | 
	
		
			
				|  |  |                     status = 1;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 Integer isAuthorize = (Integer) map.get("is_authorize");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 obj.put("id", map.get("id"));
 | 
	
		
			
				|  |  |                 obj.put("name", map.get("name"));
 | 
	
		
			
				|  |  |                 obj.put("isContacts", map.get("is_contacts"));
 | 
	
		
			
				|  |  |                 obj.put("sex", map.get("sex"));
 | 
	
		
			
				|  |  |                 obj.put("isAuthorize", isAuthorize);//0:未授权,1:已授权
 | 
	
		
			
				|  |  |                 obj.put("birthday", map.get("birthday"));
 | 
	
		
			
				|  |  |                 obj.put("idcard", StringUtils.isEmpty(String.valueOf(map.get("idcard"))) ? "" : map.get("idcard").toString());
 | 
	
		
			
				|  |  |                 obj.put("photo", map.get("photo"));
 | 
	
		
			
				|  |  |                 obj.put("mobile", map.get("mobile"));
 | 
	
		
			
				|  |  |                 obj.put("address", StringUtils.isEmpty(String.valueOf(map.get("address"))) ? "" : map.get("address"));
 | 
	
		
			
				|  |  |                 obj.put("familyRelation", map.get("family_relation"));
 | 
	
		
			
				|  |  |                 obj.put("familyRelationName", relations.get(map.get("family_relation")));
 | 
	
		
			
				|  |  |                 if (jtSign) {
 | 
	
		
			
				|  |  |                     obj.put("signType", 1);
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     obj.put("signType", 0);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 obj.put("state", "1");//0 :未处理;1:已同意;2:已拒绝
 | 
	
		
			
				|  |  |                 String archive_type = null;
 | 
	
		
			
				|  |  |                 Integer oneLineFlag =0;
 | 
	
		
			
				|  |  |                 switch (map.get("archive_type").toString()){
 | 
	
		
			
				|  |  |                     case "1":
 | 
	
		
			
				|  |  |                         archive_type = "older";//老人
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                     case "2":
 | 
	
		
			
				|  |  |                         archive_type = "child";//新生儿
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if (StringUtils.isNotBlank(archive_type)){
 | 
	
		
			
				|  |  |                     String onLineStr = imUtil.findByUserIdAndType(map.get("id").toString(),archive_type);
 | 
	
		
			
				|  |  |                     JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
 | 
	
		
			
				|  |  |                     if (200 == oneLineObj.getInteger("status")){
 | 
	
		
			
				|  |  |                         if (oneLineObj.getInteger("data")>0){
 | 
	
		
			
				|  |  |                             oneLineFlag=1;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 obj.put("oneLineFlag", oneLineFlag);
 | 
	
		
			
				|  |  |                 resultArray.add(obj);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return resultArray;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取有授权的家庭成员
 | 
	
		
			
				|  |  |      *
 |