Se corrigen los servicios de ModelUzyTavDetComca

parent c9dc2578
package ec.edu.espe.movilidad.MovilidadWS.Controller; package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavDetComca; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDetComca;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDetComca.IServiceUzyTavDetComca; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDetComca.IServiceUzyTavDetComca;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List; import java.util.List;
import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION; import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION;
...@@ -15,46 +15,51 @@ import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_ ...@@ -15,46 +15,51 @@ import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@RequestMapping(V1_API_VERSION+"/detcomca") @RequestMapping(V1_API_VERSION+"/detcomca")
public class UzyTavDetComcaController { public class UzyTavDetComcaController {
@Autowired
private IServiceUzyTavDetComca serviceUzyTavDetComca; private final IServiceUzyTavDetComca serviceUzyTavDetComca;
public UzyTavDetComcaController(IServiceUzyTavDetComca serviceUzyTavDetComca) {
this.serviceUzyTavDetComca = serviceUzyTavDetComca;
}
@GetMapping("/exampleFindId/{id}") @GetMapping("/exampleFindId/{id}")
public ResponseEntity<ModelUzyTavDetComca> ListarPorID(@PathVariable Long id) { public ResponseEntity<DtoUzyTavDetComca> ListarPorID(@PathVariable Long id) {
return new ResponseEntity<>(serviceUzyTavDetComca.ListarPorID(id), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavDetComca.ListarPorID(id), HttpStatus.OK);
} }
@GetMapping("/getAll") @GetMapping("/getAll")
public ResponseEntity<List<ModelUzyTavDetComca>> ListarRegistros() { public ResponseEntity<List<DtoUzyTavDetComca>> ListarRegistros() {
return new ResponseEntity<>(serviceUzyTavDetComca.ListarRegistros(), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavDetComca.ListarRegistros(), HttpStatus.OK);
} }
@GetMapping("/datosRealacionadosconCabComca/{id}") @GetMapping("/datosRealacionadosconCabComca/{id}")
public ResponseEntity<List<ModelUzyTavDetComca>> findByIdconDatosCabComca(@PathVariable("id") Long id) { public ResponseEntity<List<Object[]>> findByIdconDatosCabComca(@PathVariable("id") Long id) {
List<ModelUzyTavDetComca> result = serviceUzyTavDetComca.findByIdconDatosCabComca(id); List<Object[]> result = serviceUzyTavDetComca.findByIdconDatosCabComca(id);
return ResponseEntity.ok(result); return ResponseEntity.ok(result);
} }
@PostMapping("/guardar")
public ResponseEntity<ModelUzyTavDetComca> guardar(@RequestBody ModelUzyTavDetComca modelUzyTavDetComca, @RequestParam("uzytavcabcomca_id")Long uzytavcabcomca_id) {
ModelUzyTavDetComca creado= serviceUzyTavDetComca.guardar(uzytavcabcomca_id, modelUzyTavDetComca);
return ResponseEntity.status(HttpStatus.CREATED).body(creado);
@PostMapping("/guardar")
public ResponseEntity<DtoUzyTavDetComca> guardar(@Valid @RequestBody DtoUzyTavDetComca dtoUzyTavDetComca) {
DtoUzyTavDetComca savedDto = serviceUzyTavDetComca.guardar(dtoUzyTavDetComca);
return ResponseEntity.ok(savedDto);
} }
@PutMapping("/editar/{id}") @PutMapping("/editar/{id}")
public ResponseEntity<ModelUzyTavDetComca> editar(@PathVariable Long id, @RequestBody ModelUzyTavDetComca modelUzyTavDetComca) { public ResponseEntity<DtoUzyTavDetComca> editar(@PathVariable Long id, @RequestBody DtoUzyTavDetComca dtoUzyTavDetComca) {
return new ResponseEntity<>(serviceUzyTavDetComca.editar(id, modelUzyTavDetComca), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavDetComca.editar(id, dtoUzyTavDetComca), HttpStatus.OK);
} }
@DeleteMapping("/eliminar/{id}") @DeleteMapping("/eliminar/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) { public ResponseEntity<String> eliminar(@PathVariable Long id){
serviceUzyTavDetComca.eliminar(id); boolean eliminado = serviceUzyTavDetComca.eliminar(id);
return ResponseEntity.ok().build(); if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
} }
} }
...@@ -12,9 +12,9 @@ import java.util.List; ...@@ -12,9 +12,9 @@ import java.util.List;
public interface DaoUzyTavDetComca extends JpaRepository<ModelUzyTavDetComca, Long> { public interface DaoUzyTavDetComca extends JpaRepository<ModelUzyTavDetComca, Long> {
//Obtener los datos relacionados con la tabla CabComca mediante un id //Obtener los datos relacionados con la tabla CabComca mediante un ID
@Query("SELECT p FROM ModelUzyTavDetComca p INNER JOIN p.uzytavcabcomca c WHERE c.uzytavcabcomca_id = :id") @Query("SELECT p FROM ModelUzyTavDetComca p INNER JOIN p.uzytavcabcomca c WHERE c.uzytavcabcomca_id = :id")
List<ModelUzyTavDetComca> findByIdconDatosCabComca(@Param("id") Long id); List<Object[]> findByIdconDatosCabComca(@Param("id") Long id);
} }
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import java.util.Date;
@Data
public class DtoUzyTavDetComca {
private Long uzytavdetcomca_id;
private Long uzytusuario_id_crea;
private Long uzytusuario_id_asignado;
private Date uzytavdetcomca_fech_crea;
private String uzytavdetcomca_estado;
private Long uzytavcabcomca_id;
}
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDetComca;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavDetComca;
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 UzyTavDetComcaMapper {
private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzyTavDetComcaMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper;
this.entityManager = entityManager;
configureMappings();
}
public DtoUzyTavDetComca entityToDto(ModelUzyTavDetComca entity) {
return modelMapper.map(entity, DtoUzyTavDetComca.class);
}
public ModelUzyTavDetComca dtoToEntity(DtoUzyTavDetComca dto) {
ModelUzyTavDetComca entity = modelMapper.map(dto, ModelUzyTavDetComca.class);
Long cabcomcaID = dto.getUzytavcabcomca_id();
ModelUzyTavCabComca cabComca = entityManager.find(ModelUzyTavCabComca.class, cabcomcaID);
entity.setUzytavcabcomca(cabComca);
return entity;
}
public List<DtoUzyTavDetComca> entitiesToDtos(List<ModelUzyTavDetComca> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
private void configureMappings() {
modelMapper.addMappings(new PropertyMap<ModelUzyTavDetComca, DtoUzyTavDetComca>() {
@Override
protected void configure() {
map().setUzytavdetcomca_id(source.getUzytavdetcomca_id());
map().setUzytavcabcomca_id(source.getUzytavcabcomca().getUzytavcabcomca_id());
}
});
}
}
...@@ -2,13 +2,15 @@ package ec.edu.espe.movilidad.MovilidadWS.Model; ...@@ -2,13 +2,15 @@ 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.*;
import java.util.Date; import java.util.Date;
import java.util.Set; import java.util.Set;
@Data @Getter
@Setter
@Entity @Entity
@Table(name = "uzytavdetcomca", schema = "UTIC1") @Table(name = "uzytavdetcomca", schema = "UTIC1")
public class ModelUzyTavDetComca { public class ModelUzyTavDetComca {
...@@ -18,8 +20,6 @@ public class ModelUzyTavDetComca { ...@@ -18,8 +20,6 @@ public class ModelUzyTavDetComca {
@Column(name = "uzytavdetcomca_id") @Column(name = "uzytavdetcomca_id")
private Long uzytavdetcomca_id; private Long uzytavdetcomca_id;
@Column(name = "uzytusuario_id_crea") @Column(name = "uzytusuario_id_crea")
private Long uzytusuario_id_crea; private Long uzytusuario_id_crea;
...@@ -39,7 +39,6 @@ public class ModelUzyTavDetComca { ...@@ -39,7 +39,6 @@ public class ModelUzyTavDetComca {
private ModelUzyTavCabComca uzytavcabcomca; private ModelUzyTavCabComca uzytavcabcomca;
//RELACIÓN CON LA TABLA uzytavcabevalp- TABLA HIJA //RELACIÓN CON LA TABLA uzytavcabevalp- TABLA HIJA
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "uzytavdetcomca", cascade = CascadeType.ALL) @OneToMany(mappedBy = "uzytavdetcomca", cascade = CascadeType.ALL)
private Set<ModelUzyTavCabeValp> modelUzyTavCabeValpSet; private Set<ModelUzyTavCabeValp> modelUzyTavCabeValpSet;
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDetComca; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDetComca;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavDetComca; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDetComca;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import java.util.List; import java.util.List;
public interface IServiceUzyTavDetComca { public interface IServiceUzyTavDetComca {
public ModelUzyTavDetComca ListarPorID(Long id); DtoUzyTavDetComca ListarPorID(Long id);
public List<ModelUzyTavDetComca> ListarRegistros(); List<DtoUzyTavDetComca> ListarRegistros();
public ModelUzyTavDetComca guardar(Long uzytavcabcomca_id, ModelUzyTavDetComca modelUzyTavDetComca); DtoUzyTavDetComca guardar(DtoUzyTavDetComca dtoUzyTavDetComca);
List<ModelUzyTavDetComca> findByIdconDatosCabComca(@Param("id") Long id); List<Object[]> findByIdconDatosCabComca(@Param("id") Long id);
public ModelUzyTavDetComca editar(Long id, ModelUzyTavDetComca modelUzyTavDetComca); DtoUzyTavDetComca editar(Long id, DtoUzyTavDetComca dtoUzyTavDetComca);
void eliminar(Long id); boolean eliminar(Long id);
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDetComca; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDetComca;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavDetComca; import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavDetComca;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabComca; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDetComca;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavDetComcaMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavDetComca; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavDetComca;
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;
import javax.persistence.EntityNotFoundException;
import java.util.List; import java.util.List;
@Service @Service
public class ServiceUzyTavDetComca implements IServiceUzyTavDetComca{ public class ServiceUzyTavDetComca implements IServiceUzyTavDetComca{
@Autowired
DaoUzyTavDetComca daoUzyTavDetComca; private final DaoUzyTavDetComca daoUzyTavDetComca;
@Autowired private final UzyTavDetComcaMapper mapper;
DaoUzyTavCabComca daoUzyTavCabComca;
public ServiceUzyTavDetComca(DaoUzyTavDetComca daoUzyTavDetComca, UzyTavDetComcaMapper mapper) {
this.daoUzyTavDetComca = daoUzyTavDetComca;
this.mapper = mapper;
}
@Override @Override
public ModelUzyTavDetComca ListarPorID(@PathVariable Long id) { public DtoUzyTavDetComca ListarPorID(@PathVariable Long id) {
return daoUzyTavDetComca.findById(id).get(); ModelUzyTavDetComca entity = daoUzyTavDetComca.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
} }
@Override @Override
public List<ModelUzyTavDetComca> ListarRegistros() { public List<DtoUzyTavDetComca> ListarRegistros() {
return daoUzyTavDetComca.findAll(); List<ModelUzyTavDetComca> entities = daoUzyTavDetComca.findAll();
return mapper.entitiesToDtos(entities);
} }
@Override @Override
public ModelUzyTavDetComca guardar(Long uzytavcabcomca_id, ModelUzyTavDetComca modelUzyTavDetComca) { public DtoUzyTavDetComca guardar(DtoUzyTavDetComca dtoUzyTavDetComca) {
ModelUzyTavCabComca modelUzyTavCabComca = daoUzyTavCabComca.findById(uzytavcabcomca_id) ModelUzyTavDetComca entity = mapper.dtoToEntity(dtoUzyTavDetComca);
.orElseThrow(() -> new EntityNotFoundException("No se encontró la entidad ModelUzyTavCabComca con el ID proporcionado")); ModelUzyTavDetComca nuevoEntity = daoUzyTavDetComca.save(entity);
modelUzyTavDetComca.setUzytavcabcomca(modelUzyTavCabComca); return mapper.entityToDto(nuevoEntity);
return daoUzyTavDetComca.save(modelUzyTavDetComca);
} }
@Override @Override
public List<ModelUzyTavDetComca> findByIdconDatosCabComca(Long id) { public List<Object[]> findByIdconDatosCabComca(Long id) {
return daoUzyTavDetComca.findByIdconDatosCabComca(id); return daoUzyTavDetComca.findByIdconDatosCabComca(id);
} }
@Override @Override
public ModelUzyTavDetComca editar(@PathVariable Long id, ModelUzyTavDetComca modelUzyTavDetComca) { public DtoUzyTavDetComca editar(@PathVariable Long id, DtoUzyTavDetComca dtoUzyTavDetComca) {
ModelUzyTavDetComca dato = daoUzyTavDetComca.findById(id).get(); try {
//.orElseThrow(()->new ControlExcepciones("No existe el registro con el ID : " + id)); ModelUzyTavDetComca entity = daoUzyTavDetComca.findById(id).get();
//Seteamos los nuevos datos del registro if (entity != null) {
dato.setUzytavdetcomca_id(modelUzyTavDetComca.getUzytavdetcomca_id());
dato.setUzytusuario_id_crea(modelUzyTavDetComca.getUzytusuario_id_crea());
dato.setUzytusuario_id_asignado(modelUzyTavDetComca.getUzytusuario_id_asignado());
dato.setUzytavdetcomca_fech_crea(modelUzyTavDetComca.getUzytavdetcomca_fech_crea());
dato.setUzytavdetcomca_estado(modelUzyTavDetComca.getUzytavdetcomca_estado());
ModelUzyTavDetComca datoActualizado = daoUzyTavDetComca.save(dato); entity.setUzytusuario_id_crea(dtoUzyTavDetComca.getUzytusuario_id_crea());
return datoActualizado; entity.setUzytusuario_id_asignado(dtoUzyTavDetComca.getUzytusuario_id_asignado());
entity.setUzytavdetcomca_fech_crea(dtoUzyTavDetComca.getUzytavdetcomca_fech_crea());
entity.setUzytavdetcomca_estado(dtoUzyTavDetComca.getUzytavdetcomca_estado());
ModelUzyTavDetComca updatedEntity = daoUzyTavDetComca.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 @Override
public void eliminar(@PathVariable Long id) { public boolean eliminar(Long id) {
ModelUzyTavDetComca dato = daoUzyTavDetComca.findById(id).get(); ModelUzyTavDetComca entity = daoUzyTavDetComca.findById(id).orElse(null);
//.orElseThrow(() -> new ControlExcepciones("No existe el registro con el ID : " + id)); if (entity != null) {
daoUzyTavDetComca.delete(dato); daoUzyTavDetComca.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