-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feature: Se crea el servicio para retornar la informacion de una eval…
- Loading branch information
1 parent
dbe55b3
commit 0e4c3f8
Showing
13 changed files
with
831 additions
and
125 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
EVALUACION_CUMPLIDO_PROV_MID_HTTP_PORT=8090 | ||
EVALUACION_CUMPLIDO_PROV_MID_RUN_MODE=dev | ||
EVALUACIONES_CUMPLIDOS_PROVEEDORES_CRUD=http://localhost:8080/v1 | ||
EVALUACION_CUMPLIDO_PROV_MID_AMAZON_API=http://api.intranetoas.udistrital.edu.co:8104/v1 | ||
EVALUACION_CUMPLIDO_PROV_MID_ADMINISTRATIVA_JBPM=http://busservicios.intranetoas.udistrital.edu.co:8282/wso2eiserver/services/administrativa_produccion |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
package controllers | ||
|
||
import ( | ||
"github.com/astaxie/beego" | ||
"github.com/udistrital/evaluacion_cumplido_prov_mid/services" | ||
"github.com/udistrital/utils_oas/errorhandler" | ||
"github.com/udistrital/utils_oas/requestresponse" | ||
) | ||
|
||
// InformacionEvaluacionController operations for InformacionEvaluacionController | ||
type InformacionEvaluacionController struct { | ||
beego.Controller | ||
} | ||
|
||
// URLMapping ... | ||
func (c *InformacionEvaluacionController) URLMapping() { | ||
c.Mapping("ObtenerInformacionEvaluacion", c.ObtenerInformacionEvaluacion) | ||
|
||
} | ||
|
||
// ObtenerInformacionEvaluacion ... | ||
// @Title ObtenerInformacionEvaluacion | ||
// @Description get InformacionEvaluacionController by asignacion_id | ||
// @Param id path string true "The key for staticblock" | ||
// @Success 200 {object} models.InformacionEvaluacion | ||
// @Failure 400 :id is empty | ||
// @router /:asignacion_id [get] | ||
func (c *InformacionEvaluacionController) ObtenerInformacionEvaluacion() { | ||
|
||
defer errorhandler.HandlePanic(&c.Controller) | ||
|
||
asignacion_id := c.Ctx.Input.Param(":asignacion_id") | ||
|
||
data, err := services.ObtenerInformacionEvaluacion(asignacion_id) | ||
if err == nil { | ||
c.Ctx.Output.SetStatus(200) | ||
c.Data["json"] = requestresponse.APIResponseDTO(true, 200, data) | ||
} else { | ||
c.Ctx.Output.SetStatus(400) | ||
c.Data["json"] = requestresponse.APIResponseDTO(false, 400, nil, err.Error()) | ||
} | ||
c.ServeJSON() | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
package helpers | ||
|
||
import ( | ||
"fmt" | ||
|
||
"github.com/astaxie/beego" | ||
"github.com/udistrital/evaluacion_cumplido_prov_mid/models" | ||
) | ||
|
||
func ObtenerContratoGeneral(numero_contrato_suscrito string, vigencia_contrato string) (contrato_general models.ContratoGeneral, outputError error) { | ||
defer func() { | ||
if err := recover(); err != nil { | ||
outputError = fmt.Errorf("%v", err) | ||
panic(outputError) | ||
} | ||
}() | ||
|
||
var contrato []models.ContratoGeneral | ||
//fmt.Println("Url contrato general: ", beego.AppConfig.String("UrlAmazonApi")+"/contrato_general/?query=ContratoSuscrito.NumeroContratoSuscrito:"+numero_contrato_suscrito+",VigenciaContrato:"+vigencia_contrato) | ||
if response, err := GetJsonTest(beego.AppConfig.String("UrlAmazonApi")+"/contrato_general/?query=ContratoSuscrito.NumeroContratoSuscrito:"+numero_contrato_suscrito+",VigenciaContrato:"+vigencia_contrato, &contrato); (err == nil) && (response == 200) { | ||
if len(contrato) > 0 { | ||
return contrato[0], nil | ||
} else { | ||
outputError = fmt.Errorf("No se encontró contrato") | ||
return contrato[0], outputError | ||
} | ||
} else { | ||
outputError = fmt.Errorf("Error al obtener el contrato general") | ||
return contrato_general, outputError | ||
} | ||
} | ||
|
||
func ObtenerDependenciasSupervisor(documento_supervisor string) (dependencias_supervisor []models.Dependencia, outputError error) { | ||
defer func() { | ||
if err := recover(); err != nil { | ||
outputError = fmt.Errorf("%v", err) | ||
} | ||
}() | ||
|
||
var respuesta_peticion map[string]interface{} | ||
fmt.Println("Url dependencias: ", beego.AppConfig.String("UrlAdministrativaJBPM")+"/dependencias_supervisor/"+documento_supervisor) | ||
if response, err := GetJsonWSO2Test(beego.AppConfig.String("UrlAdministrativaJBPM")+"/dependencias_supervisor/"+documento_supervisor, &respuesta_peticion); err == nil && response == 200 { | ||
if respuesta_peticion != nil { | ||
if dependenciasMap, ok := respuesta_peticion["dependencias"].(map[string]interface{}); ok { | ||
|
||
for _, depList := range dependenciasMap { | ||
|
||
if list, ok := depList.([]interface{}); ok { | ||
|
||
for _, dep := range list { | ||
|
||
depMap := dep.(map[string]interface{}) | ||
dependencia := models.Dependencia{ | ||
|
||
Codigo: depMap["codigo"].(string), | ||
Nombre: depMap["nombre"].(string), | ||
} | ||
dependencias_supervisor = append(dependencias_supervisor, dependencia) | ||
} | ||
|
||
} else { | ||
outputError = fmt.Errorf("No se encontraron dependencias para el supervisor con documento: " + documento_supervisor) | ||
return dependencias_supervisor, outputError | ||
} | ||
} | ||
} | ||
} else { | ||
outputError = fmt.Errorf("No se encontraron dependencias para el supervisor con documento: " + documento_supervisor) | ||
return dependencias_supervisor, outputError | ||
} | ||
} | ||
return dependencias_supervisor, nil | ||
} | ||
|
||
func ObtenerNombrePersonaNatural(documento_persona string) (nombre_persona string, outputError error) { | ||
defer func() { | ||
if err := recover(); err != nil { | ||
outputError = fmt.Errorf("%v", err) | ||
panic(outputError.Error()) | ||
} | ||
}() | ||
|
||
var informacion []models.InformacionPersonaNatural | ||
//fmt.Println("Url informacion persona: ", beego.AppConfig.String("UrlAmazonApi")+"/informacion_persona_natural/?fields=PrimerNombre,SegundoNombre,PrimerApellido,SegundoApellido&limit=0&query=Id:"+documento_persona) | ||
if response, err := GetJsonTest(beego.AppConfig.String("UrlAmazonApi")+"/informacion_persona_natural/?fields=PrimerNombre,SegundoNombre,PrimerApellido,SegundoApellido&limit=0&query=Id:"+documento_persona, &informacion); err != nil && response != 200 { | ||
outputError = fmt.Errorf("Error al obtener la información de la persona") | ||
return nombre_persona, outputError | ||
} | ||
|
||
nombre_persona = informacion[0].PrimerNombre + " " + informacion[0].SegundoNombre + " " + informacion[0].PrimerApellido + " " + informacion[0].SegundoApellido | ||
|
||
return nombre_persona, nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
package helpers | ||
|
||
import ( | ||
"fmt" | ||
"strconv" | ||
"strings" | ||
|
||
"github.com/astaxie/beego" | ||
"github.com/udistrital/evaluacion_cumplido_prov_mid/models" | ||
) | ||
|
||
// Funcion para calcular la clasificacion de la evaluacion, por el momento este dato se calcula desde el cliente | ||
func CalcularClasificacionEvaluacion(resultados_finales models.Resultado) (resultado_clasificacion models.Clasificacion, puntaje_total_evaluacion int, outputError error) { | ||
defer func() { | ||
if err := recover(); err != nil { | ||
outputError = fmt.Errorf("%v", err) | ||
panic(outputError.Error()) | ||
} | ||
}() | ||
|
||
var valor_clasificacion int | ||
var codigo_abreviacion_clasificacion string | ||
|
||
// Calcular la clasificación de la evaluación | ||
for _, item := range resultados_finales.ResultadosIndividuales { | ||
valor_clasificacion += item.Respuesta.ValorAsignado | ||
} | ||
|
||
switch { | ||
case valor_clasificacion >= 0 && valor_clasificacion <= 45: | ||
codigo_abreviacion_clasificacion = "ML" | ||
case valor_clasificacion >= 46 && valor_clasificacion <= 79: | ||
codigo_abreviacion_clasificacion = "BN" | ||
case valor_clasificacion >= 80 && valor_clasificacion <= 100: | ||
codigo_abreviacion_clasificacion = "EX" | ||
} | ||
|
||
var respuesta_clasificacion map[string]interface{} | ||
var clasificacion []models.Clasificacion | ||
|
||
if response, err := GetJsonTest(beego.AppConfig.String("UrlEvaluacionesCumplidosProveedoresCrud")+"/clasificacion/?query=CodigoAbreviacion:"+codigo_abreviacion_clasificacion+",Activo:true&limit=1", &respuesta_clasificacion); err != nil && response != 200 { | ||
outputError = fmt.Errorf("Error al obtener la clasificación de la evaluación") | ||
return resultado_clasificacion, 0, outputError | ||
} | ||
|
||
LimpiezaRespuestaRefactor(respuesta_clasificacion, &clasificacion) | ||
|
||
resultado_clasificacion = clasificacion[0] | ||
|
||
return resultado_clasificacion, valor_clasificacion, nil | ||
} | ||
|
||
func ObtenerResultadoEvaluacion(asignacion_evaluacion_id int) (resultado_evaluacion models.ResultadoEvaluacion, outputError error) { | ||
defer func() { | ||
if err := recover(); err != nil { | ||
outputError = fmt.Errorf("%v", err) | ||
panic(outputError.Error()) | ||
} | ||
}() | ||
|
||
var respuesta_resultado_evaluacion map[string]interface{} | ||
var resultado []models.ResultadoEvaluacion | ||
|
||
//fmt.Println("URL resultado evaluacion: ", beego.AppConfig.String("UrlEvaluacionesCumplidosProveedoresCrud")+"/resultado_evaluacion/?query=AsignacionEvaluadorId.Id:"+strconv.Itoa(asignacion_evaluacion_id)+",Activo:true&limit=1") | ||
if response, err := GetJsonTest(beego.AppConfig.String("UrlEvaluacionesCumplidosProveedoresCrud")+"/resultado_evaluacion/?query=AsignacionEvaluadorId.Id:"+strconv.Itoa(asignacion_evaluacion_id)+",Activo:true&limit=1", &respuesta_resultado_evaluacion); err != nil && response != 200 { | ||
outputError = fmt.Errorf("Error al obtener el resultado de la evaluación") | ||
return resultado_evaluacion, outputError | ||
} | ||
|
||
data := respuesta_resultado_evaluacion["Data"].([]interface{}) | ||
if len(data[0].(map[string]interface{})) == 0 { | ||
outputError = fmt.Errorf("El Evaluador no tiene registrado un resultado de la evaluación") | ||
return resultado_evaluacion, outputError | ||
} | ||
|
||
LimpiezaRespuestaRefactor(respuesta_resultado_evaluacion, &resultado) | ||
|
||
resultado_evaluacion = resultado[0] | ||
|
||
return resultado_evaluacion, nil | ||
} | ||
|
||
func ObtenerItemsEvaluador(asignacion_evaluador_id int) (items_evaluador []models.Item, items_evaluador_formateados string, outputError error) { | ||
defer func() { | ||
if err := recover(); err != nil { | ||
outputError = fmt.Errorf("%v", err) | ||
panic(outputError.Error()) | ||
} | ||
}() | ||
|
||
var respuesta_items_evaluador map[string]interface{} | ||
var items []models.AsignacionEvaluadorItem | ||
|
||
if response, err := GetJsonTest(beego.AppConfig.String("UrlEvaluacionesCumplidosProveedoresCrud")+"/asignacion_evaluador_item/?query=AsignacionEvaluadorId.Id:"+strconv.Itoa(asignacion_evaluador_id)+",Activo:true&limit=-1", &respuesta_items_evaluador); err != nil && response != 200 { | ||
outputError = fmt.Errorf("Error al obtener los items del evaluador") | ||
return items_evaluador, items_evaluador_formateados, outputError | ||
} | ||
|
||
data := respuesta_items_evaluador["Data"].([]interface{}) | ||
if len(data[0].(map[string]interface{})) == 0 { | ||
outputError = fmt.Errorf("El Evaluador no tiene items asignados") | ||
return items_evaluador, items_evaluador_formateados, outputError | ||
} | ||
|
||
LimpiezaRespuestaRefactor(respuesta_items_evaluador, &items) | ||
|
||
for _, item := range items { | ||
items_evaluador = append(items_evaluador, item.ItemId) | ||
items_evaluador_formateados += strconv.Itoa(item.Id) + ", " | ||
} | ||
|
||
return items_evaluador, strings.TrimSuffix(items_evaluador_formateados, ", "), nil | ||
} | ||
|
||
func ObtenerItemsEvaluacion(evaluacion_id int) (items_evaluacion []models.Item, items_evaluador_formateados string, outputError error) { | ||
defer func() { | ||
if err := recover(); err != nil { | ||
outputError = fmt.Errorf("%v", err) | ||
panic(outputError.Error()) | ||
} | ||
}() | ||
|
||
var respuesta_items_evaluacion map[string]interface{} | ||
|
||
//fmt.Println("URL items evaluacion: ", beego.AppConfig.String("UrlEvaluacionesCumplidosProveedoresCrud")+"/item/?query=EvaluacionId.Id:"+strconv.Itoa(evaluacion_id)+",Activo:true&limit=-1") | ||
if response, err := GetJsonTest(beego.AppConfig.String("UrlEvaluacionesCumplidosProveedoresCrud")+"/item/?query=EvaluacionId.Id:"+strconv.Itoa(evaluacion_id)+",Activo:true&limit=-1", &respuesta_items_evaluacion); err != nil && response != 200 { | ||
outputError = fmt.Errorf("Error al obtener los items de la evaluación") | ||
return items_evaluacion, items_evaluador_formateados, outputError | ||
} | ||
|
||
if len(respuesta_items_evaluacion) == 0 { | ||
outputError = fmt.Errorf("La evaluación no tiene items asignados") | ||
return items_evaluacion, items_evaluador_formateados, outputError | ||
} | ||
|
||
LimpiezaRespuestaRefactor(respuesta_items_evaluacion, &items_evaluacion) | ||
|
||
for _, item := range items_evaluacion { | ||
items_evaluador_formateados += strconv.Itoa(item.Id) + ", " | ||
} | ||
|
||
return items_evaluacion, strings.TrimSuffix(items_evaluador_formateados, ", "), nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package models | ||
|
||
import "time" | ||
|
||
type CambioEstadoAsignacionEvaluador struct { | ||
Id int | ||
EstadoAsignacionEvaluadorId EstadoAsignacionEvaluador | ||
AsignacionEvaluadorId AsignacionEvaluador | ||
Activo bool | ||
FechaCreacion time.Time | ||
FechaModificacion int16 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package models | ||
|
||
type EstadoAsignacionEvaluador struct { | ||
Id int | ||
Nombre string | ||
CodigoAbreviacion string | ||
Descripcion string | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package models | ||
|
||
type InformacionEvaluacion struct { | ||
NombreEvaluador string `json:"NombreEvaluador"` | ||
Cargo string `json:"Cargo"` | ||
CodigoAbreviacionRol string `json:"CodigoAbreviacionRol"` | ||
DependenciaEvaluadora string `json:"DependenciaEvaluadora"` | ||
FechaEvaluacion string `json:"FechaEvaluacion"` | ||
EmpresaProveedor string `json:"EmpresaProveedor"` | ||
ObjetoContrato string `json:"ObjetoContrato"` | ||
PuntajeTotalEvaluacion int `json:"PuntajeTotalEvaluacion"` | ||
Clasificacion string `json:"Clasificacion"` | ||
ItemsEvaluados []Item `json:"ItemsEvaluados"` | ||
Evaluadores []Evaluador `json:"Evaluadores"` | ||
ResultadoEvaluacion Resultado `json:"ResultadoEvaluacion"` | ||
} | ||
|
||
type Evaluador struct { | ||
Documento string `json:"Documento"` | ||
Cargo string `json:"Cargo"` | ||
Rol string `json:"Rol"` | ||
ItemsEvaluados string `json:"ItemEvaluado"` | ||
PuntajeEvaluacion int `json:"PuntajeEvaluacion"` | ||
EstadoEvaluacion string `json:"EstadoEvaluacion"` | ||
Observaciones string `json:"Observaciones"` | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.