Se corrigen los servicios de ModelUzyTavAnualValor

parent a8876a15
package ec.edu.espe.movilidad.MovilidadWS.Controller; package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnualValor; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnualValor;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavAnualValor.IServiceUzyTavAnualValor; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavAnualValor.IServiceUzyTavAnualValor;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -22,34 +22,39 @@ public class UzyTavAnualValorController { ...@@ -22,34 +22,39 @@ public class UzyTavAnualValorController {
} }
@GetMapping("/exampleFindId/{id}") @GetMapping("/exampleFindId/{id}")
public ResponseEntity<ModelUzyTavAnualValor> ListarPorID(@PathVariable Long id) { public ResponseEntity<DtoUzyTavAnualValor> ListarPorID(@PathVariable Long id) {
return new ResponseEntity<>(serviceUzyTavAnualValor.ListarPorID(id), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavAnualValor.ListarPorID(id), HttpStatus.OK);
} }
@GetMapping("/getAll") @GetMapping("/getAll")
public ResponseEntity<List<ModelUzyTavAnualValor>> ListarRegistros() { public ResponseEntity<List<DtoUzyTavAnualValor>> ListarRegistros() {
return new ResponseEntity<>(serviceUzyTavAnualValor.ListarRegistros(), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavAnualValor.ListarRegistros(), HttpStatus.OK);
} }
@PostMapping("/guardar") @PostMapping("/guardar")
public ResponseEntity<ModelUzyTavAnualValor> guardar(@RequestBody ModelUzyTavAnualValor modelUzyTCanton) { public ResponseEntity<DtoUzyTavAnualValor> guardar(@RequestBody DtoUzyTavAnualValor dtoUzyTavAnualValor) {
return new ResponseEntity<>(serviceUzyTavAnualValor.guardar(modelUzyTCanton), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavAnualValor.guardar(dtoUzyTavAnualValor), HttpStatus.OK);
} }
@PutMapping("/editar/{id}") @PutMapping("/editar/{id}")
public ResponseEntity<ModelUzyTavAnualValor> editar(@PathVariable Long id, @RequestBody ModelUzyTavAnualValor modelUzyTavAnualValor) { public ResponseEntity<DtoUzyTavAnualValor> editar(@PathVariable Long id, @RequestBody DtoUzyTavAnualValor dtoUzyTavAnualValor) {
return new ResponseEntity<>(serviceUzyTavAnualValor.editar(id, modelUzyTavAnualValor), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavAnualValor.editar(id, dtoUzyTavAnualValor), HttpStatus.OK);
} }
@DeleteMapping("/eliminar/{id}") @DeleteMapping("/eliminar/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) { public ResponseEntity<String> eliminar(@PathVariable Long id){
serviceUzyTavAnualValor.eliminar(id); boolean eliminado = serviceUzyTavAnualValor.eliminar(id);
return ResponseEntity.ok().build(); if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
} }
} }
...@@ -2,6 +2,8 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao; ...@@ -2,6 +2,8 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnualValor; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnualValor;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface DaoUzyTavAnualValor extends JpaRepository<ModelUzyTavAnualValor, Long> { public interface DaoUzyTavAnualValor extends JpaRepository<ModelUzyTavAnualValor, Long> {
} }
package ec.edu.espe.movilidad.MovilidadWS.Dto; package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.Date;
@Data @Data
public class DtoUzyTavAnualValor { public class DtoUzyTavAnualValor {
private Long uzytavanualvalor_id; private Long uzytavanualvalor_id;
private String uzytavanualvalor_desc; private String uzytavanualvalor_desc;
private BigDecimal uzytavanualvalor_valor; private Double uzytavanualvalor_valor;
private Long uzytavpresup_id; private Long uzytavpresup_id;
} }
...@@ -2,15 +2,25 @@ package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class; ...@@ -2,15 +2,25 @@ package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnualValor; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnualValor;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnualValor; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnualValor;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavPresup;
import org.modelmapper.ModelMapper; import org.modelmapper.ModelMapper;
import org.modelmapper.PropertyMap;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.persistence.EntityManager;
import java.util.List;
import java.util.stream.Collectors;
@Component @Component
public class UzyTavAnualValorMapper { public class UzyTavAnualValorMapper {
private final ModelMapper modelMapper; private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzyTavAnualValorMapper(ModelMapper modelMapper) { public UzyTavAnualValorMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper; this.modelMapper = modelMapper;
this.entityManager = entityManager;
configureMappings();
} }
public DtoUzyTavAnualValor entityToDto(ModelUzyTavAnualValor entity) { public DtoUzyTavAnualValor entityToDto(ModelUzyTavAnualValor entity) {
...@@ -18,6 +28,25 @@ public class UzyTavAnualValorMapper { ...@@ -18,6 +28,25 @@ public class UzyTavAnualValorMapper {
} }
public ModelUzyTavAnualValor dtoToEntity(DtoUzyTavAnualValor dto) { public ModelUzyTavAnualValor dtoToEntity(DtoUzyTavAnualValor dto) {
return modelMapper.map(dto, ModelUzyTavAnualValor.class); ModelUzyTavAnualValor entity = modelMapper.map(dto, ModelUzyTavAnualValor.class);
Long presupID = dto.getUzytavpresup_id();
ModelUzyTavPresup presup = entityManager.find(ModelUzyTavPresup.class, presupID);
entity.setUzytavpresup(presup);
return entity;
}
public List<DtoUzyTavAnualValor> entitiesToDtos(List<ModelUzyTavAnualValor> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
private void configureMappings() {
modelMapper.addMappings(new PropertyMap<ModelUzyTavAnualValor, DtoUzyTavAnualValor>() {
@Override
protected void configure() {
map().setUzytavanualvalor_id(source.getUzytavanualvalor_id());
map().setUzytavpresup_id(source.getUzytavpresup().getUzytavpresup_id());
}
});
} }
} }
package ec.edu.espe.movilidad.MovilidadWS.Model; package ec.edu.espe.movilidad.MovilidadWS.Model;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Getter;
import lombok.Setter;
import javax.persistence.*; import javax.persistence.*;
@Data @Getter
@Setter
@Entity @Entity
@Table(name = "uzytavanualvalor", schema = "utic1") @Table(name = "uzytavanualvalor", schema = "utic1")
public class ModelUzyTavAnualValor { public class ModelUzyTavAnualValor {
...@@ -24,7 +26,7 @@ public class ModelUzyTavAnualValor { ...@@ -24,7 +26,7 @@ public class ModelUzyTavAnualValor {
//RELACIÓN TAVPRESUP-TABLA PADRE //RELACIÓN TAVPRESUP-TABLA PADRE
@JsonIgnore @JsonIgnore
@ManyToOne( cascade = CascadeType.ALL) @ManyToOne(fetch = FetchType.LAZY )
@JoinColumn(name = "uzytavpresup_id", referencedColumnName = "uzytavpresup_id") @JoinColumn(name = "uzytavpresup_id", referencedColumnName = "uzytavpresup_id")
private ModelUzyTavPresup uzytavpresup; private ModelUzyTavPresup uzytavpresup;
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavAnualValor; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavAnualValor;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnualValor; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnualValor;
import java.util.List; import java.util.List;
public interface IServiceUzyTavAnualValor { public interface IServiceUzyTavAnualValor {
public ModelUzyTavAnualValor ListarPorID(Long id); DtoUzyTavAnualValor ListarPorID(Long id);
public List<ModelUzyTavAnualValor> ListarRegistros(); List<DtoUzyTavAnualValor> ListarRegistros();
public ModelUzyTavAnualValor guardar(ModelUzyTavAnualValor modelUzyTavAnualValor); DtoUzyTavAnualValor guardar(DtoUzyTavAnualValor dtoUzyTavAnualValor);
public ModelUzyTavAnualValor editar( Long id, ModelUzyTavAnualValor modelUzyTavAnualValor); DtoUzyTavAnualValor editar( Long id, DtoUzyTavAnualValor dtoUzyTavAnualValor);
void eliminar(Long id); boolean eliminar(Long id);
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavAnualValor; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavAnualValor;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavAnualValor; import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavAnualValor;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnualValor;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavAnualValorMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnualValor; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnualValor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
...@@ -10,42 +12,60 @@ import java.util.List; ...@@ -10,42 +12,60 @@ import java.util.List;
@Service @Service
public class ServiceUzyTavAnualValor implements IServiceUzyTavAnualValor { public class ServiceUzyTavAnualValor implements IServiceUzyTavAnualValor {
@Autowired
DaoUzyTavAnualValor daoUzyTavAnualValor; private final DaoUzyTavAnualValor daoUzyTavAnualValor;
@Override private final UzyTavAnualValorMapper mapper;
public ModelUzyTavAnualValor ListarPorID(@PathVariable Long id) {
return daoUzyTavAnualValor.findById(id).get(); public ServiceUzyTavAnualValor(DaoUzyTavAnualValor daoUzyTavAnualValor, UzyTavAnualValorMapper mapper) {
this.daoUzyTavAnualValor = daoUzyTavAnualValor;
this.mapper = mapper;
} }
@Override @Override
public List<ModelUzyTavAnualValor> ListarRegistros() { public DtoUzyTavAnualValor ListarPorID(@PathVariable Long id) {
return daoUzyTavAnualValor.findAll(); ModelUzyTavAnualValor entity = daoUzyTavAnualValor.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
} }
@Override @Override
public ModelUzyTavAnualValor guardar(ModelUzyTavAnualValor modelUzyTavAnualValor) { public List<DtoUzyTavAnualValor> ListarRegistros() {
return daoUzyTavAnualValor.save(modelUzyTavAnualValor); List<ModelUzyTavAnualValor> entities = daoUzyTavAnualValor.findAll();
return mapper.entitiesToDtos(entities);
} }
@Override @Override
public ModelUzyTavAnualValor editar(@PathVariable Long id, ModelUzyTavAnualValor modelUzyTavAnualValor) { public DtoUzyTavAnualValor guardar(DtoUzyTavAnualValor dtoUzyTavAnualValor) {
ModelUzyTavAnualValor dato = daoUzyTavAnualValor.findById(id).get(); ModelUzyTavAnualValor entity = mapper.dtoToEntity(dtoUzyTavAnualValor);
//.orElseThrow(()->new ControlExcepciones("No existe el registro con el ID : " + id)); ModelUzyTavAnualValor nuevoEntity = daoUzyTavAnualValor.save(entity);
//Seteamos los nuevos datos del registro return mapper.entityToDto(nuevoEntity);
dato.setUzytavanualvalor_id(modelUzyTavAnualValor.getUzytavanualvalor_id());
dato.setUzytavanualvalor_desc(modelUzyTavAnualValor.getUzytavanualvalor_desc());
dato.setUzytavanualvalor_valor(modelUzyTavAnualValor.getUzytavanualvalor_valor());
ModelUzyTavAnualValor datoActualizado = daoUzyTavAnualValor.save(dato);
return datoActualizado;
} }
@Override @Override
public void eliminar(@PathVariable Long id) { public DtoUzyTavAnualValor editar(@PathVariable Long id, DtoUzyTavAnualValor dtoUzyTavAnualValor) {
try {
ModelUzyTavAnualValor entity = daoUzyTavAnualValor.findById(id).get();
if (entity != null) {
entity.setUzytavanualvalor_desc(dtoUzyTavAnualValor.getUzytavanualvalor_desc());
entity.setUzytavanualvalor_valor(dtoUzyTavAnualValor.getUzytavanualvalor_valor());
ModelUzyTavAnualValor updatedEntity = daoUzyTavAnualValor.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());
}
}
ModelUzyTavAnualValor dato = daoUzyTavAnualValor.findById(id).get();
//.orElseThrow(() -> new ControlExcepciones("No existe el registro con el ID : " + id));
daoUzyTavAnualValor.delete(dato);
@Override
public boolean eliminar(Long id) {
ModelUzyTavAnualValor entity = daoUzyTavAnualValor.findById(id).orElse(null);
if (entity != null) {
daoUzyTavAnualValor.delete(entity);
return true;
}
return false;
} }
} }
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