Не добавлять второй тег ZAP, если уже есть у пациента
Есть метод, который парсит XML
файл и создает другой со следующей структурой:
ZAP
содержит теги patient, sluch, usl
. Каждый тег ZAP
описывает данные пациента и тегов sluch
может быть у одного пациента несколько.
Нужно если в исходном файле несколько строк row, у которых один и тот же полис не создавая новый тег ZAP
добавить в существующий новый случай sluch
.
У меня это получилось, но не могу понять как НЕ создавать при этом тег zap
второй раз для одного и того же пациента
private static List<Zap> getZapList() {
List<Row> rowsList = ReadXmlDs.getRowsForXMLDS("C:\\ds_parse\\ds.xml");
List<Zap> zapList = new ArrayList<>();
for (int i = 0; i < rowsList.size(); i++) {
for (Zap zap : zapList) {
//Если в списке zapList есть такой же полис как в rowsList.get(i).getNpolis()
if (zap.getPacient().getNpolis().equals(rowsList.get(i).getNpolis())) {
//То создаем случаи и услуги
Sluch sluch = createSluch(rowsList.get(i));
Usl usl = createUsl(rowsList.get(i), sluch);
createCrit(rowsList.get(i), usl);
createHrrgd(rowsList.get(i), usl);
sluch.setUsl(usl);
zap.getSluchList().add(sluch);
}
}
Zap zap = new Zap();
Pacient pacient = createPatient(rowsList.get(i));
Sluch sluch = createSluch(rowsList.get(i));
Usl usl = createUsl(rowsList.get(i), sluch);
createCrit(rowsList.get(i), usl);
createHrrgd(rowsList.get(i), usl);
sluch.setUsl(usl);
zap.setPacient(pacient);
List<Sluch> sluchList = new ArrayList<>();
sluchList.add(sluch);
zap.setSluchList(sluchList);
zapList.add(zap);
}
return zapList;
}
Источник: Stack Overflow на русском