Se agrega la tabla de ModelUzytavObjetivoPrograma

parent 82514f10
......@@ -34,7 +34,10 @@ public class UzyTavProgObjController {
return new ResponseEntity<>(serviceUzyTavProgObj.ListarRegistros(), HttpStatus.OK);
}
@GetMapping("/registrosRelacionadosConPrograma/{programaId}")
public ResponseEntity<List<DtoUzyTavProgObj>> ListarRegistrosRelacionadosConPrograma(@PathVariable Long programaId) {
return new ResponseEntity<>(serviceUzyTavProgObj.obtenerTavProgObjPorPrograma(programaId), HttpStatus.OK);
}
@PostMapping("/guardar")
public ResponseEntity<DtoUzyTavProgObj> guardar(@RequestParam("uzytavprograma_v_id") Long uzytavprograma_v_id,
......
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzytavObjetivoPrograma;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzytavObjetivoPrograma.IServiceUzytavObjetivoPrograma;
import org.springframework.http.HttpStatus;
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+"/objetivoprograma")
public class UzytavObjetivoProgramaController {
private final IServiceUzytavObjetivoPrograma serviceUzytavObjetivoPrograma;
public UzytavObjetivoProgramaController(IServiceUzytavObjetivoPrograma serviceUzytavObjetivoPrograma) {
this.serviceUzytavObjetivoPrograma = serviceUzytavObjetivoPrograma;
}
@GetMapping("/exampleFindId/{id}")
public ResponseEntity<DtoUzytavObjetivoPrograma> ListarPorID(@PathVariable Long id) {
return new ResponseEntity<>(serviceUzytavObjetivoPrograma.ListarPorID(id), HttpStatus.OK);
}
@GetMapping("/getAll")
public ResponseEntity<List<DtoUzytavObjetivoPrograma>> ListarRegistros() {
return new ResponseEntity<>(serviceUzytavObjetivoPrograma.ListarRegistros(), HttpStatus.OK);
}
@GetMapping("/registrosRelacionadosConPrograma/{programaId}")
public ResponseEntity<List<DtoUzytavObjetivoPrograma>> ListarRegistrosRelacionadosConPrograma(@PathVariable Long programaId) {
return new ResponseEntity<>(serviceUzytavObjetivoPrograma.obtenerObjetivoprogramaPorPrograma(programaId), HttpStatus.OK);
}
@PostMapping("/guardar")
public ResponseEntity<DtoUzytavObjetivoPrograma> guardar(@Valid @RequestBody DtoUzytavObjetivoPrograma dtoUzytavObjetivoPrograma) {
DtoUzytavObjetivoPrograma savedDto = serviceUzytavObjetivoPrograma.guardar(dtoUzytavObjetivoPrograma);
return ResponseEntity.ok(savedDto);
}
@PutMapping("/editar/{id}")
public ResponseEntity<DtoUzytavObjetivoPrograma> editar(@PathVariable Long id, @RequestBody DtoUzytavObjetivoPrograma dtoUzytavObjetivoPrograma) {
return new ResponseEntity<>(serviceUzytavObjetivoPrograma.editar(id, dtoUzytavObjetivoPrograma), HttpStatus.OK);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<String> eliminar(@PathVariable Long id){
boolean eliminado = serviceUzytavObjetivoPrograma.eliminar(id);
if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
}
}
......@@ -2,8 +2,15 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavProgObj;
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 DaoUzyTavProgObj extends JpaRepository<ModelUzyTavProgObj, Long> {
@Query("SELECT tp FROM ModelUzyTavProgObj tp JOIN tp.uzytavprograma_v p WHERE p.uzytavprograma_v_id = :programaId")
List<ModelUzyTavProgObj> obtenerTavProgObjPorPrograma(@Param("programaId") Long programaId);
}
package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzytavObjetivoPrograma;
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 DaoUzytavObjetivoPrograma extends JpaRepository<ModelUzytavObjetivoPrograma, Long> {
@Query("SELECT tp FROM ModelUzytavObjetivoPrograma tp JOIN tp.uzytavprograma_v p WHERE p.uzytavprograma_v_id = :programaId")
List<ModelUzytavObjetivoPrograma> obtenerObjetivoprogramaPorPrograma(@Param("programaId") Long programaId);
}
......@@ -9,9 +9,7 @@ public class DtoUzyTavProgObj {
private Long uzytavobjetivo_b_vivir_id;
private DtoUzyTavObjetivoBVivir objetivoBVivir;
private Long uzytavprograma_v_id;
private DtoUzyTavPrograma_V programaV;
private Long uzytavproyec_id;
private DtoUzyTavProyec proyec;
}
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import java.util.Date;
@Data
public class DtoUzytavObjetivoPrograma {
private Date uzytavobjetivo_programafec_fin;
private Date uzytavobjetivo_programafec_ini;
private DtoUzytavObjetivoPrograma uzytavobjetivo_programa;
private DtoUzyTavPrograma_V uzytavprograma_v;
private DtoUzyTavProyec uzytavproyec;
private Long uzytavobjetivo_programa_id;
private Long uzytavobjetivo_programa_id_padre;
private Long uzytavobjetivo_programaindicador_tipo;
private Long uzytavobjetivo_programaindicador_valor;
private Long uzytavobjetivo_programaindicador_valor_eje;
private Long uzytavobjetivo_programaorden;
private Long uzytavobjetivo_programatipo;
private Long uzytavprograma_v_id;
private Long uzytavproyec_id;
private String uzytavobjetivo_programaindicador;
private String uzytavobjetivo_programamverifica;
private String uzytavobjetivo_programaobjetivo_proy;
private String uzytavobjetivo_programasupuestos;
}
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzytavObjetivoPrograma;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavPrograma_V;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavProyec;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzytavObjetivoPrograma;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Component;
import javax.persistence.EntityManager;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class UzytavObjetivoProgramaMapper {
private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzytavObjetivoProgramaMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper;
this.entityManager = entityManager;
}
public DtoUzytavObjetivoPrograma entityToDto(ModelUzytavObjetivoPrograma entity) {
DtoUzytavObjetivoPrograma dto = modelMapper.map(entity, DtoUzytavObjetivoPrograma.class);
if (entity.getUzytavobjetivo_programa() != null) {
DtoUzytavObjetivoPrograma padreDto = entityToDto(entity.getUzytavobjetivo_programa());
dto.setUzytavobjetivo_programa(padreDto);
dto.setUzytavobjetivo_programa_id_padre(entity.getUzytavobjetivo_programa().getUzytavobjetivo_programa_id());
}
return dto;
}
public ModelUzytavObjetivoPrograma dtoToEntity(DtoUzytavObjetivoPrograma dto) {
ModelUzytavObjetivoPrograma entity = modelMapper.map(dto, ModelUzytavObjetivoPrograma.class);
Long programaID = dto.getUzytavprograma_v_id();
Long proyectoID = dto.getUzytavproyec_id();
if (dto.getUzytavobjetivo_programa() != null) {
ModelUzytavObjetivoPrograma padreEntity = dtoToEntity(dto.getUzytavobjetivo_programa());
entity.setUzytavobjetivo_programa(padreEntity);
}
if(programaID !=null){
ModelUzyTavPrograma_V programa_v = entityManager.find(ModelUzyTavPrograma_V.class, programaID);
entity.setUzytavprograma_v(programa_v);
}
if(proyectoID !=null){
ModelUzyTavProyec proyec = entityManager.find(ModelUzyTavProyec.class, proyectoID);
entity.setUzytavproyec(proyec);
}
return entity;
}
public List<DtoUzytavObjetivoPrograma> entitiesToDtos(List<ModelUzytavObjetivoPrograma> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
}
......@@ -171,4 +171,9 @@ public class ModelUzyTavPrograma_V {
@JsonIgnore
@OneToMany(mappedBy = "uzytavprograma_v")
private Set<ModelUzyTavProgObj> modelUzyTavProgObjSet;
//RELACIÓN CON OBJETIVO PROGRAMA-TABLA HIJA
@JsonIgnore
@OneToMany(mappedBy = "uzytavprograma_v")
private Set<ModelUzytavObjetivoPrograma> modelUzytavObjetivoProgramaSet;
}
......@@ -402,5 +402,9 @@ public class ModelUzyTavProyec {
@OneToMany(mappedBy = "uzytavproyec")
private Set<ModelUzyTavProgObj> modelUzyTavProgObjSet;
//RELACIÓN CON OBJETIVO PROGRAMA TABLA HIJA
@JsonIgnore
@OneToMany(mappedBy = "uzytavproyec")
private Set<ModelUzytavObjetivoPrograma> modelUzytavObjetivoProgramaSet;
}
package ec.edu.espe.movilidad.MovilidadWS.Model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.*;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.Set;
@Getter
@Setter
@Entity
@Table(name = "uzytavobjetivo_programa")
public class ModelUzytavObjetivoPrograma {
@Id
@Column(name = "uzytavobjetivo_programa_id")
private Long uzytavobjetivo_programa_id;
@Size(max = 1000)
@Column(name = "uzytavobjetivo_programaindicador", length = 1000)
private String uzytavobjetivo_programaindicador;
@Size(max = 1000)
@Column(name = "uzytavobjetivo_programamverifica", length = 1000)
private String uzytavobjetivo_programamverifica;
@Size(max = 1000)
@Column(name = "uzytavobjetivo_programasupuestos", length = 1000)
private String uzytavobjetivo_programasupuestos;
//RELACIÓN CON PROGRAMA TABLA PADRE
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "uzytavprograma_v_id")
private ModelUzyTavPrograma_V uzytavprograma_v;
@Size(max = 1000)
@Column(name = "uzytavobjetivo_programaobjetivo_proy", length = 1000)
private String uzytavobjetivo_programaobjetivo_proy;
@Column(name = "uzytavobjetivo_programatipo")
private Long uzytavobjetivo_programatipo;
//RELACIÓN CON PROYECTO-TABLA PADRE
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "uzytavproyec_id")
private ModelUzyTavProyec uzytavproyec;
//RELACIÓN CONSIGO MISMA
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "uzytavobjetivo_programa_id_padre", referencedColumnName = "uzytavobjetivo_programa_id")
private ModelUzytavObjetivoPrograma uzytavobjetivo_programa;
@JsonIgnore
@OneToMany(mappedBy = "uzytavobjetivo_programa")
private Set<ModelUzytavObjetivoPrograma> modelUzytavObjetivoProgramaSet = new LinkedHashSet<>();
@Column(name = "uzytavobjetivo_programaorden")
private Long uzytavobjetivo_programaorden;
@Column(name = "uzytavobjetivo_programafec_ini")
private Date uzytavobjetivo_programafec_ini;
@Column(name = "uzytavobjetivo_programafec_fin")
private Date uzytavobjetivo_programafec_fin;
@Column(name = "uzytavobjetivo_programaindicador_tipo")
private Long uzytavobjetivo_programaindicador_tipo;
@Column(name = "uzytavobjetivo_programaindicador_valor")
private Long uzytavobjetivo_programaindicador_valor;
@Column(name = "uzytavobjetivo_programaindicador_valor_eje")
private Long uzytavobjetivo_programaindicador_valor_eje;
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavProgObj;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavProgObj;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavProgObj;
import org.springframework.data.repository.query.Param;
import java.util.List;
......@@ -12,7 +13,7 @@ public interface IServiceUzyTavProgObj {
List<DtoUzyTavProgObj> ListarRegistros();
List<DtoUzyTavProgObj> obtenerTavProgObjPorPrograma(@Param("programaId") Long programaId);
DtoUzyTavProgObj guardar(Long uzytavprograma_v_id, ModelUzyTavProgObj modelUzyTavProgObj);
DtoUzyTavProgObj editar(Long id, DtoUzyTavProgObj dtoUzyTavProgObj);
......
......@@ -43,6 +43,12 @@ public class ServiceUzyTavProgObj implements IServiceUzyTavProgObj {
return mapper.entitiesToDtos(entities);
}
@Override
public List<DtoUzyTavProgObj> obtenerTavProgObjPorPrograma(Long programaId) {
List<ModelUzyTavProgObj> entities = daoUzyTavProgObj.obtenerTavProgObjPorPrograma(programaId);
return mapper.entitiesToDtos(entities);
}
@Override
public DtoUzyTavProgObj guardar(@PathVariable Long uzytavprograma_v_id,
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzytavObjetivoPrograma;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzytavObjetivoPrograma;
import java.util.List;
public interface IServiceUzytavObjetivoPrograma {
DtoUzytavObjetivoPrograma ListarPorID(Long id);
List<DtoUzytavObjetivoPrograma> ListarRegistros();
List<DtoUzytavObjetivoPrograma> obtenerObjetivoprogramaPorPrograma(Long programaId);
DtoUzytavObjetivoPrograma guardar(DtoUzytavObjetivoPrograma dtoUzytavObjetivoPrograma);
DtoUzytavObjetivoPrograma editar( Long id, DtoUzytavObjetivoPrograma dtoUzytavObjetivoPrograma);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzytavObjetivoPrograma;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzytavObjetivoPrograma;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzytavObjetivoPrograma;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzytavObjetivoProgramaMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzytavObjetivoPrograma;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzytavObjetivoPrograma implements IServiceUzytavObjetivoPrograma{
private final DaoUzytavObjetivoPrograma daoUzytavObjetivoPrograma;
private final UzytavObjetivoProgramaMapper mapper;
public ServiceUzytavObjetivoPrograma(DaoUzytavObjetivoPrograma daoUzytavObjetivoPrograma, UzytavObjetivoProgramaMapper mapper) {
this.daoUzytavObjetivoPrograma = daoUzytavObjetivoPrograma;
this.mapper = mapper;
}
@Override
public DtoUzytavObjetivoPrograma ListarPorID(Long id) {
ModelUzytavObjetivoPrograma entity = daoUzytavObjetivoPrograma.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
}
@Override
public List<DtoUzytavObjetivoPrograma> ListarRegistros() {
List<ModelUzytavObjetivoPrograma> entities = daoUzytavObjetivoPrograma.findAll();
return mapper.entitiesToDtos(entities);
}
@Override
public List<DtoUzytavObjetivoPrograma> obtenerObjetivoprogramaPorPrograma(Long programaId) {
List<ModelUzytavObjetivoPrograma> entities = daoUzytavObjetivoPrograma.obtenerObjetivoprogramaPorPrograma(programaId);
return mapper.entitiesToDtos(entities);
}
@Override
public DtoUzytavObjetivoPrograma guardar(DtoUzytavObjetivoPrograma dtoUzytavObjetivoPrograma) {
ModelUzytavObjetivoPrograma entity = mapper.dtoToEntity(dtoUzytavObjetivoPrograma);
ModelUzytavObjetivoPrograma nuevoEntity = daoUzytavObjetivoPrograma.save(entity);
return mapper.entityToDto(nuevoEntity);
}
@Override
public DtoUzytavObjetivoPrograma editar(Long id, DtoUzytavObjetivoPrograma dtoUzytavObjetivoPrograma) {
try {
ModelUzytavObjetivoPrograma entity = daoUzytavObjetivoPrograma.findById(id).get();
//Seteamos los nuevos datos del registro
if (entity != null) {
entity.setUzytavobjetivo_programaindicador(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador());
entity.setUzytavobjetivo_programamverifica(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programamverifica());
entity.setUzytavobjetivo_programasupuestos(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programasupuestos());
entity.setUzytavobjetivo_programaobjetivo_proy(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaobjetivo_proy());
entity.setUzytavobjetivo_programatipo(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programatipo());
entity.setUzytavobjetivo_programaorden(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaorden());
entity.setUzytavobjetivo_programafec_ini(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programafec_ini());
entity.setUzytavobjetivo_programafec_fin(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programafec_fin());
entity.setUzytavobjetivo_programaindicador(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador());
entity.setUzytavobjetivo_programaindicador_valor(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador_valor());
entity.setUzytavobjetivo_programaindicador_valor_eje(dtoUzytavObjetivoPrograma.getUzytavobjetivo_programaindicador_valor_eje());
ModelUzytavObjetivoPrograma updatedEntity = daoUzytavObjetivoPrograma.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) {
ModelUzytavObjetivoPrograma entity = daoUzytavObjetivoPrograma.findById(id).orElse(null);
if (entity != null) {
daoUzytavObjetivoPrograma.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