175 lines
6.2 KiB
C#
175 lines
6.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using ArcGIS.Core.Geometry;
|
|
using ArcGIS.Desktop.Internal.Layouts.Utilities;
|
|
using OliviaAddInPro.Helper;
|
|
using OliviaAddInPro.Model.contract;
|
|
using OliviaAddInPro.Services;
|
|
using static OliviaAddInPro.Model.ComunDef;
|
|
|
|
namespace OliviaAddInPro.Model
|
|
{
|
|
public class TratamientoComun
|
|
{
|
|
/**
|
|
* Tipo de tratamiento, en limpieza es sobre LimpiezaDef.TiposTto y en reco sobre RecogidaDef.tipos_fracc_str
|
|
*/
|
|
public int TipoTto { get; set; } = (int)LimpiezaDef.TiposTto.TtoNoDef;
|
|
/**
|
|
* String para Tipo de tratamiento, se guarda como columna en el shp
|
|
*/
|
|
public string TipoTtoStr { get; set; } = String.Empty;
|
|
/**
|
|
* Capa de ámbitos
|
|
*/
|
|
public string CapaElems { get; set; } = string.Empty;
|
|
/**
|
|
* Nombre dle shp exportado de datos
|
|
*/
|
|
public string NombreShpExport { get; set; } = string.Empty;
|
|
/**
|
|
* Nombre dle shp exportado de datos
|
|
*/
|
|
public string NombreShpExp_PrefTto { get; set; } = string.Empty;
|
|
/**
|
|
* Nombre dle shp exportado de nw
|
|
*/
|
|
public string NombreShpExportNw { get; set; } = string.Empty;
|
|
/**
|
|
* Velocidad de desplazamiento, en km/h. Si es 0, es determinada por la vía
|
|
*/
|
|
public int VDespl { get; set; } = 0;
|
|
/**
|
|
* Tiempo de tratamiento, en minutos
|
|
*/
|
|
public int Ttto { get; set; } = 5;
|
|
/**
|
|
* Geometría para el filtro de ámbitos, incluye zonas, se añaden los ámbitos que pertenecen a esa geom
|
|
*/
|
|
public Geometry GeomZon { get; set; } = null;
|
|
public string TextGeomZon { get; set; } = string.Empty;
|
|
/**
|
|
* Geometría para el filtro de ámbitos, incluye zonas, se añaden los ámbitos que pertenecen a esa geom
|
|
*/
|
|
public Geometry GeomNiv { get; set; } = null;
|
|
public string TextGeomNiv { get; set; } = string.Empty;
|
|
/**
|
|
* Geometría para el filtro de ámbitos, incluye restricciones, se quitan los ámbitos que pertenecen a esa geom
|
|
*/
|
|
public Geometry GeomRestr { get; set; } = null;
|
|
public string TextGeomRestr { get; set; } = string.Empty;
|
|
/**
|
|
* Coordenadas de la instalación
|
|
*/
|
|
public Coordinate2D CoordsInstal { get; set; } = new Coordinate2D(0, 0);
|
|
/**
|
|
* Coordenadas de la planta de descarga, solo hace falta para recogida
|
|
*/
|
|
public Coordinate2D CoordsPlanta { get; set; } = new Coordinate2D(0, 0);
|
|
/**
|
|
* Buffer para la exportación, en metros
|
|
*/
|
|
public int BuffExport { get; set; } = 1000;
|
|
/**
|
|
* Tiempo de trabajo al día por convenio, en minutos
|
|
*/
|
|
public double TConv { get; set; } = LimpiezaDef.Parametros.t_conv;
|
|
/**
|
|
* Tiempo de descanso del personal, en minutos
|
|
*/
|
|
public double TDescan { get; set; } = LimpiezaDef.Parametros.t_descanso;
|
|
/**
|
|
* Tiempo de carga y descarga, en minutos
|
|
*/
|
|
public double TDescarg { get; set; } = LimpiezaDef.Parametros.t_cardesc;
|
|
/**
|
|
* Tiempo de desplazamiento inicio/fin a las instalaciones, en minutos
|
|
*/
|
|
public double TDesplIniFin { get; set; } = LimpiezaDef.Parametros.t_desp;
|
|
/**
|
|
* hora de inicio de la jornada de trabajo, en minutos
|
|
*/
|
|
public double HIni { get; set; } = LimpiezaDef.Parametros.h_inicio;
|
|
/**
|
|
* Porcentaje de tráfico que se estima, ya que si no los vehículos irían siempre a la velocida máxima permitida por la vía
|
|
*/
|
|
public int Trafico { get; set; } = 80;
|
|
/**
|
|
* Número de puntos de control
|
|
*/
|
|
public int NPtosCtrl { get; set; } = 3;
|
|
/**
|
|
* Número de sectores, si es 0, se calcula automáticamente, si es negativo, se ajusta a jornada
|
|
*/
|
|
public int NSect { get; set; } = 3;
|
|
/**
|
|
* Ignorar o noelementos aislados
|
|
*/
|
|
public bool IgnoAis { get; set; } = true;
|
|
/**
|
|
* Almacena la consulta para exportar los ámbitos
|
|
*/
|
|
public string ConsultaAmbs { get; set; } = "";
|
|
/**
|
|
* String para errores o mensajes
|
|
*/
|
|
private string err_str = string.Empty;
|
|
public string ErrStr
|
|
{
|
|
get
|
|
{
|
|
/*string val = string.Empty;
|
|
val.CopyFrom(err_str);
|
|
err_str = string.Empty;
|
|
return val; */
|
|
return err_str;
|
|
}
|
|
set { err_str = value; }
|
|
}
|
|
|
|
/**
|
|
* Para la ventana de progreso
|
|
*/
|
|
public MyCancelableProgressorSource ProgrSrc { get; set; } = null;
|
|
public ProcesoEjecServ ProceSrv { get; set; } = null;
|
|
public FinProcServ FinProceSrv { get; set; } = null;
|
|
|
|
public TratamientoComun()
|
|
{
|
|
ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog.GetViewModel());
|
|
ProceSrv = new ProcesoEjecServ();
|
|
FinProceSrv = new FinProcServ();
|
|
}
|
|
|
|
public void ComienzaEjec(OliviaAddInPro.Services.ModosEjec modo)
|
|
{
|
|
//muestra progreso
|
|
OliviaGlob.progrDialog.Show();
|
|
//oculta la ventana
|
|
OliviaGlob.ShowHidePane(false);
|
|
//comienza ejecución
|
|
Action<Respuesta<TiposEjecucion>> ac = FinProceSrv.finEjecuta;
|
|
EjecutaAsync(modo, ac);
|
|
}
|
|
public async void EjecutaAsync(ModosEjec modo, Action<Respuesta<TiposEjecucion>> ffin)
|
|
{
|
|
await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
|
|
{
|
|
var res = Ejecuta(modo);
|
|
ffin(res);
|
|
return res;
|
|
});
|
|
|
|
}
|
|
public virtual Respuesta<TiposEjecucion> Ejecuta(ModosEjec modo)
|
|
{
|
|
Respuesta<TiposEjecucion> res = new Respuesta<TiposEjecucion>() { Value = TiposEjecucion.FinEjecNOk };
|
|
res.Error.Add("No implementado");
|
|
return res;
|
|
}
|
|
}
|
|
}
|