|  | @ -9,6 +9,7 @@ import com.yihu.jw.hospital.family.dao.BasePatientMemberDictDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.family.dao.WlyyPatientFamilyMemberDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.Envelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.MixEnvelop;
 | 
	
	
		
			
				|  | @ -20,6 +21,7 @@ import net.sf.json.JSONArray;
 | 
	
		
			
				|  |  | import org.apache.commons.lang.StringUtils;
 | 
	
		
			
				|  |  | import org.checkerframework.checker.units.qual.A;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Value;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -42,6 +44,11 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
 | 
	
		
			
				|  |  |     private BasePatientDao basePatientDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private HibenateUtils hibenateUtils;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private YkyyEntranceService ykyyEntranceService;
 | 
	
		
			
				|  |  |     @Value("${wechat.id}")
 | 
	
		
			
				|  |  |     private String wxId;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //添加关联家属
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public MixEnvelop addFamily(String id,String patientId, String familyName, String dictId, String cardType, String idCard, String phoneNum,boolean demo) throws Exception {
 | 
	
	
		
			
				|  | @ -64,84 +71,112 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
 | 
	
		
			
				|  |  |         if (null!=basePatientMemberDictDO){
 | 
	
		
			
				|  |  |             dictName = basePatientMemberDictDO.getRelationName();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String familyId="";
 | 
	
		
			
				|  |  |         String birth = "";
 | 
	
		
			
				|  |  |         int sex=3;
 | 
	
		
			
				|  |  |         //获取his家属数据
 | 
	
		
			
				|  |  |         JSONArray jsonArray = entranceService.BS10008(idCard,"","","","","",demo);
 | 
	
		
			
				|  |  |         if(jsonArray!=null&&jsonArray.size()>0){
 | 
	
		
			
				|  |  |             net.sf.json.JSONObject jsonObject= net.sf.json.JSONObject.fromObject(jsonArray.get(0).toString());
 | 
	
		
			
				|  |  |             String familyId="";
 | 
	
		
			
				|  |  |             //如果病人id为空则没有就诊记录
 | 
	
		
			
				|  |  |             if (null!=jsonObject.get("Patient_Id")){
 | 
	
		
			
				|  |  |                 familyId = jsonObject.getString("Patient_Id");
 | 
	
		
			
				|  |  |                 String Pat_name = jsonObject.getString("Pat_Name");
 | 
	
		
			
				|  |  |                 if (null!=jsonObject.get("Phone_Number_Business")){
 | 
	
		
			
				|  |  |                     String Next_Of_Kin_Phone = jsonObject.get("Phone_Number_Business").toString();
 | 
	
		
			
				|  |  |                     if(!Next_Of_Kin_Phone.equalsIgnoreCase(phoneNum)){
 | 
	
		
			
				|  |  |         JSONArray jsonArray = new JSONArray();
 | 
	
		
			
				|  |  |         if("xm_ykyy_wx".equalsIgnoreCase(wxId)){
 | 
	
		
			
				|  |  |             jsonArray = ykyyEntranceService.findHisPatientByIdCard(idCard,false);
 | 
	
		
			
				|  |  |             if(jsonArray!=null&&jsonArray.size()>0){
 | 
	
		
			
				|  |  |                 net.sf.json.JSONObject jsonObject= net.sf.json.JSONObject.fromObject(jsonArray.get(0).toString());
 | 
	
		
			
				|  |  |                 if (null!=jsonObject.get("brid")){
 | 
	
		
			
				|  |  |                     String Pat_name = jsonObject.getString("brxm");
 | 
	
		
			
				|  |  |                     if (!Pat_name.equalsIgnoreCase(familyName)) {
 | 
	
		
			
				|  |  |                         mixEnvelop.setStatus(408);
 | 
	
		
			
				|  |  |                         mixEnvelop.setMessage("您所添加的家属的电话有误,无法添加");
 | 
	
		
			
				|  |  |                         mixEnvelop.setMessage("您所添加的家属的名称有误,无法添加");
 | 
	
		
			
				|  |  |                         return mixEnvelop;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if(!Pat_name.equalsIgnoreCase(familyName)){
 | 
	
		
			
				|  |  |                     familyId= jsonObject.getString("brid");
 | 
	
		
			
				|  |  |                     birth= jsonObject.getString("csny");
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     mixEnvelop.setStatus(408);
 | 
	
		
			
				|  |  |                     mixEnvelop.setMessage("您所添加的家属的名称有误,无法添加");
 | 
	
		
			
				|  |  |                     mixEnvelop.setMessage("您所添加的家属无就诊记录无法添加");
 | 
	
		
			
				|  |  |                     return mixEnvelop;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 result.setFamilyRelation(dictId);
 | 
	
		
			
				|  |  |                 result.setFamilyRelationName(dictName);
 | 
	
		
			
				|  |  |                 result.setIsDel(1);
 | 
	
		
			
				|  |  |                 result.setPatient(patientId);
 | 
	
		
			
				|  |  |                 result.setCardNo(idCard);
 | 
	
		
			
				|  |  |                 result.setCardType(cardType);
 | 
	
		
			
				|  |  |                 //保存到base_patient表中
 | 
	
		
			
				|  |  |                 basePatientDO.setMobile(phoneNum);
 | 
	
		
			
				|  |  |                 if(null!=jsonObject.get("Birth_Date")){
 | 
	
		
			
				|  |  |                     String birth = jsonObject.get("Birth_Date").toString();
 | 
	
		
			
				|  |  |                     SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |                     Date saveBirth = sf.parse(birth);
 | 
	
		
			
				|  |  |                     basePatientDO.setBirthday(saveBirth);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 basePatientDO.setName(familyName);
 | 
	
		
			
				|  |  |                 basePatientDO.setIdcard(idCard);
 | 
	
		
			
				|  |  |                 basePatientDO.setRegister("0");
 | 
	
		
			
				|  |  |                 basePatientDO.setDel("1");
 | 
	
		
			
				|  |  |                 if(null!=jsonObject.get("Sex")){
 | 
	
		
			
				|  |  |                     basePatientDO.setSex(Integer.parseInt(jsonObject.get("Sex").toString()));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 BasePatientDO sucessPatient= basePatientDao.save(basePatientDO);
 | 
	
		
			
				|  |  |                 String patientNewId= "";
 | 
	
		
			
				|  |  |                 if (sucessPatient!=null){
 | 
	
		
			
				|  |  |                     patientNewId=sucessPatient.getId();
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 result.setFamilyMember(patientNewId);
 | 
	
		
			
				|  |  |                 wlyyPatientFamilyMemberDao.save(result);
 | 
	
		
			
				|  |  |                 patientMappingDO.setIdcard(idCard);
 | 
	
		
			
				|  |  |                 patientMappingDO.setSource("1");
 | 
	
		
			
				|  |  |                 patientMappingDO.setPatientName(familyName);
 | 
	
		
			
				|  |  |                 patientMappingDO.setMappingCode(familyId);
 | 
	
		
			
				|  |  |                 patientMappingDO.setPatient(patientNewId);
 | 
	
		
			
				|  |  |                 patientMappingDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                 patientMappingDao.save(patientMappingDO);
 | 
	
		
			
				|  |  |                 resultMap.put("patientId",patientId);
 | 
	
		
			
				|  |  |                 resultMap.put("familyMember",patientNewId);
 | 
	
		
			
				|  |  |                 resultMap.put("idCard",idCard);
 | 
	
		
			
				|  |  |                 resultMap.put("phoneNum",phoneNum);
 | 
	
		
			
				|  |  |                 resultMap.put("relationName",dictName);
 | 
	
		
			
				|  |  |                 resultMap.put("name",familyName);
 | 
	
		
			
				|  |  |                 resultMap.put("cardType",cardType);
 | 
	
		
			
				|  |  |                 List<Map<String,Object>> resultList = new ArrayList();
 | 
	
		
			
				|  |  |                 resultList.add(resultMap);
 | 
	
		
			
				|  |  |                 mixEnvelop.setStatus(200);
 | 
	
		
			
				|  |  |                 mixEnvelop.setMessage("添加成功");
 | 
	
		
			
				|  |  |                 mixEnvelop.setDetailModelList(resultList);
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else if ("xm_zsyy_wx".equalsIgnoreCase(wxId)) {
 | 
	
		
			
				|  |  |             jsonArray = entranceService.BS10008(idCard, "", "", "", "", "", demo);
 | 
	
		
			
				|  |  |             if (jsonArray != null && jsonArray.size() > 0) {
 | 
	
		
			
				|  |  |                 net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(jsonArray.get(0).toString());
 | 
	
		
			
				|  |  |                 //如果病人id为空则没有就诊记录
 | 
	
		
			
				|  |  |                 if (null != jsonObject.get("Patient_Id")) {
 | 
	
		
			
				|  |  |                     familyId = jsonObject.getString("Patient_Id");
 | 
	
		
			
				|  |  |                     String Pat_name = jsonObject.getString("Pat_Name");
 | 
	
		
			
				|  |  |                     if (null != jsonObject.get("Phone_Number_Business")) {
 | 
	
		
			
				|  |  |                         String Next_Of_Kin_Phone = jsonObject.get("Phone_Number_Business").toString();
 | 
	
		
			
				|  |  |                         if (!Next_Of_Kin_Phone.equalsIgnoreCase(phoneNum)) {
 | 
	
		
			
				|  |  |                             mixEnvelop.setStatus(408);
 | 
	
		
			
				|  |  |                             mixEnvelop.setMessage("您所添加的家属的电话有误,无法添加");
 | 
	
		
			
				|  |  |                             return mixEnvelop;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (!Pat_name.equalsIgnoreCase(familyName)) {
 | 
	
		
			
				|  |  |                         mixEnvelop.setStatus(408);
 | 
	
		
			
				|  |  |                         mixEnvelop.setMessage("您所添加的家属的名称有误,无法添加");
 | 
	
		
			
				|  |  |                         return mixEnvelop;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if(null!=jsonObject.get("Birth_Date")){
 | 
	
		
			
				|  |  |                         birth = jsonObject.get("Birth_Date").toString();
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if(null!=jsonObject.get("Sex")){
 | 
	
		
			
				|  |  |                         sex = Integer.parseInt(jsonObject.get("Sex").toString());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                 mixEnvelop.setStatus(408);
 | 
	
		
			
				|  |  |                 mixEnvelop.setMessage("您所添加的家属无就诊记录,无法添加");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         else {
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             mixEnvelop.setStatus(408);
 | 
	
		
			
				|  |  |             mixEnvelop.setMessage("您所添加的家属无就诊记录,无法添加");
 | 
	
		
			
				|  |  |             mixEnvelop.setMessage("心脏中心暂未开放");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         basePatientDO.setSex(sex);
 | 
	
		
			
				|  |  |         SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         Date saveBirth = sf.parse(birth);
 | 
	
		
			
				|  |  |         basePatientDO.setBirthday(saveBirth);
 | 
	
		
			
				|  |  |         result.setFamilyRelation(dictId);
 | 
	
		
			
				|  |  |         result.setFamilyRelationName(dictName);
 | 
	
		
			
				|  |  |         result.setIsDel(1);
 | 
	
		
			
				|  |  |         result.setPatient(patientId);
 | 
	
		
			
				|  |  |         result.setCardNo(idCard);
 | 
	
		
			
				|  |  |         result.setCardType(cardType);
 | 
	
		
			
				|  |  |         //保存到base_patient表中
 | 
	
		
			
				|  |  |         basePatientDO.setMobile(phoneNum);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         basePatientDO.setName(familyName);
 | 
	
		
			
				|  |  |         basePatientDO.setIdcard(idCard);
 | 
	
		
			
				|  |  |         basePatientDO.setRegister("0");
 | 
	
		
			
				|  |  |         basePatientDO.setDel("1");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         BasePatientDO sucessPatient= basePatientDao.save(basePatientDO);
 | 
	
		
			
				|  |  |         String patientNewId= "";
 | 
	
		
			
				|  |  |         if (sucessPatient!=null){
 | 
	
		
			
				|  |  |             patientNewId=sucessPatient.getId();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         result.setFamilyMember(patientNewId);
 | 
	
		
			
				|  |  |         wlyyPatientFamilyMemberDao.save(result);
 | 
	
		
			
				|  |  |         patientMappingDO.setIdcard(idCard);
 | 
	
		
			
				|  |  |         patientMappingDO.setSource("1");
 | 
	
		
			
				|  |  |         patientMappingDO.setPatientName(familyName);
 | 
	
		
			
				|  |  |         patientMappingDO.setMappingCode(familyId);
 | 
	
		
			
				|  |  |         patientMappingDO.setPatient(patientNewId);
 | 
	
		
			
				|  |  |         patientMappingDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         patientMappingDao.save(patientMappingDO);
 | 
	
		
			
				|  |  |         resultMap.put("patientId",patientId);
 | 
	
		
			
				|  |  |         resultMap.put("familyMember",patientNewId);
 | 
	
		
			
				|  |  |         resultMap.put("idCard",idCard);
 | 
	
		
			
				|  |  |         resultMap.put("phoneNum",phoneNum);
 | 
	
		
			
				|  |  |         resultMap.put("relationName",dictName);
 | 
	
		
			
				|  |  |         resultMap.put("name",familyName);
 | 
	
		
			
				|  |  |         resultMap.put("cardType",cardType);
 | 
	
		
			
				|  |  |         List<Map<String,Object>> resultList = new ArrayList();
 | 
	
		
			
				|  |  |         resultList.add(resultMap);
 | 
	
		
			
				|  |  |         mixEnvelop.setStatus(200);
 | 
	
		
			
				|  |  |         mixEnvelop.setMessage("添加成功");
 | 
	
		
			
				|  |  |         mixEnvelop.setDetailModelList(resultList);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return mixEnvelop;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 |