package net.conselldemallorca.helium.wsintegraciones.backoffice;
import java.util.List;
import javax.jws.WebService;
import net.conselldemallorca.helium.integracio.plugins.tramitacio.DadesTramit;
import net.conselldemallorca.helium.integracio.plugins.tramitacio.DadesVistaDocument;
import net.conselldemallorca.helium.integracio.plugins.tramitacio.ObtenirDadesTramitRequest;
import net.conselldemallorca.helium.integracio.plugins.tramitacio.ObtenirVistaDocumentRequest;
import net.conselldemallorca.helium.integracio.plugins.tramitacio.ResultatProcesTipus;
import net.conselldemallorca.helium.integracio.plugins.tramitacio.ResultatProcesTramitRequest;
import net.conselldemallorca.helium.ws.backoffice.plugin.PluginService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import es.caib.bantel.ws.v2.model.referenciaentrada.ReferenciaEntrada;
import es.caib.bantel.ws.v2.model.referenciaentrada.ReferenciasEntrada;
import es.caib.bantel.ws.v2.services.BantelFacade;
import es.caib.bantel.ws.v2.services.BantelFacadeException;
/**
* Backoffice per a gestionar les entrades de BANTEL
*
* @author Limit Tecnologies <limit@limit.es>
*/
@WebService(endpointInterface = "es.caib.bantel.ws.v2.services.BantelFacade")
public class BantelV2Backoffice extends BaseBackoffice implements BantelFacade {
public void avisoEntradas(ReferenciasEntrada numeroEntradas) throws BantelFacadeException {
List<ReferenciaEntrada> entrades = numeroEntradas.getReferenciaEntrada();
for (ReferenciaEntrada referenciaEntrada : entrades) {
ObtenirDadesTramitRequest request = new ObtenirDadesTramitRequest();
request.setNumero(referenciaEntrada.getNumeroEntrada());
request.setClau(referenciaEntrada.getClaveAcceso());
boolean error = false;
PluginService ps = new PluginService();
try {
DadesTramit dadesTramit = ps.obtenirDadesTramitSelenium(request);
// DadesTramit dadesTramit = ServiceProxy.getInstance().getPluginService().obtenirDadesTramitSelenium(request);
logger.info("Petició de processament tramit " + request + " amb identificador " + dadesTramit.getIdentificador() + " --> " + dadesTramit);
int numExpedients = processarTramit(dadesTramit);
logger.info("El tramit " + request + " ha creat " + numExpedients + " expedients");
} catch (Exception ex) {
logger.error("Error a l'hora de processar el tramit " + request, ex);
error = true;
}
try {
ResultatProcesTramitRequest requestResultat = new ResultatProcesTramitRequest();
requestResultat.setNumeroEntrada(referenciaEntrada.getNumeroEntrada());
requestResultat.setClauAcces(referenciaEntrada.getClaveAcceso());
if (!error)
requestResultat.setResultatProces(ResultatProcesTipus.PROCESSAT);
else
requestResultat.setResultatProces(ResultatProcesTipus.ERROR);
logger.info("Comunicant el resultat de processar el tràmit " + request + ": " + requestResultat.getResultatProces());
ps.comunicarResultatProcesTramitSelenium(requestResultat);
} catch (Exception ex) {
error = true;
logger.error("Error a l'hora de comunicar el resultat de processar el tramit " + request, ex);
}
}
}
public void establecerResultadoProceso(ReferenciaEntrada arg0, String arg1, String arg2) {
logger.debug(" El resultado del proceso de creación del tramite ha ido bien y así lo ha recibido el WS de la Bandeja Telematica.");
}
protected DadesVistaDocument getVistaDocumentTramit(long referenciaCodi, String referenciaClau, String plantillaTipus, String idioma) {
ObtenirVistaDocumentRequest request = new ObtenirVistaDocumentRequest();
request.setReferenciaCodi(referenciaCodi);
request.setReferenciaClau(referenciaClau);
request.setPlantillaTipus(plantillaTipus);
request.setIdioma(idioma);
try {
PluginService ps = new PluginService();
// return ServiceProxy.getInstance().getPluginService().obtenirVistaDocument(request);
return ps.obtenirVistaDocument(request);
} catch (Exception ex) {
logger.error("Error al obtenir el document del tramit " + request, ex);
return null;
}
}
private static final Log logger = LogFactory.getLog(BantelV2Backoffice.class);
}