-3
を満たしている場合には壊れ、ストリーミングJavaオブジェクトのリストを、条件が私はJavaオブジェクトのリストをストリーミングについての質問があり、条件が満たしている場合破る
私は
以下のような実体の市を持っています@Entity
public class City {
private Country country;
private ClosestCity closestCity;
private NearestCity nearestCity;
private SisterCity sisterCity;
}
ClosestCity、NearestCityおよびSisterCityは、エンティティ都市に外部キーを持つ都市です。 私はさまざまな都市にある医師のリストを持っています。患者の都市に最も近い医者に患者を割り当てたい、そうでなければ最も近い都市に割り当てる、そうでなければ姉妹都市に割り当てる上記の質問が満たされていない、待機リストに患者を置く。 以下は私の割り当て方法と動作しない方法です。
public boolean allocateDoctorToPatient(Patient patient) {
Practitioner closestPractitioner = null;
List<Practitioner> practitioners = practitionerService.findAll().get();
for (Practitioner p : practitioners) {
//same city
if (closestPractitioner != null) {
for (Practitioner p1 : practitioners) {
if (patient.getCity().equals(p1.getCity())) {
closestPractitioner = p1;
break;
}
}
}
//loops to find closest city
else if (closestPractitioner == null) {
for (Practitioner p2 : practitioners) {
if (patient.getCity().equals(p2.getCity().getClosestCity())) {
closestPractitioner = p2;
break;
}
}
}
//loops to find nearest city
else if (closestPractitioner == null) {
for (Practitioner p3 : practitioners) {
if (patient.getCity().equals(p3.getCity().getNearestCity())) {
closestPractitioner = p3;
break;
}
}
}
//loops to find sister city
else if(closestPractitioner == null) {
for (Practitioner p4 : practitioners) {
if (patient.getCity().equals(p4.getCity().getSisterCity())) {
closestPractitioner = p4;
break;
}
}
}
}
if (closestPractitioner != null) {
Allocate allocate =new Allocate();
allocate.setPatient(patient);
allocate.setPractitioner(closestPractitioner)
save(allocate);
}
else {
WaitingList waitingList=new WaitingList();
waitingList.setPatient(patient);
waitingListService.save(waitingList);
}
return closestPractitioner != null;
}
ようこそスタックオーバーフロー!あなたは誰かにあなたのためのコードを書くよう求めているようです。 Stack Overflowは、コード作成サービスではなく、Q&Aサイトです。効果的な質問を書く方法については、こちらをご覧ください(https://stackoverflow.com/help/how-to-ask)。 –
質問は患者の都市に医者がいる最も近い都市を見つけることに過ぎないと思いませんか?それが事実なら、最も近い都市、姉妹都市と待機リストは意味をなしません...何かが見つからない限り –
最も近い施術者を見つける別の方法を作成し、 'break'の代わりに' return'を使い ' if分岐が完全に – Clashsoft