Bläddra i källkod

Merge branch 'dev' of chenweida/patient-co-management into dev

chenweida 8 år sedan
förälder
incheckning
417d5e2551
1 ändrade filer med 157 tillägg och 0 borttagningar
  1. 157 0
      src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

+ 157 - 0
src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -1649,4 +1649,161 @@ public class FamilyContractService extends BaseService {
        }
        return true;
    }
    public String produceSignTeamCode() {
        StringBuffer sf=new StringBuffer();
        StringBuffer sf1=new StringBuffer();
        Long size=0L;
        //找出家庭签约中团队code是空的
        List<SignFamily> signFamilys= signFamilyDao.findBySignTypeAndTeamCode();
        sf.append("家庭签约中团队code是空的数据数:"+signFamilys.size());
        for(SignFamily signFamily:signFamilys){
            //得到签约中的全科医生的团队
            String doctorCode=signFamily.getDoctor();
            Long id= doctorAdminTeamDao.findIdByLeaderCode(doctorCode);
            if(id!=null&&id>0){
                size++;
                signFamily.setAdminTeamId(id);
            }else{
                sf1.append(",找不到医生所属的团队,医生code:"+doctorCode);
            }
        }
        sf.append(",填充团队的签约数据数:"+size);
        sf.append(sf1);
        return sf.toString();
    }
    /**
     * 分配健管师
     *
     * @param patient 患者code
     * @param healthDoctor 健康管理师code
     * @return
     */
    public JSONObject updateSignInfo(String patient,String healthDoctor,String expensesType){
        JSONObject result = new JSONObject();
        Doctor doctor = doctorDao.findByCode(healthDoctor);
        SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
        if(signFamily == null){
            result.put("status",-1);
            result.put("msg","居民不存在家庭签约");
        }
        if(doctor == null){
            result.put("status",-2);
            result.put("msg","医生不存在");
        }
        if(StringUtils.isNotEmpty(healthDoctor)) {
            if (StringUtils.isNotEmpty(signFamily.getDoctorHealth())) {
                // 取消原有健康管理师的家庭签约分组,并新增分组
                List<DoctorPatientGroupInfo> groups = doctorPatientGroupInfoDao.findGroupInfoByPatientAndDoctor(signFamily.getDoctorHealth(), patient);
                if (groups != null) {
                    List<DoctorPatientGroupInfo> newGroups = new ArrayList<>();
                    for (DoctorPatientGroupInfo group : groups) {
                        if (group.getGroup().equals("1") || group.getGroup().equals("2") || group.getGroup().equals("3")) {
                            DoctorPatientGroupInfo newGroup = new DoctorPatientGroupInfo();
                            newGroup.setDoctor(doctor.getCode());
                            newGroup.setCzrq(new Date());
                            newGroup.setGroup(group.getGroup());
                            newGroup.setPatient(patient);
                            newGroup.setSignType("2");
                            newGroup.setStatus(1);
                            newGroup.setPname(group.getPname());
                            newGroups.add(newGroup);
                        }
                        group.setStatus(0);
                        group.setCzrq(new Date());
                    }
                    if (newGroups.size() > 0) {
                        doctorPatientGroupInfoDao.save(newGroups);
                    }
                    // 更新团队信息
                    if (StringUtils.isNotEmpty(signFamily.getTeamCode())) {
                        DoctorTeamMember teamMember = doctorTeamDoctor.findMemberByTeamAndCode(signFamily.getTeamCode(), signFamily.getDoctorHealth());
                        if (teamMember != null) {
                            teamMember.setDel("0");
                            teamMember.setCzrq(new Date());
                        }
                        DoctorTeamMember newTeamMember = new DoctorTeamMember();
                        newTeamMember.setCode(getCode());
                        newTeamMember.setMemberCode(doctor.getCode());
                        newTeamMember.setName(doctor.getName());
                        newTeamMember.setTeam(signFamily.getTeamCode());
                        newTeamMember.setDel("1");
                        newTeamMember.setSignType("2");
                        newTeamMember.setType(3);
                        newTeamMember.setCzrq(new Date());
                        doctorTeamDoctor.save(newTeamMember);
                    }
                }
            } else {
                // 新增分组
                List<DoctorPatientGroupInfo> groups = doctorPatientGroupInfoDao.findGroupInfoByPatientAndDoctor(signFamily.getDoctor(), patient);
                if (groups != null) {
                    List<DoctorPatientGroupInfo> newGroups = new ArrayList<>();
                    for (DoctorPatientGroupInfo group : groups) {
                        if (group.getGroup().equals("1") || group.getGroup().equals("2") || group.getGroup().equals("3")) {
                            DoctorPatientGroupInfo newGroup = new DoctorPatientGroupInfo();
                            newGroup.setDoctor(doctor.getCode());
                            newGroup.setCzrq(new Date());
                            newGroup.setGroup(group.getGroup());
                            newGroup.setPatient(patient);
                            newGroup.setSignType("2");
                            newGroup.setStatus(1);
                            newGroup.setPname(group.getPname());
                            newGroups.add(newGroup);
                        }
                    }
                    if (newGroups.size() > 0) {
                        doctorPatientGroupInfoDao.save(newGroups);
                    }
                    // 新增团队信息
                    if (StringUtils.isNotEmpty(signFamily.getTeamCode())) {
                        DoctorTeamMember newTeamMember = new DoctorTeamMember();
                        newTeamMember.setCode(getCode());
                        newTeamMember.setMemberCode(doctor.getCode());
                        newTeamMember.setName(doctor.getName());
                        newTeamMember.setTeam(signFamily.getTeamCode());
                        newTeamMember.setDel("1");
                        newTeamMember.setSignType("2");
                        newTeamMember.setType(3);
                        newTeamMember.setCzrq(new Date());
                        doctorTeamDoctor.save(newTeamMember);
                    }
                }
            }
            signFamily.setDoctorHealth(doctor.getCode());
            signFamily.setDoctorHealthName(doctor.getName());
            signFamily.setCzrq(new Date());
        }
        if(StringUtils.isNotEmpty(expensesType)){
            if (StringUtils.isNotEmpty(signFamily.getMedicalInsuranceNum())) {
                result.put("status", -3);
                result.put("msg","数据已上传社保,不能修改补贴类型");
            }else{
                signFamily.setExpensesType(expensesType);
            }
        }
        result.put("status",1);
        result.put("msg","更新成功");
        return result;
    }
}