75 lines
3.6 KiB
Plaintext
75 lines
3.6 KiB
Plaintext
|
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;
|
||
|
}
|
||
|
}
|