Se realiza una consulta en DaoUzyTavProlin para obtener los registros de…

Se realiza una consulta en DaoUzyTavProlin para obtener los registros de sublinea y linea, además se realiza modificaciones al metodo de editar de ServiceUzytavObjetivoPrograma y se modifica el modelo de ModelUzytavObjetivoPrograma para poder eliminar el registro con la relación de padre
parent 4b0e2f5d
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoSubLineaLinea;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavProlin;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavProlin.IServiceUzyTavProlin;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -30,6 +31,16 @@ public class UzyTavProlinController {
return new ResponseEntity<>(serviceUzyTavProlin.ListarRegistros(), HttpStatus.OK);
}
@GetMapping("/obtenerRegistrosPorSubLinea/{sublineaID}")
public ResponseEntity<List<DtoUzyTavProlin>> obtenerRegistrosPorSubLinea(@PathVariable Long sublineaID) {
return new ResponseEntity<>(serviceUzyTavProlin.obtenerRegistrosPorSubLinea(sublineaID), HttpStatus.OK);
}
@GetMapping("/obtenerSubLineaLinea/{sublineaID}")
public ResponseEntity<List<DtoSubLineaLinea>> obtenerSubLineaLinea(@PathVariable Long sublineaID) {
return new ResponseEntity<>(serviceUzyTavProlin.obtenerSubLineaLinea(sublineaID), HttpStatus.OK);
}
@PostMapping("/guardar")
public ResponseEntity<DtoUzyTavProlin> guardar(@RequestBody DtoUzyTavProlin dtoUzyTavProlin) {
......
package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoSubLineaLinea;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavProlin;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface DaoUzyTavProlin extends JpaRepository<ModelUzyTavProlin, Long> {
@Query("SELECT pl FROM ModelUzyTavProlin pl JOIN pl.UZYTAVSUBLINEA sb WHERE sb.uzytavsublinea_ID = :sublineaID")
List<ModelUzyTavProlin> obtenerRegistrosPorSubLinea(@Param("sublineaID") Long sublineaID);
@Query("SELECT new ec.edu.espe.movilidad.MovilidadWS.Dto.DtoSubLineaLinea(" +
"p.uzytavprolin_ID, p.UZYTAVSUBLINEA.uzytavsublinea_ID, " +
"p.UZYTAVSUBLINEA.uzytavsublinea_DESCRIPCION, " +
"p.UZYTAVSUBLINEA.UZYTAVLINEA.uzytavlinea_ID, " +
"p.UZYTAVSUBLINEA.UZYTAVLINEA.uzytavlinea_DESCRIPCION) " +
"FROM ModelUzyTavProlin p WHERE p.UZYTAVSUBLINEA.uzytavsublinea_ID = :sublineaID")
List<DtoSubLineaLinea> obtenerSubLineaLinea(@Param("sublineaID") Long sublineaID);
}
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
@Data
public class DtoSubLineaLinea {
private Long uzytavprolin_ID;
private Long uzytavsublinea_ID;
private String uzytavsublinea_DESCRIPCION;
private Long uzytavlinea_ID;
private String uzytavlinea_DESCRIPCION;
public DtoSubLineaLinea(Long uzytavprolin_ID, Long uzytavsublinea_ID, String uzytavsublinea_DESCRIPCION, Long uzytavlinea_ID, String uzytavlinea_DESCRIPCION) {
this.uzytavprolin_ID = uzytavprolin_ID;
this.uzytavsublinea_ID = uzytavsublinea_ID;
this.uzytavsublinea_DESCRIPCION = uzytavsublinea_DESCRIPCION;
this.uzytavlinea_ID = uzytavlinea_ID;
this.uzytavlinea_DESCRIPCION = uzytavlinea_DESCRIPCION;
}
}
......@@ -5,7 +5,8 @@ import lombok.Data;
@Data
public class DtoUzyTavProlin {
private Long UZYTAVPROLIN_ID;
private Long UZYTAVPROYEC_ID;
private Long UZYTAVSUBLINEA_ID;
private Long uzytavprolin_ID;
private Long uzytavproyec_ID;
private Long uzytavsublinea_ID;
private DtoUzyTavSubLinea uzyTavSubLinea;
}
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import java.util.Date;
import java.time.LocalDate;
@Data
public class DtoUzytavObjetivoPrograma {
private Date uzytavobjetivo_programafec_fin;
private Date uzytavobjetivo_programafec_ini;
private LocalDate uzytavobjetivo_programafec_fin;
private LocalDate uzytavobjetivo_programafec_ini;
private DtoUzytavObjetivoPrograma uzytavobjetivo_programaPadre;
private Long uzytavobjetivo_programa_id_padre;
private DtoUzyTavPrograma_V uzytavprograma_v;
......
......@@ -8,20 +8,22 @@ import javax.persistence.*;
@Getter
@Setter
@Entity
@Table(name = "UZYTAVPROLIN")
@Table(name = "UZYTAVPROLIN", schema = "UTIC1")
public class ModelUzyTavProlin {
@Id
@Column(name = "UZYTAVPROLIN_ID", nullable = false)
private Long UZYTAVPROLIN_ID;
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavprolin_seq")
@SequenceGenerator(name = "uzytavprolin_seq", sequenceName = "SEQ_UZYTAVPROLIN", allocationSize = 1)
@Column(name = "uzytavprolin_ID")
private Long uzytavprolin_ID;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "UZYTAVPROYEC_ID")
@JoinColumn(name = "uzytavproyec_ID")
private ModelUzyTavProyec uzytavproyec;
//RELACIÓN CON SUBLINEA-TABLA PADRE
@ManyToOne( fetch = FetchType.LAZY)
@JoinColumn(name = "UZYTAVSUBLINEA_ID")
@JoinColumn(name = "uzytavsublinea_ID")
private ModelUzyTavSubLinea UZYTAVSUBLINEA;
}
......@@ -8,7 +8,7 @@ import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.*;
import javax.validation.constraints.Size;
import java.util.Date;
import java.time.LocalDate;
import java.util.LinkedHashSet;
import java.util.Set;
@Getter
......@@ -60,17 +60,17 @@ public class ModelUzytavObjetivoPrograma {
@JsonIgnore
@OneToMany(mappedBy = "uzytavobjetivo_programaPadre")
@OneToMany(mappedBy = "uzytavobjetivo_programaPadre", cascade = CascadeType.ALL)
private Set<ModelUzytavObjetivoPrograma> modelUzytavObjetivoProgramaSet = new LinkedHashSet<>();
@Column(name = "uzytavobjetivo_programaorden")
private Long uzytavobjetivo_programaorden;
@Column(name = "uzytavobjetivo_programafec_ini")
private Date uzytavobjetivo_programafec_ini;
private LocalDate uzytavobjetivo_programafec_ini;
@Column(name = "uzytavobjetivo_programafec_fin")
private Date uzytavobjetivo_programafec_fin;
private LocalDate uzytavobjetivo_programafec_fin;
@Column(name = "uzytavobjetivo_programaindicador_tipo")
private Long uzytavobjetivo_programaindicador_tipo;
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavProlin;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoSubLineaLinea;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavProlin;
import org.springframework.data.repository.query.Param;
import java.util.List;
......@@ -13,6 +15,8 @@ public interface IServiceUzyTavProlin {
DtoUzyTavProlin guardar(DtoUzyTavProlin dtoUzyTavProlin);
DtoUzyTavProlin editar(Long id, DtoUzyTavProlin dtoUzyTavProlin);
List<DtoUzyTavProlin> obtenerRegistrosPorSubLinea(@Param("sublineaID") Long sublineaID);
List<DtoSubLineaLinea> obtenerSubLineaLinea(Long sublineaID);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavProlin;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavProlin;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoSubLineaLinea;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavProlin;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavProlinMapper;
......@@ -55,6 +56,18 @@ public class ServiceUzyTavProlin implements IServiceUzyTavProlin{
throw new ResourceNotFoundException("Error al editar el registro: " + e.getMessage());
}
}
@Override
public List<DtoUzyTavProlin> obtenerRegistrosPorSubLinea(Long sublineaID) {
List<ModelUzyTavProlin> entities = daoUzyTavProlin.obtenerRegistrosPorSubLinea(sublineaID);
return mapper.entitiesToDtos(entities);
}
@Override
public List<DtoSubLineaLinea> obtenerSubLineaLinea(Long sublineaID) {
return daoUzyTavProlin.obtenerSubLineaLinea(sublineaID);
}
@Override
public boolean eliminar(Long id) {
ModelUzyTavProlin entity = daoUzyTavProlin.findById(id).orElse(null);
......
......@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzytavObjetivoPrograma implements IServiceUzytavObjetivoPrograma{
public class ServiceUzytavObjetivoPrograma implements IServiceUzytavObjetivoPrograma {
private final DaoUzytavObjetivoPrograma daoUzytavObjetivoPrograma;
......@@ -61,21 +61,44 @@ public class ServiceUzytavObjetivoPrograma implements IServiceUzytavObjetivoProg
ModelUzytavObjetivoPrograma entity = daoUzytavObjetivoPrograma.findById(id).get();
//Seteamos los nuevos datos del registro
if (entity != null) {
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador() != null) {
entity.setUzytavobjetivo_programaindicador(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programamverifica() != null) {
entity.setUzytavobjetivo_programamverifica(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programamverifica());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programasupuestos() != null) {
entity.setUzytavobjetivo_programasupuestos(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programasupuestos());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaobjetivo_proy() != null) {
entity.setUzytavobjetivo_programaobjetivo_proy(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaobjetivo_proy());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programatipo() != null) {
entity.setUzytavobjetivo_programatipo(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programatipo());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaorden() != null) {
entity.setUzytavobjetivo_programaorden(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaorden());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programafec_ini() != null) {
entity.setUzytavobjetivo_programafec_ini(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programafec_ini());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programafec_fin() != null) {
entity.setUzytavobjetivo_programafec_fin(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programafec_fin());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador() != null) {
entity.setUzytavobjetivo_programaindicador(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador_valor() != null) {
entity.setUzytavobjetivo_programaindicador_valor(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador_valor());
}
if (dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador_valor_eje() != null) {
entity.setUzytavobjetivo_programaindicador_valor_eje(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador_valor_eje());
}
ModelUzytavObjetivoPrograma updatedEntity = daoUzytavObjetivoPrograma.save(entity);
return mapper.entityToDto(updatedEntity);
}else {
} else {
throw new ResourceNotFoundException("No se encontró el registro con ID: " + id);
}
} catch (Exception e) {
......
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