package com.ejie.ad74a.scheduler;

import java.util.Calendar;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import com.ejie.ad74a.service.ArchivoExpedientesService;

/**
 * Gestión del proceso de archivo de expedientes
 * 
 * @author AGALLEGO
 *
 */
public class ArchivoExpedientesJob implements Job {

	private static final Logger logger = LoggerFactory.getLogger(ArchivoExpedientesJob.class);

	@Autowired
	ArchivoExpedientesService archivoExpedientesService;

//	private static final String _ENTRADA = "1";
//	private static final String _SALIDA = "2";

	/**
	 * archivo de expedientes
	 */
	@Override
	public void execute(JobExecutionContext jobexecutioncontext) throws JobExecutionException {
		ArchivoExpedientesJob.logger.info("--Proceso de archivo de expedientes- Fecha: "
				+ Calendar.getInstance().getTime().toString() + " --INICIO--");

		// ** Soporte a Autowiring ** //
		SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
		try {

//			ArchivoExpedientesJob.logger.info("--Proceso de archivo de expedientes-Tipo Proceso: "
//					+ jobexecutioncontext.getJobDetail().getJobDataMap().get("tipoProceso"));

//			String tipoProceso = (String) jobexecutioncontext.getJobDetail().getJobDataMap().get("tipoProceso");

//			if (tipoProceso != null) {
//				if (tipoProceso.equalsIgnoreCase(ArchivoExpedientesJob._ENTRADA)) {
			// ** PROCESO DE ENTRADA ** //
//					ArchivoExpedientesJob.logger
//							.info("--Proceso de archivo de expedientes- Proceso de archivo de expedientes... ");

			this.archivoExpedientesService.archivarExpedientes();
//				} else if (tipoProceso.equalsIgnoreCase(ArchivoExpedientesJob._SALIDA)) {
			// ** PROCESO DE RESPUESTA ** //
//					ArchivoExpedientesJob.logger.info(
//							"--Proceso de archivo de expedientes- Proceso de respuesta de archivo de expedientes... ");

//					this.archivoExpedientesService.procesarRespuesta();

//				}
//			}

		} catch (Throwable t) {
			ArchivoExpedientesJob.logger.error("--Proceso de archivo de expedientes- ERROR: " + t.getStackTrace());
		}

		ArchivoExpedientesJob.logger.info("--Proceso de archivo de expedientes- Fecha: "
				+ Calendar.getInstance().getTime().toString() + " --FIN--");

	}

}
