Se corrigen los servicios de ModelUzyTavPresup

parent f236fb1b
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavPresup.IServiceUzyTavPresup;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
......@@ -13,39 +12,44 @@ import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_
@RestController
@CrossOrigin(origins = "*")
@RequestMapping(V1_API_VERSION+"/tavpresup")
@RequestMapping(V1_API_VERSION + "/tavpresup")
public class UzyTavPresupController {
@Autowired
IServiceUzyTavPresup serviceUzyTavPresup;
private final IServiceUzyTavPresup serviceUzyTavPresup;
public UzyTavPresupController(IServiceUzyTavPresup serviceUzyTavPresup) {
this.serviceUzyTavPresup = serviceUzyTavPresup;
}
@GetMapping("/exampleFindId/{id}")
public ResponseEntity<ModelUzyTavPresup> ListarPorID(@PathVariable Long id) {
public ResponseEntity<DtoUzyTavPresup> ListarPorID(@PathVariable Long id) {
return new ResponseEntity<>(serviceUzyTavPresup.ListarPorID(id), HttpStatus.OK);
}
@GetMapping("/getAll")
public ResponseEntity<List<ModelUzyTavPresup>> ListarRegistros() {
public ResponseEntity<List<DtoUzyTavPresup>> ListarRegistros() {
return new ResponseEntity<>(serviceUzyTavPresup.ListarRegistros(), HttpStatus.OK);
}
@PostMapping("/guardar")
public ResponseEntity<ModelUzyTavPresup> guardar(@RequestBody ModelUzyTavPresup modelUzyTavPresup) {
return new ResponseEntity<>(serviceUzyTavPresup.guardar(modelUzyTavPresup), HttpStatus.OK);
public ResponseEntity<DtoUzyTavPresup> guardar(@RequestBody DtoUzyTavPresup dtoUzyTavPresup) {
return new ResponseEntity<>(serviceUzyTavPresup.guardar(dtoUzyTavPresup), HttpStatus.OK);
}
@PutMapping("/editar/{id}")
public ResponseEntity<ModelUzyTavPresup> editar(@PathVariable Long id, @RequestBody ModelUzyTavPresup modelUzyTavPresup) {
return new ResponseEntity<>(serviceUzyTavPresup.editar(id, modelUzyTavPresup), HttpStatus.OK);
public ResponseEntity<DtoUzyTavPresup> editar(@PathVariable Long id, @RequestBody DtoUzyTavPresup dtoUzyTavPresup) {
return new ResponseEntity<>(serviceUzyTavPresup.editar(id, dtoUzyTavPresup), HttpStatus.OK);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) {
serviceUzyTavPresup.eliminar(id);
return ResponseEntity.ok().build();
public ResponseEntity<String> eliminar(@PathVariable Long id) {
boolean eliminado = serviceUzyTavPresup.eliminar(id);
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;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavPresup;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface DaoUzyTavPresup extends JpaRepository<ModelUzyTavPresup, Long> {
}
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.math.BigDecimal;
@Data
public class DtoUzyTavPresup {
......@@ -11,7 +10,7 @@ public class DtoUzyTavPresup {
private Long uzytavpresup_id;
private Long uzytavproyec_id;
private Long uzytavclaspre_id;
private Double uzytavpresup_valor;
private BigDecimal uzytavpresup_valor;
private String uzytavpresup_esptecnic;
private String uzytavpresup_tipogasto;
private Integer uzytavpresup_cantidad;
......
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavProyec;
import org.modelmapper.ModelMapper;
import org.modelmapper.PropertyMap;
import org.springframework.stereotype.Component;
import javax.persistence.EntityManager;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class UzyTavPresupMapper {
private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzyTavPresupMapper(ModelMapper modelMapper) {
public UzyTavPresupMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper;
this.entityManager = entityManager;
configureMappings();
}
public DtoUzyTavPresup entityToDto(ModelUzyTavPresup entity) {
......@@ -18,6 +28,29 @@ public class UzyTavPresupMapper {
}
public ModelUzyTavPresup dtoToEntity(DtoUzyTavPresup dto) {
return modelMapper.map(dto, ModelUzyTavPresup.class);
ModelUzyTavPresup entity = modelMapper.map(dto, ModelUzyTavPresup.class);
Long proyecID = dto.getUzytavproyec_id();
Long classpreID = dto.getUzytavclaspre_id();
ModelUzyTavProyec proyec = entityManager.find(ModelUzyTavProyec.class, proyecID);
ModelUzyTavClasPre clasPre = entityManager.find(ModelUzyTavClasPre.class, classpreID);
entity.setUzytavproyec(proyec);
entity.setUzytavclaspre(clasPre);
return entity;
}
public List<DtoUzyTavPresup> entitiesToDtos(List<ModelUzyTavPresup> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
private void configureMappings() {
modelMapper.addMappings(new PropertyMap<ModelUzyTavPresup, DtoUzyTavPresup>() {
@Override
protected void configure() {
map().setUzytavpresup_id(source.getUzytavpresup_id());
map().setUzytavproyec_id(source.getUzytavproyec().getUzytavproyec_id());
map().setUzytavclaspre_id(source.getUzytavclaspre().getUzytavclaspre_id());
}
});
}
}
......@@ -2,13 +2,14 @@ package ec.edu.espe.movilidad.MovilidadWS.Model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Set;
@Data
@Getter
@Setter
@Entity
@Table(name = "uzytavpresup", schema = "UTIC1")
public class ModelUzyTavPresup {
......@@ -46,13 +47,13 @@ public class ModelUzyTavPresup {
//RELACIÓN CON PROYECTO- TABLA PADRE
@JsonIgnore
@ManyToOne( cascade = CascadeType.ALL)
@ManyToOne( fetch = FetchType.LAZY)
@JoinColumn(name = "uzytavproyec_id", referencedColumnName = "uzytavproyec_id")
private ModelUzyTavProyec uzytavproyec;
//RELACIÓN CON CLASSPREE- TABLA PADRE
@JsonIgnore
@ManyToOne( cascade = CascadeType.ALL)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "uzytavclaspre_id", referencedColumnName = "uzytavclaspre_id")
private ModelUzyTavClasPre uzytavclaspre;
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavPresup;
import java.util.List;
public interface IServiceUzyTavPresup {
public ModelUzyTavPresup ListarPorID(Long id);
DtoUzyTavPresup ListarPorID(Long id);
public List<ModelUzyTavPresup> ListarRegistros();
List<DtoUzyTavPresup> ListarRegistros();
public ModelUzyTavPresup guardar(ModelUzyTavPresup modelUzyTavPresup);
DtoUzyTavPresup guardar(DtoUzyTavPresup dtoUzyTavPresup);
public ModelUzyTavPresup editar( Long id, ModelUzyTavPresup modelUzyTavPresup);
DtoUzyTavPresup editar( Long id, DtoUzyTavPresup dtoUzyTavPresup);
void eliminar(Long id);
boolean eliminar(Long id);
}
......@@ -2,55 +2,77 @@ package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavPresup;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavPresupMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavPresup;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzyTavPresup implements IServiceUzyTavPresup {
@Autowired
DaoUzyTavPresup daoUzyTavPresup;
private final DaoUzyTavPresup daoUzyTavPresup;
private final UzyTavPresupMapper mapper;
public ServiceUzyTavPresup(DaoUzyTavPresup daoUzyTavPresup, UzyTavPresupMapper mapper) {
this.daoUzyTavPresup = daoUzyTavPresup;
this.mapper = mapper;
}
@Override
public ModelUzyTavPresup ListarPorID(Long id) {
return daoUzyTavPresup.findById(id).get();
public DtoUzyTavPresup ListarPorID(Long id) {
ModelUzyTavPresup entity = daoUzyTavPresup.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
}
@Override
public List<ModelUzyTavPresup> ListarRegistros() {
return daoUzyTavPresup.findAll();
public List<DtoUzyTavPresup> ListarRegistros() {
List<ModelUzyTavPresup> entities = daoUzyTavPresup.findAll();
return mapper.entitiesToDtos(entities);
}
@Override
public ModelUzyTavPresup guardar(ModelUzyTavPresup modelUzyTavPresup) {
return daoUzyTavPresup.save(modelUzyTavPresup);
public DtoUzyTavPresup guardar(DtoUzyTavPresup dtoUzyTavPresup) {
ModelUzyTavPresup entity = mapper.dtoToEntity(dtoUzyTavPresup);
ModelUzyTavPresup nuevoEntity = daoUzyTavPresup.save(entity);
return mapper.entityToDto(nuevoEntity);
}
@Override
public ModelUzyTavPresup editar(Long id, ModelUzyTavPresup modelUzyTavPresup) {
ModelUzyTavPresup dato = daoUzyTavPresup.findById(id).get();
//.orElseThrow(()->new ControlExcepciones("No existe el registro con el ID : " + id));
//Seteamos los nuevos datos del registro
dato.setUzytavpresup_id(modelUzyTavPresup.getUzytavpresup_id());
dato.setUzytavpresup_valor(modelUzyTavPresup.getUzytavpresup_valor());
dato.setUzytavpresup_esptecnic(modelUzyTavPresup.getUzytavpresup_esptecnic());
dato.setUzytavpresup_tipogasto(modelUzyTavPresup.getUzytavpresup_tipogasto());
dato.setUzytavpresup_cantidad(modelUzyTavPresup.getUzytavpresup_cantidad());
dato.setUzytavpresup_bien_servicio(modelUzyTavPresup.getUzytavpresup_bien_servicio());
dato.setUzytavpresup_tipo(modelUzyTavPresup.getUzytavpresup_tipo());
dato.setUzytavpresup_total_ejec(modelUzyTavPresup.getUzytavpresup_total_ejec());
dato.setUzytavpresup_valoranual(modelUzyTavPresup.getUzytavpresup_valoranual());
ModelUzyTavPresup datoActualizado = daoUzyTavPresup.save(dato);
return datoActualizado;
public DtoUzyTavPresup editar(Long id, DtoUzyTavPresup dtoUzyTavPresup) {
try {
ModelUzyTavPresup entity = daoUzyTavPresup.findById(id).get();
if (entity != null) {
entity.setUzytavpresup_valor(dtoUzyTavPresup.getUzytavpresup_valor());
entity.setUzytavpresup_esptecnic(dtoUzyTavPresup.getUzytavpresup_esptecnic());
entity.setUzytavpresup_tipogasto(dtoUzyTavPresup.getUzytavpresup_tipogasto());
entity.setUzytavpresup_cantidad(dtoUzyTavPresup.getUzytavpresup_cantidad());
entity.setUzytavpresup_bien_servicio(dtoUzyTavPresup.getUzytavpresup_bien_servicio());
entity.setUzytavpresup_tipo(dtoUzyTavPresup.getUzytavpresup_tipo());
entity.setUzytavpresup_total_ejec(dtoUzyTavPresup.getUzytavpresup_total_ejec());
entity.setUzytavpresup_valoranual(dtoUzyTavPresup.getUzytavpresup_valoranual());
ModelUzyTavPresup updatedEntity = daoUzyTavPresup.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 void eliminar(Long id) {
ModelUzyTavPresup dato = daoUzyTavPresup.findById(id).get();
//.orElseThrow(() -> new ControlExcepciones("No existe el registro con el ID : " + id));
daoUzyTavPresup.delete(dato);
public boolean eliminar(Long id) {
ModelUzyTavPresup entity = daoUzyTavPresup.findById(id).orElse(null);
if (entity != null) {
daoUzyTavPresup.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