package com.fp.armas.rules.query.webservices; import java.math.BigDecimal; import java.sql.Date; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import javax.persistence.Query; import org.joda.time.DateTime; import com.fp.armas.rules.query.webservices.util.ColaImpresionUtil; import com.fp.common.logger.APPLogger; import com.fp.dto.query.QueryRequest; import com.fp.dto.rules.QueryRule; import com.fp.persistence.commondb.PersistenceHelper; import com.fp.persistence.parmas.dto.ws.ColaImpresionDto; import com.fp.persistence.parmas.inte.TarmColadeImpresion; /** * Consulta los datos de impresión del proceso * @author dcruz * */ public class ConsultaImpresionProceso extends QueryRule { private static final long serialVersionUID = -7675701723545274414L; public static final String QUERY_COLA_SOLICITUD = "SELECT o.* FROM TarmColadeImpresion o WHERE o.estadoimpresion='PIMPR' and o.cdocumento " + "IN ((SELECT i.cdocumento FROM TarmDocumentoHabilitante i WHERE i.csolicitud IN (SELECT c.CSOLICITUD FROM TarmSolicitud c " + "WHERE c.estado IN ('APB','FIN') and c.numerosolicitud=:numerosolicitud)) UNION (SELECT SD.cdocumento FROM tarmsolicituddocumento SD WHERE sd.csolicitud " + "IN (SELECT c.CSOLICITUD FROM TarmSolicitud c WHERE c.estado IN ('APB','FIN') and c.numerosolicitud=:numerosolicitud)))"; @SuppressWarnings("unchecked") @Override public QueryRequest process(QueryRequest pRequest) throws Exception { // TODO Auto-generated method stub List lcolaImpresion = null; try { String codigosolicitud = (String) pRequest.get("CODIGOSOLICITUD"); System.out.println("codigosolicitud.."+codigosolicitud); System.out.println(QUERY_COLA_SOLICITUD); Query query = PersistenceHelper.getEntityManager().createNativeQuery(QUERY_COLA_SOLICITUD); query.setParameter("numerosolicitud", codigosolicitud); List ltarmColadeImpresions = new ArrayList(); List ltarmColadeImpresionsTMP = query.getResultList(); for(Object[]tmp:ltarmColadeImpresionsTMP){ TarmColadeImpresion colaImpresionObj = new TarmColadeImpresion(); colaImpresionObj.setPk(tmp[3].toString()); colaImpresionObj.setEstadoimpresion(tmp[1].toString()); colaImpresionObj.setFechaimpresion((Timestamp) tmp[4]); colaImpresionObj.setEstadoimpresioncode(tmp[2].toString()); colaImpresionObj.setCdocumento(((BigDecimal) tmp[0]).longValue()); colaImpresionObj.setFecharegistro(new Date(((Timestamp) tmp[5]).getTime())); if (tmp[6] != null) colaImpresionObj.setCodigotarjeta(tmp[6].toString()); ltarmColadeImpresions.add(colaImpresionObj); } lcolaImpresion = ColaImpresionUtil.getInstancia().completaColaImpresion(ltarmColadeImpresions); pRequest.getResponse().put("COLAIMPRESION", lcolaImpresion); pRequest.getResponse().put("COLAIMPRESION", lcolaImpresion); } catch (Throwable e) { APPLogger.getLogger().error(e.getMessage(), e); } return pRequest; } }