|
@ -6,7 +6,10 @@ import com.yihu.wlyy.entity.doctor.team.admin.AdminTeamMember;
|
|
|
import com.yihu.wlyy.entity.patient.Patient;
|
|
|
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
|
|
|
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamMemberDao;
|
|
|
import com.yihu.wlyy.repository.doctor.DoctorDao;
|
|
|
import com.yihu.wlyy.repository.doctor.DoctorTeamMemberDao;
|
|
|
import com.yihu.wlyy.service.BaseService;
|
|
|
import org.apache.commons.lang3.tuple.ImmutablePair;
|
|
|
import org.apache.commons.lang3.tuple.Pair;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
@ -26,12 +29,18 @@ import java.util.*;
|
|
|
@Component
|
|
|
@Transactional
|
|
|
public class AdminTeamService extends BaseService {
|
|
|
@Autowired
|
|
|
DoctorDao doctorDao;
|
|
|
|
|
|
@Autowired
|
|
|
DoctorAdminTeamDao teamDao;
|
|
|
|
|
|
@Autowired
|
|
|
DoctorAdminTeamMemberDao memberDao;
|
|
|
|
|
|
@Autowired
|
|
|
DoctorTeamMemberDao signingTeamMemberDao;
|
|
|
|
|
|
/**
|
|
|
* 获取团队数量。
|
|
|
*
|
|
@ -150,18 +159,40 @@ public class AdminTeamService extends BaseService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 移除成员。
|
|
|
* <p>
|
|
|
* 如果成员已经有跟团队内的某医生合作与患者签约,那么不能移除,必须等签约患者交接后才可以。
|
|
|
* 移除成员逻辑:
|
|
|
* 1、判断团队内是否有三师签约关系,如果有不能删除。
|
|
|
* 2、若没有三师签约关系,判断是否为专科医生,如果是,直接删除
|
|
|
* 3、若不是,则判断健康管理师或全科医生是否有签约人,有的话提示先转移居民。
|
|
|
*
|
|
|
* @param teamId
|
|
|
* @param doctorCode
|
|
|
*/
|
|
|
public Pair<Integer, String> removeMember(long teamId, String doctorCode) {
|
|
|
if(signingTeamMemberDao.isSanShiSigning(doctorCode)){
|
|
|
return new ImmutablePair<>(403, "三师签约医生,不能删除");
|
|
|
}
|
|
|
|
|
|
Doctor doctor = doctorDao.findByCode(doctorCode);
|
|
|
if (!doctor.isProfessionalDoctor()){
|
|
|
if (doctor.isGeneralDoctor()){
|
|
|
List<Doctor> doctorList = new ArrayList<>();
|
|
|
doctorList.add(doctor);
|
|
|
|
|
|
Integer count = getMemberSigningCount(teamId, doctorList).get(doctorCode);
|
|
|
if (count != null || count > 0){
|
|
|
if (doctor.isGeneralDoctor()){
|
|
|
return new ImmutablePair<>(403, "全科医生有签约关系,不可删除");
|
|
|
} else if (doctor.isHealthDoctor()){
|
|
|
return new ImmutablePair<>(403, "健康管理师仍有签约居民,请先转移签约居民");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
AdminTeamMember member = memberDao.findByTeamIdAndDoctorCodeOrderByDoctorCodeAsc(teamId, doctorCode);
|
|
|
if (member != null) memberDao.delete(member);
|
|
|
|
|
|
return null;
|
|
|
return new ImmutablePair<>(200, "OK");
|
|
|
}
|
|
|
|
|
|
public List<Doctor> getMembers(long teamId) {
|