Se realizan los servicios de ModelUzyTavHorEjec

parent 3f19f474
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavHorEjec;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavHorEjec.IServiceUzyTavHorEjec;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION;
@RestController
@CrossOrigin(origins = "*")
@RequestMapping(V1_API_VERSION+"/horaejec")
public class UzyTavHorEjecController {
private final IServiceUzyTavHorEjec serviceUzyTavHorEjec;
public UzyTavHorEjecController(IServiceUzyTavHorEjec serviceUzyTavHorEjec) {
this.serviceUzyTavHorEjec = serviceUzyTavHorEjec;
}
@GetMapping("/exampleFindId/{id}")
public DtoUzyTavHorEjec ListarPorID(@PathVariable Long id) {
return serviceUzyTavHorEjec.ListarPorID(id);
}
@GetMapping("/getAll")
public List<DtoUzyTavHorEjec> ListarRegistros() {
return serviceUzyTavHorEjec.ListarRegistros();
}
@PostMapping("/guardar")
public DtoUzyTavHorEjec guardar(@Valid @RequestBody DtoUzyTavHorEjec dtoUzyTavHorEjec) {
return serviceUzyTavHorEjec.guardar(dtoUzyTavHorEjec);
}
@PutMapping("/editar/{id}")
public DtoUzyTavHorEjec editar(@PathVariable Long id, @Valid @RequestBody DtoUzyTavHorEjec dtoUzyTavHorEjec) {
return serviceUzyTavHorEjec.editar(id, dtoUzyTavHorEjec);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<String> eliminar(@PathVariable Long id) {
boolean eliminado = serviceUzyTavHorEjec.eliminar(id);
if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
}
}
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class DtoUzyTavHorEjec {
private Long uzytavhorejec_code;
private Long uzytavresponsable_prog_id;
private Date uzytavhorejec_fec_ini;
private Date uzytavhorejec_fec_fin;
private Double uzytavhorejec_total;
private Double uzytavhorejec_calificacion;
private LocalDateTime uzytavhorejec_fec_ini;
private LocalDateTime uzytavhorejec_fec_fin;
private BigDecimal uzytavhorejec_total;
private BigDecimal uzytavhorejec_calificacion;
}
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavHorEjec;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavHorEjec;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class UzyTavHorEjecMapper {
private final ModelMapper modelMapper;
......@@ -20,4 +24,9 @@ public class UzyTavHorEjecMapper {
public ModelUzyTavHorEjec dtoToEntity(DtoUzyTavHorEjec dto) {
return modelMapper.map(dto, ModelUzyTavHorEjec.class);
}
public List<DtoUzyTavHorEjec> entitiesToDtos(List<ModelUzyTavHorEjec> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
}
......@@ -5,7 +5,7 @@ import lombok.Setter;
import javax.persistence.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Getter
@Setter
......@@ -17,18 +17,18 @@ public class ModelUzyTavHorEjec {
@SequenceGenerator(name = "uzytavhorejec_seq", sequenceName = "SEQ_UZYTAVHOREJEC", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavhorejec_seq")
@Column(name = "uzytavhorejec_code")
private Long code;
private Long uzytavhorejec_code;
@Column(name = "uzytavhorejec_fec_ini")
private LocalDate fechaInicio;
private LocalDateTime uzytavhorejec_fec_ini;
@Column(name = "uzytavhorejec_fec_fin")
private LocalDate fechaFin;
private LocalDateTime uzytavhorejec_fec_fin;
@Column(name = "uzytavhorejec_total", precision = 22, scale = 2)
private BigDecimal totalHorasEjecutadas;
private BigDecimal uzytavhorejec_total;
@Column(name = "uzytavhorejec_calificacion", precision = 22, scale = 2)
private BigDecimal calificacion;
private BigDecimal uzytavhorejec_calificacion;
//RELACIÓN CON RESPONSABLE PROGRAMA-TABLA PADRE
@ManyToOne(fetch = FetchType.LAZY)
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavHorEjec;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavHorEjec;
import java.util.List;
public interface IServiceUzyTavHorEjec {
DtoUzyTavHorEjec ListarPorID(Long id);
List<DtoUzyTavHorEjec> ListarRegistros();
DtoUzyTavHorEjec guardar(DtoUzyTavHorEjec dtoUzyTavHorEjec);
DtoUzyTavHorEjec editar(Long id, DtoUzyTavHorEjec dtoUzyTavHorEjec);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavHorEjec;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavHorEjec;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavHorEjec;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavHorEjecMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavHorEjec;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzyTavHorEjec implements IServiceUzyTavHorEjec{
private final DaoUzyTavHorEjec daoUzyTavHorEjec;
private final UzyTavHorEjecMapper mapper;
public ServiceUzyTavHorEjec(DaoUzyTavHorEjec daoUzyTavHorEjec, UzyTavHorEjecMapper mapper) {
this.daoUzyTavHorEjec = daoUzyTavHorEjec;
this.mapper = mapper;
}
@Override
public DtoUzyTavHorEjec ListarPorID(Long id) {
if (id <= 0) {
throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
ModelUzyTavHorEjec entity = daoUzyTavHorEjec.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
} catch (ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) { // Manejo de cualquier error en el servidor
throw new RuntimeException("Error al buscar el registro con ID: " + id);
}
}
@Override
public List<DtoUzyTavHorEjec> ListarRegistros() {
try {
List<ModelUzyTavHorEjec> entities = daoUzyTavHorEjec.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
}
@Override
public DtoUzyTavHorEjec guardar(DtoUzyTavHorEjec dtoUzyTavHorEjec) {
try {
ModelUzyTavHorEjec entity = mapper.dtoToEntity(dtoUzyTavHorEjec);
ModelUzyTavHorEjec nuevoEntity = daoUzyTavHorEjec.save(entity);
return mapper.entityToDto(nuevoEntity);
}
catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
}
@Override
public DtoUzyTavHorEjec editar(Long id, DtoUzyTavHorEjec dtoUzyTavHorEjec) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavHorEjec entity = daoUzyTavHorEjec.findById(id).get();
if (entity != null) {
if(dtoUzyTavHorEjec.getUzytavhorejec_fec_fin()!=null){
entity.setUzytavhorejec_fec_fin(dtoUzyTavHorEjec.getUzytavhorejec_fec_fin());
}
if(dtoUzyTavHorEjec.getUzytavhorejec_fec_ini()!=null){
entity.setUzytavhorejec_fec_fin(dtoUzyTavHorEjec.getUzytavhorejec_fec_ini());
}
if(dtoUzyTavHorEjec.getUzytavhorejec_total()!=null){
entity.setUzytavhorejec_total(dtoUzyTavHorEjec.getUzytavhorejec_total());
}
if(dtoUzyTavHorEjec.getUzytavhorejec_calificacion()!=null){
entity.setUzytavhorejec_calificacion(dtoUzyTavHorEjec.getUzytavhorejec_calificacion());
}
ModelUzyTavHorEjec updatedEntity = daoUzyTavHorEjec.save(entity);
return mapper.entityToDto(updatedEntity);
}else {
throw new ResourceNotFoundException("No se encontró el registro con ID: " + id);
}
} catch (Exception e) {
throw new ResourceNotFoundException("Error al editar el registro: " + e.getMessage());
}
}
@Override
public boolean eliminar(Long id) {
if (id == null || id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavHorEjec entity = daoUzyTavHorEjec.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTavHorEjec.delete(entity);
return true;
}
return false;
} catch (ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) {
throw new RuntimeException("Error al eliminar el registro: " + ex.getMessage());
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment