Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
BackEnd-V2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Joel Andres Molina Velez
BackEnd-V2
Commits
83fb7e0c
Commit
83fb7e0c
authored
Jul 14, 2023
by
Joel Andres Molina Velez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Se agregan los servicios de ModelUzyTavAnexoSPR
parent
a64898aa
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
311 additions
and
0 deletions
+311
-0
UzyTavAnexoSPRController.java
...idad/MovilidadWS/Controller/UzyTavAnexoSPRController.java
+89
-0
DtoUzyTavAnexoSPR.java
...edu/espe/movilidad/MovilidadWS/Dto/DtoUzyTavAnexoSPR.java
+1
-0
UzyTavAnexoSPRMapper.java
...lidadWS/Mapper/Components_Class/UzyTavAnexoSPRMapper.java
+26
-0
ModelUzyTavAnexoSPR.java
...espe/movilidad/MovilidadWS/Model/ModelUzyTavAnexoSPR.java
+5
-0
FileStorageService.java
...d/MovilidadWS/Service/FileStorage/FileStorageService.java
+12
-0
IServiceUzyTavAnexoSPR.java
...idadWS/Service/UzyTavAnexoSPR/IServiceUzyTavAnexoSPR.java
+24
-0
ServiceUzyTavAnexoSPR.java
...lidadWS/Service/UzyTavAnexoSPR/ServiceUzyTavAnexoSPR.java
+154
-0
No files found.
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Controller/UzyTavAnexoSPRController.java
0 → 100644
View file @
83fb7e0c
package
ec
.
edu
.
espe
.
movilidad
.
MovilidadWS
.
Controller
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavAnexoSPR.IServiceUzyTavAnexoSPR
;
import
org.springframework.web.bind.annotation.CrossOrigin
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
static
ec
.
edu
.
espe
.
movilidad
.
MovilidadWS
.
Constant
.
GlobalConstants
.
V1_API_VERSION
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.NoSuchElementException
;
@RestController
@CrossOrigin
(
origins
=
"*"
)
@RequestMapping
(
V1_API_VERSION
+
"/anexos"
)
public
class
UzyTavAnexoSPRController
{
private
final
IServiceUzyTavAnexoSPR
serviceUzyTavAnexoSPR
;
@Autowired
public
UzyTavAnexoSPRController
(
IServiceUzyTavAnexoSPR
serviceUzyTavAnexoSPR
)
{
this
.
serviceUzyTavAnexoSPR
=
serviceUzyTavAnexoSPR
;
}
@PostMapping
(
"/guardarnuevo"
)
public
ResponseEntity
<
DtoUzyTavAnexoSPR
>
saveUzyTavConvoca
(
@RequestParam
(
"file"
)
MultipartFile
file
,
@ModelAttribute
DtoUzyTavAnexoSPR
dtoUzyTavAnexoSPR
)
throws
IOException
{
dtoUzyTavAnexoSPR
.
setUzytavanexospr_digital
(
file
);
DtoUzyTavAnexoSPR
savedUzyTavConvoca
=
serviceUzyTavAnexoSPR
.
save
(
dtoUzyTavAnexoSPR
);
if
(
savedUzyTavConvoca
!=
null
)
{
return
ResponseEntity
.
ok
(
savedUzyTavConvoca
);
}
else
{
return
ResponseEntity
.
status
(
HttpStatus
.
INTERNAL_SERVER_ERROR
).
build
();
}
}
@GetMapping
(
"/exampleFindId/{id}"
)
public
ResponseEntity
<
DtoUzyTavAnexoSPR
>
listarPorID
(
@PathVariable
(
"id"
)
Long
id
)
{
DtoUzyTavAnexoSPR
dto
=
serviceUzyTavAnexoSPR
.
ListarPorID
(
id
);
if
(
dto
!=
null
)
{
return
ResponseEntity
.
ok
(
dto
);
}
else
{
return
ResponseEntity
.
notFound
().
build
();
}
}
@GetMapping
(
"/getAll"
)
public
ResponseEntity
<
List
<
DtoUzyTavAnexoSPR
>>
listarRegistros
()
{
List
<
DtoUzyTavAnexoSPR
>
dtos
=
serviceUzyTavAnexoSPR
.
ListarRegistros
();
return
ResponseEntity
.
ok
(
dtos
);
}
@GetMapping
(
"/verImagen/{uzytavanexospr_id}"
)
public
ResponseEntity
<
byte
[]>
obtenerContenidoPDF
(
@PathVariable
(
"uzytavanexospr_id"
)
Long
uzytavanexospr_id
)
{
String
fileName
=
serviceUzyTavAnexoSPR
.
obtenerNombrePDF
(
uzytavanexospr_id
);
byte
[]
pdfContent
=
serviceUzyTavAnexoSPR
.
obtenerContenidoPDF
(
uzytavanexospr_id
);
if
(
pdfContent
!=
null
&&
fileName
!=
null
)
{
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
IMAGE_JPEG
);
headers
.
setContentType
(
MediaType
.
IMAGE_PNG
);
headers
.
setContentDisposition
(
ContentDisposition
.
builder
(
"inline"
).
filename
(
fileName
).
build
());
return
new
ResponseEntity
<>(
pdfContent
,
headers
,
HttpStatus
.
OK
);
}
else
{
return
ResponseEntity
.
notFound
().
build
();
}
}
@DeleteMapping
(
"/eliminar/{uzytavanexospr_id}"
)
public
ResponseEntity
<
String
>
eliminarConPDF
(
@PathVariable
(
"uzytavanexospr_id"
)
Long
uzytavanexospr_id
)
{
try
{
serviceUzyTavAnexoSPR
.
eliminarConPDF
(
uzytavanexospr_id
);
return
ResponseEntity
.
ok
(
"Registro eliminado exitosamente."
);
}
catch
(
Exception
e
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
INTERNAL_SERVER_ERROR
)
.
body
(
"Error al eliminar el registro: "
+
e
.
getMessage
());
}
}
}
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Dto/DtoUzyTavAnexoSPR.java
View file @
83fb7e0c
...
...
@@ -17,5 +17,6 @@ public class DtoUzyTavAnexoSPR {
private
Long
uzytavanexospr_tipo
;
private
Long
uzytavprograma_v_id
;
private
String
uzytavanexospr_descripcion
;
private
MultipartFile
uzytavanexospr_digital
;
}
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Mapper/Components_Class/UzyTavAnexoSPRMapper.java
View file @
83fb7e0c
package
ec
.
edu
.
espe
.
movilidad
.
MovilidadWS
.
Mapper
.
Components_Class
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTaValorPar
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavCabParaevaf
;
import
ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTaValorPar
;
import
ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabParaevaf
;
import
org.modelmapper.ModelMapper
;
import
org.modelmapper.PropertyMap
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Component
public
class
UzyTavAnexoSPRMapper
{
private
final
ModelMapper
modelMapper
;
public
UzyTavAnexoSPRMapper
(
ModelMapper
modelMapper
)
{
this
.
modelMapper
=
modelMapper
;
configureMappings
();
}
public
DtoUzyTavAnexoSPR
entityToDto
(
ModelUzyTavAnexoSPR
entity
)
{
...
...
@@ -20,4 +30,20 @@ public class UzyTavAnexoSPRMapper {
public
ModelUzyTavAnexoSPR
dtoToEntity
(
DtoUzyTavAnexoSPR
dto
)
{
return
modelMapper
.
map
(
dto
,
ModelUzyTavAnexoSPR
.
class
);
}
public
List
<
DtoUzyTavAnexoSPR
>
entitiesToDtos
(
List
<
ModelUzyTavAnexoSPR
>
entities
)
{
return
entities
.
stream
()
.
map
(
this
::
entityToDto
)
.
collect
(
Collectors
.
toList
());
}
private
void
configureMappings
()
{
modelMapper
.
addMappings
(
new
PropertyMap
<
ModelUzyTavAnexoSPR
,
DtoUzyTavAnexoSPR
>()
{
@Override
protected
void
configure
()
{
map
().
setUzytavanexospr_id
(
source
.
getUzytavanexospr_id
());
map
().
setUzytusuario_id
(
source
.
getUzytusuario
().
getUzytusuario_id
());
}
});
}
}
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Model/ModelUzyTavAnexoSPR.java
View file @
83fb7e0c
package
ec
.
edu
.
espe
.
movilidad
.
MovilidadWS
.
Model
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -33,6 +34,9 @@ public class ModelUzyTavAnexoSPR {
@Column
(
name
=
"uzytavprograma_v_id"
)
private
Long
uzytavprograma_v_id
;
@Column
(
name
=
"uzytavanexospr_digital"
,
columnDefinition
=
"BLOB"
)
private
byte
[]
uzytavanexospr_digital
;
@Column
(
name
=
"uzytavanexospr_descripcion"
)
private
String
uzytavanexospr_descripcion
;
//RELACION CON PROYEC-TABLA PADRE
...
...
@@ -41,6 +45,7 @@ public class ModelUzyTavAnexoSPR {
private
ModelUzyTavProyec
uzytavproyec
;
//RELACIÓN CON USUARIO-TABLA PADRE
@JsonIgnore
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
@JoinColumn
(
name
=
"uzytusuario_id"
)
private
ModelUzyTUsuario
uzytusuario
;
...
...
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Service/FileStorage/FileStorageService.java
View file @
83fb7e0c
...
...
@@ -13,10 +13,13 @@ public class FileStorageService implements IFileStorageService {
private
final
Path
rootFolder
=
Paths
.
get
(
"uploads"
);
private
final
Path
rootFolderIMG
=
Paths
.
get
(
"uploadsIMG"
);
@Override
public
String
saveFile
(
MultipartFile
file
,
String
fileName
,
boolean
overwrite
)
{
try
{
Path
filePath
=
rootFolder
.
resolve
(
fileName
);
// Verificar si el archivo ya existe y si se permite la sobrescritura
if
(
Files
.
exists
(
filePath
)
&&
!
overwrite
)
{
throw
new
FileAlreadyExistsException
(
"File already exists: "
+
fileName
);
...
...
@@ -65,4 +68,12 @@ public class FileStorageService implements IFileStorageService {
}
/////////////
}
\ No newline at end of file
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Service/UzyTavAnexoSPR/IServiceUzyTavAnexoSPR.java
0 → 100644
View file @
83fb7e0c
package
ec
.
edu
.
espe
.
movilidad
.
MovilidadWS
.
Service
.
UzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavConvoca
;
import
java.io.IOException
;
import
java.util.List
;
public
interface
IServiceUzyTavAnexoSPR
{
DtoUzyTavAnexoSPR
ListarPorID
(
Long
id
);
List
<
DtoUzyTavAnexoSPR
>
ListarRegistros
();
DtoUzyTavAnexoSPR
save
(
DtoUzyTavAnexoSPR
dtoUzyTavAnexoSPR
)
throws
IOException
;
DtoUzyTavAnexoSPR
edit
(
Long
uzytavanexospr_id
,
DtoUzyTavAnexoSPR
dtoUzyTavAnexoSPR
)
throws
IOException
;
void
eliminar
(
Long
id
);
byte
[]
obtenerContenidoPDF
(
Long
uzytavanexospr_id
);
String
obtenerUrlPDF
(
Long
uzytavanexospr_id
);
String
obtenerNombrePDF
(
Long
uzytavanexospr_id
);
void
eliminarConPDF
(
Long
uzytavanexospr_id
);
}
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Service/UzyTavAnexoSPR/ServiceUzyTavAnexoSPR.java
0 → 100644
View file @
83fb7e0c
package
ec
.
edu
.
espe
.
movilidad
.
MovilidadWS
.
Service
.
UzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavAnexoSPRMapper
;
import
ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavAnexoSPR
;
import
ec.edu.espe.movilidad.MovilidadWS.Service.FileStorage.IFileStorageService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.nio.file.Files
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.util.List
;
import
java.util.Optional
;
@Service
public
class
ServiceUzyTavAnexoSPR
implements
IServiceUzyTavAnexoSPR
{
private
final
DaoUzyTavAnexoSPR
daoUzyTavAnexoSPR
;
private
final
UzyTavAnexoSPRMapper
mapper
;
private
final
Path
rootFolder
=
Paths
.
get
(
"uploads"
);
private
final
IFileStorageService
fileStorageService
;
public
ServiceUzyTavAnexoSPR
(
DaoUzyTavAnexoSPR
daoUzyTavAnexoSPR
,
UzyTavAnexoSPRMapper
mapper
,
IFileStorageService
fileStorageService
)
{
this
.
daoUzyTavAnexoSPR
=
daoUzyTavAnexoSPR
;
this
.
mapper
=
mapper
;
this
.
fileStorageService
=
fileStorageService
;
}
@Override
public
DtoUzyTavAnexoSPR
ListarPorID
(
Long
id
)
{
Optional
<
ModelUzyTavAnexoSPR
>
optionalUzyTavConvoca
=
daoUzyTavAnexoSPR
.
findById
(
id
);
if
(
optionalUzyTavConvoca
.
isPresent
())
{
ModelUzyTavAnexoSPR
model
=
optionalUzyTavConvoca
.
get
();
return
mapper
.
entityToDto
(
model
);
}
return
null
;
}
@Override
public
List
<
DtoUzyTavAnexoSPR
>
ListarRegistros
()
{
List
<
ModelUzyTavAnexoSPR
>
entities
=
daoUzyTavAnexoSPR
.
findAll
();
return
mapper
.
entitiesToDtos
(
entities
);
}
@Override
public
DtoUzyTavAnexoSPR
save
(
DtoUzyTavAnexoSPR
dtoUzyTavAnexoSPR
)
throws
IOException
{
MultipartFile
file
=
dtoUzyTavAnexoSPR
.
getUzytavanexospr_digital
();
if
(
file
!=
null
&&
!
file
.
isEmpty
())
{
// Guardar el archivo en una ubicación temporal
String
tempFileName
=
"temp_"
+
file
.
getOriginalFilename
();
String
tempFilePath
=
fileStorageService
.
saveFile
(
file
,
tempFileName
,
true
);
// Guardar el registro en la base de datos para generar el ID
ModelUzyTavAnexoSPR
uzyTavAnexoSPR
=
mapper
.
dtoToEntity
(
dtoUzyTavAnexoSPR
);
uzyTavAnexoSPR
=
daoUzyTavAnexoSPR
.
save
(
uzyTavAnexoSPR
);
// Generar el nombre del archivo con el ID generado por la base de datos
Long
uzytavanexospr_id
=
uzyTavAnexoSPR
.
getUzytavanexospr_id
();
String
fileName
=
uzytavanexospr_id
+
"_"
+
file
.
getOriginalFilename
();
// Mueve el archivo de la ubicación temporal a la ubicación final
String
fileUrl
=
fileStorageService
.
moveFile
(
tempFilePath
,
fileName
,
true
);
uzyTavAnexoSPR
.
setUzytavanexospr_nombre
(
fileName
);
uzyTavAnexoSPR
.
setUzytavanexospr_url
(
fileUrl
);
// Actualiza el registro en la base de datos con el nombre y la URL del archivo
uzyTavAnexoSPR
=
daoUzyTavAnexoSPR
.
save
(
uzyTavAnexoSPR
);
return
mapper
.
entityToDto
(
uzyTavAnexoSPR
);
}
else
{
// No se proporcionó ningún archivo, guardar solo el registro en la base de datos
ModelUzyTavAnexoSPR
uzyTavConvoca
=
mapper
.
dtoToEntity
(
dtoUzyTavAnexoSPR
);
uzyTavConvoca
=
daoUzyTavAnexoSPR
.
save
(
uzyTavConvoca
);
return
mapper
.
entityToDto
(
uzyTavConvoca
);
}
}
@Override
public
DtoUzyTavAnexoSPR
edit
(
Long
uzytavanexospr_id
,
DtoUzyTavAnexoSPR
dtoUzyTavAnexoSPR
)
throws
IOException
{
return
null
;
}
@Override
public
void
eliminar
(
Long
id
)
{
daoUzyTavAnexoSPR
.
deleteById
(
id
);
}
@Override
public
byte
[]
obtenerContenidoPDF
(
Long
uzytavanexospr_id
)
{
Optional
<
ModelUzyTavAnexoSPR
>
optionalConvoca
=
daoUzyTavAnexoSPR
.
findById
(
uzytavanexospr_id
);
if
(
optionalConvoca
.
isPresent
())
{
ModelUzyTavAnexoSPR
convoca
=
optionalConvoca
.
get
();
String
fileName
=
convoca
.
getUzytavanexospr_nombre
();
if
(
fileName
!=
null
&&
!
fileName
.
isEmpty
())
{
Path
filePath
=
rootFolder
.
resolve
(
fileName
);
try
{
return
Files
.
readAllBytes
(
filePath
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"Failed to read PDF file: "
+
fileName
,
e
);
}
}
}
return
null
;
}
@Override
public
String
obtenerUrlPDF
(
Long
uzytavanexospr_id
)
{
Optional
<
ModelUzyTavAnexoSPR
>
optionalUzyTavConvoca
=
daoUzyTavAnexoSPR
.
findById
(
uzytavanexospr_id
);
if
(
optionalUzyTavConvoca
.
isPresent
())
{
ModelUzyTavAnexoSPR
uzyTavConvoca
=
optionalUzyTavConvoca
.
get
();
String
fileName
=
uzyTavConvoca
.
getUzytavanexospr_nombre
();
if
(
fileName
!=
null
&&
!
fileName
.
isEmpty
())
{
return
rootFolder
.
resolve
(
fileName
).
toString
();
}
}
return
null
;
}
@Override
public
String
obtenerNombrePDF
(
Long
uzytavanexospr_id
)
{
Optional
<
ModelUzyTavAnexoSPR
>
optionalUzyTavConvoca
=
daoUzyTavAnexoSPR
.
findById
(
uzytavanexospr_id
);
if
(
optionalUzyTavConvoca
.
isPresent
())
{
ModelUzyTavAnexoSPR
uzyTavConvoca
=
optionalUzyTavConvoca
.
get
();
return
uzyTavConvoca
.
getUzytavanexospr_nombre
();
}
return
null
;
}
@Override
public
void
eliminarConPDF
(
Long
uzytavanexospr_id
)
{
Optional
<
ModelUzyTavAnexoSPR
>
optionalUzyTavConvoca
=
daoUzyTavAnexoSPR
.
findById
(
uzytavanexospr_id
);
if
(
optionalUzyTavConvoca
.
isPresent
())
{
ModelUzyTavAnexoSPR
uzyTavConvoca
=
optionalUzyTavConvoca
.
get
();
String
fileName
=
uzyTavConvoca
.
getUzytavanexospr_nombre
();
if
(
fileName
!=
null
&&
!
fileName
.
isEmpty
())
{
// Eliminar el archivo PDF
Path
filePath
=
rootFolder
.
resolve
(
fileName
);
try
{
Files
.
deleteIfExists
(
filePath
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"Failed to delete file: "
+
fileName
,
e
);
}
}
// Eliminar el registro de la base de datos
daoUzyTavAnexoSPR
.
deleteById
(
uzytavanexospr_id
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment