Kaynağa Gözat

眼科版本更改

wangzhinan 3 gün önce
ebeveyn
işleme
4dc35bc5b8

+ 8 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/family/dao/WlyyPatientFamilyMemberDao.java

@ -4,6 +4,7 @@ import com.yihu.jw.entity.hospital.family.BasePatientMemberDictDO;
import com.yihu.jw.entity.hospital.family.WlyyPatientFamilyMemberDO;
import com.yihu.jw.entity.hospital.message.BaseBannerDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -31,4 +32,11 @@ public interface WlyyPatientFamilyMemberDao extends PagingAndSortingRepository<W
    @Query("from WlyyPatientFamilyMemberDO t where t.patient = ?1 and t.familyRelation =?2 and t.isDel = 1 ")
    WlyyPatientFamilyMemberDO findFamilyMemberByPatientAndRelationCode(String patient,String familyRelation);
    @Modifying
    @Query("delete from WlyyPatientFamilyMemberDO p where p.patient=?1 ")
    void deleteByPatient(String patient);
    @Query("from WlyyPatientFamilyMemberDO t where t.patient = ?1 and t.yktFamilyId =?2 and t.isDel = 1 ")
    WlyyPatientFamilyMemberDO findFamilyMemberByYktFamilyId(String patient,String yktFamilyId);
}

+ 207 - 190
business/base-service/src/main/java/com/yihu/jw/hospital/family/service/WlyyFamilyMemberService.java

@ -77,6 +77,11 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
    @Autowired
    private WlyyNatPatientFamilyMemberDao natPatientFamilyMemberDao;
    @Autowired
    private WlyyPatientFamilyMemberDao patientFamilyMemberDao;
    @Autowired
    private BasePatientMedicareCardDao patientMedicareCardDao;
    //添加关联家属
    @Transactional
    public MixEnvelop addFamily(String id,String patientId, String familyName, String dictId, String cardType, String idCard, String phoneNum,boolean demo,String medicareType,String medicare,String clinicId) throws Exception {
@ -179,73 +184,79 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                    BasePatientDO basePatientDO1  = basePatientDao.findById(patientId);
                    String res = "";
                    //id不为空则为修改家人关系
//                    if (StringUtils.isNotBlank(id)){
//                        if (null!=basePatientDO1){
//                            res = ykyyService.updateYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,clinicId,result.getYktFamilyId(),birth);
//                        }
//                        if (StringUtils.isNotEmpty(res)){
//                            JSONObject jsonObject1 = JSONObject.parseObject(res);
//                            if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
//                                /*JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
//                                yktFamilyId = jsonObject2.getString("ID");*/
//                            }else {
//                                mixEnvelop.setStatus(408);
//                                mixEnvelop.setMessage("更新家人关系失败,请核对个人信息.");
//                                return mixEnvelop;
//                            }
//                        }else {
//                            mixEnvelop.setStatus(408);
//                            mixEnvelop.setMessage("更新家人关系失败,请核对个人信息.");
//                            return mixEnvelop;
//                        }
//                    }else {
//                    if (null!=basePatientDO1){
//                        res = ykyyService.addYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,clinicId,basePatientDO1.getUserId(),birth);
//                    }
//                    if (StringUtils.isNotEmpty(res)){
//                        JSONObject jsonObject1 = JSONObject.parseObject(res);
//                        if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
//                            JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
//                            yktFamilyId = jsonObject2.getString("ID");
//                            result.setYktFamilyId(yktFamilyId);
//                        }else {
//                            mixEnvelop.setStatus(408);
//                            mixEnvelop.setMessage("添加家人关系失败,请核对个人信息.");
//                            return mixEnvelop;
//                        }
//                    }else {
//                        mixEnvelop.setStatus(408);
//                        mixEnvelop.setMessage("添加家人关系失败,请核对个人信息.");
//                        return mixEnvelop;
//                    }
//                    }
                    if (null!=basePatientDO1){
                        String cardType1 = "";
                        String cardNo = "";
                        if (StringUtils.isNotBlank(medicare)){
                            cardType1="1";
                            cardNo=medicare;
                        }
                        if (StringUtils.isNotBlank(clinicId)){
                            cardType1="2";
                            cardNo=clinicId;
                        }
                        String authorization="";
                        String tokenRes=ykyyPrescriptionService.mobileOnly(basePatientDO1.getMobile());
                        if (StringUtils.isNotBlank(tokenRes)){
                            JSONObject object = JSONObject.parseObject(tokenRes);
                            if (object.getString("code").equalsIgnoreCase("200")){
                                JSONObject object1=object.getJSONObject("data");
                                authorization=object1.getString("accessToken");
                    if (StringUtils.isNotBlank(id)){
                        if (null!=basePatientDO1){
                            String cardType1 = "";
                            String cardNo = "";
                            if (StringUtils.isNotBlank(medicare)){
                                cardType1="1";
                                cardNo=medicare;
                            }
                            if (StringUtils.isNotBlank(clinicId)){
                                cardType1="2";
                                cardNo=clinicId;
                            }
                            String authorization="";
                            String tokenRes=ykyyPrescriptionService.mobileOnly(basePatientDO1.getMobile());
                            if (StringUtils.isNotBlank(tokenRes)){
                                JSONObject object = JSONObject.parseObject(tokenRes);
                                if (object.getString("code").equalsIgnoreCase("200")){
                                    JSONObject object1=object.getJSONObject("data");
                                    authorization=object1.getString("accessToken");
                                }
                            }
                            if (!StringUtils.isNotBlank(authorization)){
                                mixEnvelop.setStatus(408);
                                mixEnvelop.setMessage("眼科通token失效");
                                return mixEnvelop;
                            }
                            res = ykyyPrescriptionService.add(result.getYktFamilyId(),familyName,cardType,idCard,phoneNum, dictId,cardType1,cardNo,authorization);
                        }
                        if (!StringUtils.isNotBlank(authorization)){
                        if (StringUtils.isNotEmpty(res)){
                            JSONObject jsonObject1 = JSONObject.parseObject(res);
                            if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
                                /*JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
                                yktFamilyId = jsonObject2.getString("ID");*/
                            }else {
                                mixEnvelop.setStatus(408);
                                mixEnvelop.setMessage(jsonObject1.getString("msg"));
                                return mixEnvelop;
                            }
                        }else {
                            mixEnvelop.setStatus(408);
                            mixEnvelop.setMessage("眼科通token失效");
                            mixEnvelop.setMessage("更新家人关系失败,请核对个人信息.");
                            return mixEnvelop;
                        }
                        res = ykyyPrescriptionService.add(familyName,cardType,idCard,phoneNum, dictId,cardType1,cardNo,authorization);
                    }else {
                        if (null!=basePatientDO1){
                            String cardType1 = "";
                            String cardNo = "";
                            if (StringUtils.isNotBlank(medicare)){
                                cardType1="1";
                                cardNo=medicare;
                            }
                            if (StringUtils.isNotBlank(clinicId)){
                                cardType1="2";
                                cardNo=clinicId;
                            }
                            String authorization="";
                            String tokenRes=ykyyPrescriptionService.mobileOnly(basePatientDO1.getMobile());
                            if (StringUtils.isNotBlank(tokenRes)){
                                JSONObject object = JSONObject.parseObject(tokenRes);
                                if (object.getString("code").equalsIgnoreCase("200")){
                                    JSONObject object1=object.getJSONObject("data");
                                    authorization=object1.getString("accessToken");
                                }
                            }
                            if (!StringUtils.isNotBlank(authorization)){
                                mixEnvelop.setStatus(408);
                                mixEnvelop.setMessage("眼科通token失效");
                                return mixEnvelop;
                            }
                            res = ykyyPrescriptionService.add(null,familyName,cardType,idCard,phoneNum, dictId,cardType1,cardNo,authorization);
                        }
                    }
                    if (StringUtils.isNotEmpty(res)){
                        JSONObject jsonObject1 = JSONObject.parseObject(res);
                        if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
@ -684,7 +695,31 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                //id不为空则为修改家人关系
                if (StringUtils.isNotBlank(id)){
                    if (null!=basePatientDO1){
                        res = ykyyService.updateYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,clinicId,result.getYktFamilyId(),birth);
                        String cardType1 = "";
                        String cardNo = "";
                        if (StringUtils.isNotBlank(medicare)){
                            cardType1="1";
                            cardNo=medicare;
                        }
                        if (StringUtils.isNotBlank(clinicId)){
                            cardType1="2";
                            cardNo=clinicId;
                        }
                        String authorization="";
                        String tokenRes=ykyyPrescriptionService.mobileOnly(basePatientDO1.getMobile());
                        if (StringUtils.isNotBlank(tokenRes)){
                            JSONObject object = JSONObject.parseObject(tokenRes);
                            if (object.getString("code").equalsIgnoreCase("200")){
                                JSONObject object1=object.getJSONObject("data");
                                authorization=object1.getString("accessToken");
                            }
                        }
                        if (!StringUtils.isNotBlank(authorization)){
                            mixEnvelop.setStatus(408);
                            mixEnvelop.setMessage("眼科通token失效");
                            return mixEnvelop;
                        }
                        res = ykyyPrescriptionService.add(result.getYktFamilyId(),familyName,cardType,idCard,phoneNum, dictId,cardType1,cardNo,authorization);
                    }
                    if (StringUtils.isNotEmpty(res)){
                        JSONObject jsonObject1 = JSONObject.parseObject(res);
@ -693,7 +728,7 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                        yktFamilyId = jsonObject2.getString("ID");*/
                        }else {
                            mixEnvelop.setStatus(408);
                            mixEnvelop.setMessage("更新家人关系失败,请核对个人信息.");
                            mixEnvelop.setMessage(jsonObject1.getString("msg"));
                            return mixEnvelop;
                        }
                    }else {
@ -727,7 +762,7 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                            mixEnvelop.setMessage("眼科通token失效");
                            return mixEnvelop;
                        }
                        res = ykyyPrescriptionService.add(familyName,cardType,idCard,phoneNum, dictId,cardType1,cardNo,authorization);
                        res = ykyyPrescriptionService.add(null,familyName,cardType,idCard,phoneNum, dictId,cardType1,cardNo,authorization);
                    }
                    if (StringUtils.isNotEmpty(res)){
                        JSONObject jsonObject1 = JSONObject.parseObject(res);
@ -844,144 +879,109 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
    @Transactional
    public void saveYktFamily(String patientId) throws Exception{
        try {
            String userId="";
            BasePatientDO basePatientDO = basePatientDao.findById(patientId);
            if (null!=basePatientDO){
                userId = basePatientDO.getUserId();
            }
            List<Map<String, String>> list=new ArrayList<Map<String, String>>();
            String res  = ykyyService.findYktFamily(userId);
            String authorization="";
            String tokenRes=ykyyPrescriptionService.mobileOnly(basePatientDO.getMobile());
            if (StringUtils.isNotBlank(tokenRes)){
                JSONObject object = JSONObject.parseObject(tokenRes);
                if (object.getString("code").equalsIgnoreCase("200")){
                    JSONObject object1=object.getJSONObject("data");
                    authorization=object1.getString("accessToken");
                }
            }
            String res = ykyyPrescriptionService.info(authorization);
            if (StringUtils.isNotEmpty(res)){
                JSONObject jsonObject = JSONObject.parseObject(res);
                if ("200".equalsIgnoreCase(jsonObject.getString("code"))){
                    JSONObject data = jsonObject.getJSONObject("data");
                    List<WlyyPatientFamilyMemberDO> patientFamilyMemberDOS = wlyyPatientFamilyMemberDao.findbyPatient(patientId);
                    if (patientFamilyMemberDOS!=null&&patientFamilyMemberDOS.size()>0){
                        wlyyPatientFamilyMemberDao.delete(patientFamilyMemberDOS);
                    }
                    com.alibaba.fastjson.JSONArray jsonArray = data.getJSONArray("list");
                    if(jsonArray!=null && jsonArray.size()>0) {
                        for (int i = 0; i < jsonArray.size(); i++) {
                            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
                            System.out.println("==="+jsonArray.get(i).toString());
                            if (StringUtils.isNotEmpty(jsonObject1.getString("IDCARD"))){
                                System.out.println("同步的身份证号:"+jsonObject1.getString("IDCARD"));
                                BasePatientDO patientDO = null;
                                /*if ("xm_ykyy_wx".equalsIgnoreCase(wxId)){
                                    List<BasePatientDO> listpatients=basePatientDao.findByMobileAndDel(jsonObject1.getString("TEL"),"1");
                                    if (listpatients!=null&&listpatients.size()>0){
                                        patientDO=listpatients.get(0);
                                    }
                                }else {*/
                                patientDO= basePatientDao.findByIdcard(jsonObject1.getString("IDCARD"));
                        /*        }*/
                                if (patientDO==null){
                                    patientDO = new BasePatientDO();
                                }
                                if (StringUtils.isNotBlank(jsonObject1.getString("TEL"))){
                                    List<BasePatientDO> listpatients=basePatientDao.findByMobileAndDel(jsonObject1.getString("TEL"),"1");
                                    if (listpatients!=null&&listpatients.size()>0){
                                    }else {
                                        patientDO.setMobile(jsonObject1.getString("TEL"));
                if ("200".equalsIgnoreCase(jsonObject.getString("code"))) {
                    deleteByPatient(patientId);
                    JSONObject data=jsonObject.getJSONObject("data");
                    com.alibaba.fastjson.JSONArray familyList = data.getJSONArray("patientAccountList");
                    if (familyList!=null&&familyList.size()!=0){
                        for (int i=0;i<familyList.size();i++){
                            JSONObject family = familyList.getJSONObject(i);
                            String familyMobile = family.getString("mobile");
                            String idNo = family.getString("idNo");
                            BasePatientDO patientDO = basePatientDao.findByIdcard(idNo);
                            if (patientDO==null){
                                patientDO.setDel("1");
                                patientDO.setName(family.getString("userName"));
                                patientDO.setCreateTime(new Date());
                                patientDO.setUpdateTime(new Date());
                                patientDO.setYktId(family.getString("patientAccountId"));
                                patientDO.setUserId(family.getString("patientAccountId"));
                                patientDO.setIdcard(family.getString("idNo"));
                                String idcard1 = family.getString("idNo");
                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(idcard1)){
                                    Integer age1 = IdCardUtil.getAgeForIdcard(idcard1);
                                    String sex1 = IdCardUtil.getSexForIdcard_new(idcard1);
                                    Integer sexx1 = null;
                                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex1)){
                                        sexx1 = Integer.parseInt(sex1);
                                    }
                                }
                                if(StringUtils.isNotBlank(jsonObject1.getString("BIRTHDAY"))){
                                    patientDO.setBirthday(DateUtil.strToDate(jsonObject1.getString("BIRTHDAY")));
                                }
                                String pw = null;
                                String salt = UUID.randomUUID().toString().substring(0,5);
                                String mobile = jsonObject1.getString("TEL");
                                String idcard = jsonObject1.getString("IDCARD");
                                if(org.apache.commons.lang3.StringUtils.isNotBlank(mobile)){
                                    pw = mobile.substring(mobile.length()-6);
                                }else{
                                    pw = idcard.substring(idcard.length()-6);
                                }
                                patientDO.setYktId(jsonObject1.getString("ID"));
                                patientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
                                patientDO.setSalt(salt);
                                patientDO.setIdcard(jsonObject1.getString("IDCARD"));
                                patientDO.setName(jsonObject1.getString("NAME"));
                                if(jsonObject1.getInteger("SEX")!=null){
                                    if (1==jsonObject1.getInteger("SEX")){
                                        patientDO.setSex(1);
                                    }else if (0==jsonObject1.getInteger("SEX")){
                                        patientDO.setSex(2);
                                    }else {
                                        patientDO.setSex(0);
                                    String birthDay1 = IdCardUtil.getBirthdayForIdcardStr(idcard1);
                                    Date birthday1 = null;
                                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay1)){
                                        birthday1 = DateUtil.strToDate(birthDay1+" 00:00:00");;
                                    }
                                    patientDO.setAge(age1);
                                    patientDO.setBirthday(birthday1);
                                    patientDO.setSex(sexx1);
                                }
                                patientDO.setDel("1");
                                patientDO.setEnabled(1);
                                patientDO.setMobile(familyMobile);
                                String salt1 = UUID.randomUUID().toString().substring(0,5);
                                String pw1 = idcard1.substring(idcard1.length()-6,idcard1.length());
                                patientDO.setPassword(MD5.md5Hex(pw1 + "{" + salt1 + "}"));
                                patientDO.setSalt(salt1);
                                patientDO.setLocked(0);
                                patientDO.setCreateTime(new Date());
                                patientDO.setUpdateTime(new Date());
                                patientDO.setEnabled(1);
                                patientDO.setPatientStatus("1");
                                patientDO.setAppletsOpenId(family.getString("mainAccountOpenid"));
                                patientDO = basePatientDao.save(patientDO);
                                //取his中的病人code
                                JSONArray hisArray = ykyyEntranceService.findHisPatientBymMedicare(jsonObject1.getString("MEDICALCARD"),jsonObject1.getString("CLINICID"),false);
                                if(hisArray!=null&&hisArray.size()>0) {
                                    net.sf.json.JSONObject hisObject = net.sf.json.JSONObject.fromObject(hisArray.get(0).toString());
                                    PatientMappingDO patientMappingDO = patientMappingDao.findByIdcard(patientDO.getIdcard());
                                    if(patientMappingDO==null){
                                        patientMappingDO= new PatientMappingDO();
                            }
                            deleteCardNo(patientDO.getId());
                            com.alibaba.fastjson.JSONArray cardList = family.getJSONArray("cardList");
                            if (cardList!=null&&cardList.size()!=0){
                                for (int j=0;j<cardList.size();j++){
                                    JSONObject card = cardList.getJSONObject(j);
                                    String cardNo = card.getString("cardNo");
                                    PatientMedicareCardDO patientMedicareCardDO = new PatientMedicareCardDO();
                                    patientMedicareCardDO.setCode(cardNo);
                                    patientMedicareCardDO.setDel("1");
                                    patientMedicareCardDO.setPatientCode(patientDO.getId());
                                    patientMedicareCardDO.setParentType("A");
                                    if (card.getString("cardType").equalsIgnoreCase("1")){
                                        patientMedicareCardDO.setType("A_01");
                                    }else if (card.getString("cardType").equalsIgnoreCase("2")){
                                        patientMedicareCardDO.setType("A_02");
                                    }else if (card.getString("cardType").equalsIgnoreCase("3")){
                                        patientMedicareCardDO.setType("A_03");
                                    }else if (card.getString("cardType").equalsIgnoreCase("9")){
                                        patientMedicareCardDO.setType("A_09");
                                    }
                                    patientMappingDO.setPatientName(jsonObject1.getString("NAME"));
                                    patientMappingDO.setPatient(patientDO.getId());
                                    patientMappingDO.setMappingCode(hisObject.getString("brid"));
                                    patientMappingDO.setSource("1");
                                    patientMappingDO.setCreateTime(new Date());
                                    patientMappingDO.setIdcard(patientDO.getIdcard());
                                    patientMappingDao.save(patientMappingDO);
                                    patientMedicareCardDao.save(patientMedicareCardDO);
                                }
                                WlyyPatientFamilyMemberDO wlyyPatientFamilyMemberDO = new WlyyPatientFamilyMemberDO();
                                BasePatientMemberDictDO basePatientMemberDictDO =basePatientMemberDictDao.findByRelationName(jsonObject1.getString("ILLNESS"));
                            }
                            WlyyPatientFamilyMemberDO familyMemberDO = patientFamilyMemberDao.findFamilyMemberByYktFamilyId(basePatientDO.getId(),family.getString("patientAccountId"));
                            BasePatientMemberDictDO basePatientMemberDictDO = basePatientMemberDictDao.findOne(family.getString("relationship"));
                            if (familyMemberDO==null){
                                familyMemberDO = new WlyyPatientFamilyMemberDO();
                                familyMemberDO.setIsDel(1);
                                familyMemberDO.setFamilyMember(patientDO.getId());
                                familyMemberDO.setPatient(basePatientDO.getId());
                                familyMemberDO.setYktFamilyId(family.getString("patientAccountId"));
                                familyMemberDO.setCreateTime(new Date());
                                familyMemberDO.setUpdateTime(new Date());
                                familyMemberDO.setCardNo(patientDO.getIdcard());
                                familyMemberDO.setMobile(familyMobile);
                                familyMemberDO.setCardType(family.getString("idType"));
                                familyMemberDO.setFamilyRelation(family.getString("relationship"));
                                if (basePatientMemberDictDO!=null){
                                    wlyyPatientFamilyMemberDO.setIsDel(1);
                                    wlyyPatientFamilyMemberDO.setPatient(patientId);
                                    wlyyPatientFamilyMemberDO.setClinicid(jsonObject1.getString("CLINICID"));
                                    wlyyPatientFamilyMemberDO.setCardType("身份证");
                                    wlyyPatientFamilyMemberDO.setFamilyMember(patientDO.getId());
                                    wlyyPatientFamilyMemberDO.setFamilyRelation(basePatientMemberDictDO.getId());
                                    wlyyPatientFamilyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                                    wlyyPatientFamilyMemberDO.setCardNo(jsonObject1.getString("IDCARD"));
                                    wlyyPatientFamilyMemberDO.setYktFamilyId(jsonObject1.getString("ID"));
                                    if (StringUtils.isNotBlank(jsonObject1.getString("TEL"))){
                                        wlyyPatientFamilyMemberDO.setMobile(jsonObject1.getString("TEL"));
                                    }
                                    wlyyPatientFamilyMemberDao.save(wlyyPatientFamilyMemberDO);
                                    familyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                                }
                                if(jsonObject1.get("MEDICALCARD")!=null){
                                    List<PatientMedicareCardDO> patientMedicareCardDOS =  basePatientMedicareCardDao.findByPatientCode(patientDO.getId());
                                    boolean flag = false;
                                    PatientMedicareCardDO patientMedicareCardDO1 = new PatientMedicareCardDO();
                                    for (PatientMedicareCardDO medicareCardDO:patientMedicareCardDOS){
                                        if (medicareCardDO.getType().equalsIgnoreCase("A_01")){
                                            flag=true;
                                            patientMedicareCardDO1=medicareCardDO;
                                            break;
                                        }
                                    }
                                    System.out.println("flag"+flag);
                                    PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByCodeAndPatientCode(jsonObject1.getString("MEDICALCARD"),patientDO.getId());
                                    if (patientMedicareCardDO==null&&flag==false){
                                        patientMedicareCardDO = new PatientMedicareCardDO();
                                        patientMedicareCardDO.setCode(jsonObject1.getString("MEDICALCARD"));
                                        patientMedicareCardDO.setParentType("A");
                                        patientMedicareCardDO.setType("A_01");
                                        patientMedicareCardDO.setPatientCode(patientDO.getId());
                                        patientMedicareCardDO.setDel("1");
                                        basePatientMedicareCardDao.save(patientMedicareCardDO);
                                    }else if (patientMedicareCardDO!=null&&flag==true&&patientMedicareCardDO1!=null){
                                        patientMedicareCardDO1.setCode(jsonObject1.getString("MEDICALCARD"));
                                        patientMedicareCardDO1.setParentType("A");
                                        patientMedicareCardDO1.setType("A_01");
                                        patientMedicareCardDO1.setPatientCode(patientDO.getId());
                                        patientMedicareCardDO1.setDel("1");
                                        basePatientMedicareCardDao.save(patientMedicareCardDO1);
                                    }
                                patientFamilyMemberDao.save(familyMemberDO);
                                }
                            }
                        }
                    }
@ -992,6 +992,13 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
            System.out.println("同步家人关系失败");
        }
    }
    public void deleteCardNo(String patientId){
        basePatientMedicareCardDao.deleteByPatientId(patientId);
    }
    public void deleteByPatient(String patientId){
        patientFamilyMemberDao.deleteByPatient(patientId);
    }
    //根据患者id查询关联家属
    @Transactional
    public List<Map<String,Object>> findFamilyByPatientId(String patientId) throws ParseException {
@ -1077,14 +1084,24 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
        }
    }
    //删除家人信息
    public Envelop delMember(String id){
    public Envelop delMember(String patientId,String id){
        Envelop envelop = new Envelop();
        WlyyPatientFamilyMemberDO wlyyPatientFamilyMemberDO = wlyyPatientFamilyMemberDao.findOne(id);
        BasePatientDO basePatientDO = basePatientDao.findById(patientId);
        if (wlyyPatientFamilyMemberDO!=null){
            wlyyPatientFamilyMemberDO.setIsDel(0);
            if ("xm_ykyy_wx".equalsIgnoreCase(wxId)){
                String authorization="";
                //删除眼科通的家人关系
                String res = ykyyService.deleteYktFamily(wlyyPatientFamilyMemberDO.getYktFamilyId());
                String tokenRes=ykyyPrescriptionService.mobileOnly(basePatientDO.getMobile());
                if (StringUtils.isNotBlank(tokenRes)){
                    JSONObject object = JSONObject.parseObject(tokenRes);
                    if (object.getString("code").equalsIgnoreCase("200")){
                        JSONObject object1=object.getJSONObject("data");
                        authorization=object1.getString("accessToken");
                    }
                }
                String res = ykyyPrescriptionService.delete(wlyyPatientFamilyMemberDO.getYktFamilyId(),authorization);
                if (StringUtils.isNotEmpty(res)){
                    JSONObject jsonObject = JSONObject.parseObject(res);
                    if ("200".equalsIgnoreCase(jsonObject.getString("code"))){

+ 95 - 2
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/YkyyPrescriptionService.java

@ -1813,9 +1813,12 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
     * SELF
     * @return
     */
    public String add(String userName,String idType,String idNo,String mobile,String relationship,String cardType,String cardNo,String authorization){
    public String add(String patientAccountId,String userName,String idType,String idNo,String mobile,String relationship,String cardType,String cardNo,String authorization){
        String url = newYktUrl+"/api/ext/ykt/patient/add";
        Map<String, Object> params = new HashMap<>();
        if (StringUtils.isNoneBlank(patientAccountId)){
            params.put("patientAccountId", patientAccountId);
        }
        params.put("cardType", cardType);
        params.put("cardNo", cardNo);
        params.put("userName", userName);
@ -1828,6 +1831,76 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
        return SignGenerator.requestYktAndHeader(params,headerParams,url);
    }
    /**
     * 删除就诊人
     * @param patientAccountId 就诊人id
     * @param authorization token
     * @return
     */
    public String delete(String patientAccountId,String authorization){
        String url = newYktUrl+"/api/ext/ykt/patient/delete";
        Map<String, Object> params = new HashMap<>();
        params.put("patientAccountId", patientAccountId);
        Map<String,String> headerParams = new HashMap<>();
        headerParams.put("Authorization","Bearer "+authorization);
        return SignGenerator.requestYktAndHeader(params,headerParams,url);
    }
    /**
     * 就诊卡列表
     *
     * @param patientAccountId 就诊人id
     * @param authorization token
     * @return
     */
    public String cardList(String patientAccountId,String authorization){
        String url = newYktUrl+"/api/ext/ykt/patient/card/list";
        Map<String, Object> params = new HashMap<>();
        params.put("patientAccountId", patientAccountId);
        Map<String,String> headerParams = new HashMap<>();
        headerParams.put("Authorization","Bearer "+authorization);
        return SignGenerator.requestYktAndHeader(params,headerParams,url);
    }
    /**
     * 添加或者修改卡号
     * @param cardNo
     * @param cardType
     * @param patientAccountId
     * @param patientCardId
     * @param authorization
     * @return
     */
    public String updateCardNo(String cardNo,String cardType,String patientAccountId,String patientCardId,String authorization){
        String url = newYktUrl+"/api/ext/ykt/patient/card/update";
        Map<String, Object> params = new HashMap<>();
        params.put("cardNo", cardNo);
        params.put("cardType", cardType);
        params.put("patientCardId", patientCardId);
        params.put("patientAccountId", patientAccountId);
        Map<String,String> headerParams = new HashMap<>();
        headerParams.put("Authorization","Bearer "+authorization);
        return SignGenerator.requestYktAndHeader(params,headerParams,url);
    }
    /**
     * 删除就诊卡
     * @param patientCardId
     * @param authorization
     * @return
     */
    public String deleteCardNo(String patientCardId,String authorization){
        String url = newYktUrl+"/api/ext/ykt/patient/card/delete";
        Map<String, Object> params = new HashMap<>();
        params.put("patientCardId", patientCardId);
        Map<String,String> headerParams = new HashMap<>();
        headerParams.put("Authorization","Bearer "+authorization);
        return SignGenerator.requestYktAndHeader(params,headerParams,url);
    }
    /**
     * 调佣眼科通埋点
     *
@ -1945,7 +2018,7 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
        String url = newYktUrl+"/api/ext/ykt/account/info";
        Map<String, Object> params = new HashMap<>();
        Map<String,String> header = new HashedMap();
        header.put("Authorization",Authorization);
        header.put("Authorization","Bearer "+Authorization);
        return SignGenerator.requestYktAndHeaderGet(params,header,url);
    }
@ -2187,4 +2260,24 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
        }
        return track(source,eventType,eventName,page,referPage,hospId,hospName,userName,schoolName,authorization);
    }
    public void  synDoctorInfo(){
        List<BaseDoctorDO> doctorDOS = doctorDao.findByDel();
        for (BaseDoctorDO doctorDO:doctorDOS){
            String password="";
            String res = ykyyService.getDoctorPhone(doctorDO.getMobile());
            if (res!=null&&res!=""){
                JSONObject object = JSONObject.parseObject(res);
                if (object.getString("code").equalsIgnoreCase("200")){
                    password = object.getString("data");
                    String salt = randomString(5);
                    doctorDO.setPassword(MD5.md5Hex(password + "{" + salt + "}"));
                    doctorDO.setSalt(salt);
                    doctorDao.save(doctorDO);
                }
            }
        }
    }
}

+ 6 - 6
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java

@ -2663,13 +2663,13 @@ public class YkyyEntranceService {
        WlyyOutpatientDO outpatientDO = outpatientDao.findById(outpatientId);
        BasePatientDO patientDO = basePatientDao.findById(patient);
        PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patient,"1");
        if (patientMedicareCardDO==null){
            patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_02",patient,"1");
        }
//        PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patient,"1");
//        if (patientMedicareCardDO==null){
//            patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_02",patient,"1");
//        }
        PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(patient);
        if (patientMappingDO==null){
            JSONArray jsonArray = findHisPatientBySscAndIdcard(patientMedicareCardDO.getCode(),patientDO.getIdcard(),demoFlag);
            JSONArray jsonArray = findHisPatientBySscAndIdcard(outpatientDO.getCardNo(),patientDO.getIdcard(),demoFlag);
            if(jsonArray!=null&&jsonArray.size()>0){
                //获取居民信息
                JSONObject json = jsonArray.getJSONObject(0);
@ -2714,7 +2714,7 @@ public class YkyyEntranceService {
        hlwGhmxDO.setYSDM(doctorMappingDO.getMappingCode());//医生代码
        hlwGhmxDO.setJZYS(doctorMappingDO.getMappingCode());//接诊医生
        //病人性质
        JSONArray jsonArray = findHisPatientBySscAndIdcard(patientMedicareCardDO.getCode(),patientDO.getIdcard(),demoFlag);
        JSONArray jsonArray = findHisPatientBySscAndIdcard(outpatientDO.getCardNo(),patientDO.getIdcard(),demoFlag);
        if(jsonArray!=null&&jsonArray.size()>0){
            //获取居民信息
            JSONObject json = jsonArray.getJSONObject(0);

+ 1 - 0
business/base-service/src/main/java/com/yihu/jw/patient/dao/BasePatientMedicareCardDao.java

@ -52,4 +52,5 @@ public interface BasePatientMedicareCardDao extends PagingAndSortingRepository<P
     * @return
     */
    boolean existsByPatientCodeAndOrgCodeAndDel(String patientCode,String orgCode,String del);
}

+ 1 - 75
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -1262,7 +1262,6 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                    result = ykyyINSMSService.ykyySendSMS(username, "您好,您正在进行找回密码操作,您的短信验证码是:" + captcha + ",请勿将验证码告诉他人,5分钟内有效。");
                }
                if (result.isSuccess()) {
                    Captcha _captcha = new Captcha();
                    _captcha.setCode(captcha);
                    _captcha.setExpiresIn(300);
@ -4341,84 +4340,11 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey");
                String password = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("password"), keyPair);
                logger.info("password:"+password);
                String response = ykyyService.DoctorLogin(parameters.get("username"),password);
                if (!StringUtils.isEmpty(response)){
                    JSONObject object = JSONObject.parseObject(response);
                    logger.info("眼科通登陆返回参数:"+object);
                    if (!object.getString("code").equalsIgnoreCase("10000")){
                        WlyyUserSimple userSimple = new WlyyUserSimple();
                        return getFailedResponse(object.getString("message"),-1,userSimple);
                    }else {
                        JSONObject jsonObject = object.getJSONObject("value");
                        if (jsonObject!=null) {
                            String idCard = jsonObject.getString("idCard");
                            String verifyCode = jsonObject.getString("verifyCode");
                            String yktDoctorId= jsonObject.getString("id");
                            BaseDoctorDO doctorDOs = doctorDao.findByIdcard(idCard);
                            if (doctorDOs!=null){
                                doctorDOs.setVerifyCode(verifyCode);
                                doctorDOs.setYktDoctorId(yktDoctorId);
                                /*doctorDOs.setYktCode();*/
                                doctorDao.save(doctorDOs);
                            }else {
                                WlyyUserSimple userSimple = new WlyyUserSimple();
                                return getFailedResponse("您的账号未认证,请联系互联网医院工作人员,联系电话0592-2108763。",-1,userSimple);
                            }
                            if (idCard==null||idCard==""){
                                logger.info("身份证为空");
                            }else {
                                ykyyService.updateYkyyDoctor(idCard,verifyCode,yktDoctorId);
                            }
                        }
                    }
                }
                parameters.remove("password");
                parameters.put("password",password);
            } else if (parameters.get("mobile") != null) {
                KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey");
                String mobile = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("mobile"), keyPair);
                logger.info("mobile:"+mobile);
                String password = null;
                String res = ykyyService.getDoctorPhone(mobile);
                if (res!=null&&res!=""){
                    JSONObject object = JSONObject.parseObject(res);
                    if (object.getString("code").equalsIgnoreCase("200")){
                        password = object.getString("data");
                    }else {
                        WlyyUserSimple userSimple = new WlyyUserSimple();
                        return getFailedResponse(object.getString("msg"),-1,userSimple);
                    }
                }
                String response = ykyyService.DoctorLogin(parameters.get("username"),password);
                if (!StringUtils.isEmpty(response)){
                    JSONObject object = JSONObject.parseObject(response);
                    logger.info("眼科通登陆返回参数:"+object);
                    if (!object.getString("code").equalsIgnoreCase("10000")){
                        WlyyUserSimple userSimple = new WlyyUserSimple();
                        return getFailedResponse(object.getString("message"),-1,userSimple);
                    }else {
                        JSONObject jsonObject = object.getJSONObject("value");
                        if (jsonObject!=null) {
                            String idCard = jsonObject.getString("idCard");
                            String verifyCode = jsonObject.getString("verifyCode");
                            String yktDoctorId= jsonObject.getString("id");
                            BaseDoctorDO doctorDOs = doctorDao.findByIdcard(idCard);
                            if (doctorDOs!=null){
                                doctorDOs.setVerifyCode(verifyCode);
                                doctorDOs.setYktDoctorId(yktDoctorId);
                                /*doctorDOs.setYktCode();*/
                                doctorDao.save(doctorDOs);
                            }else {
                                WlyyUserSimple userSimple = new WlyyUserSimple();
                                return getFailedResponse("您的账号未认证,请联系互联网医院工作人员,联系电话0592-2108763。",-1,userSimple);
                            }
                            if (idCard==null||idCard==""){
                                logger.info("身份证为空");
                            }else {
                                ykyyService.updateYkyyDoctor(idCard,verifyCode,yktDoctorId);
                            }
                        }
                    }
                }
                parameters.remove("password");
            }else {
                //第三方同步账号模式登录

+ 13 - 3
server/svr-authentication/src/main/java/com/yihu/jw/security/utils/SignGenerator.java

@ -41,9 +41,19 @@ public class SignGenerator {
//
        String url = "https://huaxia.yanketong.com/api/ext/ykt/open/account/login/mobile-only";
        Map<String, Object> params = new HashMap<>();
        params.put("mobile", "13037228861");
        String res = requestYkt(params,url);
        Map<String, Object> params1 = new HashMap<>();
        params1.put("mobile", "13860196295");
        String res = requestYkt(params1,url);
        JSONObject resObj = JSONObject.parseObject(res);
        if (resObj.getString("code").equalsIgnoreCase("200")){
            JSONObject data = resObj.getJSONObject("data");
            Map<String, Object> params = new HashMap<>();
            Map<String, String> header = new HashMap<>();
            header.put("Authorization","Bearer "+data.getString("accessToken"));
            System.out.println("accessToken"+header);
            requestYktAndHeaderGet(params,header,"https://huaxia.yanketong.com/api/ext/ykt/account/info");
        }
        System.out.println("111111111111111"+res);
    }

+ 3 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -611,8 +611,9 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
            BaseDoctorRoleDO baseDoctorRoleDO = null;
            Set<Object> roleIdList = baseDoctorRoleService.findRoleIdList(baseDoctorDO.getId());
            try {
                for(Object object : role){
                    baseDoctorRoleDO = objectMapper.readValue(object.toString(),BaseDoctorRoleDO.class);
                for(int i=0;i<role.size();i++){
                    JSONObject object = role.getJSONObject(i);
                    baseDoctorRoleDO = objectMapper.readValue(object.getString("roleCode"),BaseDoctorRoleDO.class);
                    if(roleIdList.contains(baseDoctorRoleDO.getId())){
                        roleIdList.remove(baseDoctorRoleDO.getId());
                    }

+ 3 - 3
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java

@ -674,9 +674,9 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			BasePatientDO result = basePatientService.findByIdAndDel(patient);
			//---居民性别取身份证字段--
			/*result.setSex(Integer.parseInt(IdCardUtil.getSexForIdcard_new(result.getIdcard())));*/
//			if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
//				familyMemberService.saveYktFamily(patient);
//			}
			if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
				familyMemberService.saveYktFamily(patient);
			}
			return success(result);
		}catch (Exception e){
			return failedException(e);

+ 2 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/hospital/WlyyFamilyMemberController.java

@ -627,7 +627,8 @@ public class WlyyFamilyMemberController extends EnvelopRestEndpoint {
                                   @RequestParam(value = "id", required = false) String id) {
        try {
            return wlyyFamilyMemberService.delMember(id);
            String uuid=getUID();
            return wlyyFamilyMemberService.delMember(uuid,id);
        }catch (Exception e){
            return failedException(e);
        }

+ 6 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/YkyyPrescriptionEndpoint.java

@ -538,4 +538,10 @@ public class YkyyPrescriptionEndpoint extends EnvelopRestEndpoint {
            return  failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "synDoctor")
    @ApiOperation(value = "同步旧眼科通医生密码", notes = "同步旧眼科通医生密码")
    public void synDoctorInfo() {
        prescriptionService.synDoctorInfo();
    }
}