ohctechv3/.svn/pristine/3f/3f9684e6cac6d031772242621fa13ad9a135adbf.svn-base

75 lines
3.6 KiB
Plaintext
Raw Normal View History

2024-10-28 15:03:36 +05:30
package com.healthcare.ohctech.service.impl;
import com.healthcare.ohctech.dto.AmbulanceDetailsNewDto;
import com.healthcare.ohctech.entity.AmbulanceDetailsNew;
import com.healthcare.ohctech.repository.AmbulanceDetailsNewRepo;
import com.healthcare.ohctech.repository.OhcTypeRepo;
import com.healthcare.ohctech.repository.AmbulanceCategoryRepo;
import com.healthcare.ohctech.service.AmbulanceDetailsNewService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class AmbulanceDetailsNewServiceImpl implements AmbulanceDetailsNewService {
private final AmbulanceDetailsNewRepo ambulanceDetailsNewRepo;
private final OhcTypeRepo ohcTypeRepo;
private final AmbulanceCategoryRepo ambulanceCategoryRepo;
public AmbulanceDetailsNewServiceImpl(AmbulanceDetailsNewRepo ambulanceDetailsNewRepo,
OhcTypeRepo ohcTypeRepo, AmbulanceCategoryRepo ambulanceCategoryRepo) {
this.ambulanceDetailsNewRepo = ambulanceDetailsNewRepo;
this.ohcTypeRepo = ohcTypeRepo;
this.ambulanceCategoryRepo = ambulanceCategoryRepo;
}
@Override
public AmbulanceDetailsNew getAmbulanceDetailsById(Long id) {
return ambulanceDetailsNewRepo.findById(id)
.orElseThrow(() -> new RuntimeException("Ambulance not found for ID: " + id));
}
@Override
public Page<AmbulanceDetailsNew> getAllAmbulanceDetails(Pageable pageable) {
return ambulanceDetailsNewRepo.findAll(pageable);
}
@Override
public void addAmbulanceDetails(List<AmbulanceDetailsNewDto> ambulanceDetailsNewDtos, Long userId) {
List<AmbulanceDetailsNew> ambulanceDetailsNews = new ArrayList<>();
for (AmbulanceDetailsNewDto dto : ambulanceDetailsNewDtos) {
AmbulanceDetailsNew ambulanceDetailsNew = convertToEntity(new AmbulanceDetailsNew(), dto);
ambulanceDetailsNew.setModifiedBy(userId);
ambulanceDetailsNews.add(ambulanceDetailsNew);
}
ambulanceDetailsNewRepo.saveAll(ambulanceDetailsNews);
}
@Override
public void updateAmbulanceDetails(AmbulanceDetailsNewDto ambulanceDetailsNewDto, Long userId) {
AmbulanceDetailsNew ambulanceDetailsNew = ambulanceDetailsNewRepo.findById(ambulanceDetailsNewDto.id())
.orElseThrow(() -> new RuntimeException("AmbulanceDetailsNew not found with ID: " + ambulanceDetailsNewDto.id()));
ambulanceDetailsNew.setModifiedBy(userId);
ambulanceDetailsNewRepo.save(convertToEntity(ambulanceDetailsNew, ambulanceDetailsNewDto));
}
@Override
public void deleteAmbulanceDetails(Long id) {
ambulanceDetailsNewRepo.deleteById(id);
}
private AmbulanceDetailsNew convertToEntity(AmbulanceDetailsNew ambulanceDetailsNew, AmbulanceDetailsNewDto ambulanceDetailsNewDto) {
ambulanceDetailsNew.setAmbulanceName(ambulanceDetailsNewDto.ambulanceName());
ambulanceDetailsNew.setAmbulanceNumber(ambulanceDetailsNewDto.ambulanceNumber());
ambulanceDetailsNew.setOhcType(ohcTypeRepo.findById(ambulanceDetailsNewDto.ohcTypeId())
.orElseThrow(() -> new RuntimeException("OhcType not found with ID: " + ambulanceDetailsNewDto.ohcTypeId())));
ambulanceDetailsNew.setAmbulanceCategory(ambulanceCategoryRepo.findById(ambulanceDetailsNewDto.ambulanceCategoryId())
.orElseThrow(() -> new RuntimeException("AmbulanceCategory not found with ID: " + ambulanceDetailsNewDto.ambulanceCategoryId())));
return ambulanceDetailsNew;
}
}