72 lines
3.8 KiB
Plaintext
Executable File
72 lines
3.8 KiB
Plaintext
Executable File
package com.fp.armas.rules.query.webservices;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import javax.persistence.Query;
|
|
|
|
import com.fp.armas.rules.query.webservices.util.CatalogoUtil;
|
|
import com.fp.armas.rules.query.webservices.util.PersonaUtil;
|
|
import com.fp.dto.query.QueryRequest;
|
|
import com.fp.dto.rules.QueryRule;
|
|
import com.fp.persistence.commondb.PersistenceHelper;
|
|
import com.fp.persistence.commondb.helper.FormatDates;
|
|
import com.fp.persistence.parmas.dto.ws.JefeCentroControlDto;
|
|
import com.fp.persistence.parmas.param.TarmCentroControl;
|
|
import com.fp.persistence.parmas.soli.TarmDocumentoHabilitante;
|
|
import com.fp.persistence.parmas.soli.TarmSolicitud;
|
|
import com.fp.persistence.parmas.soli.TarmSolicitudDocumento;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonDetailKey;
|
|
|
|
public class JefeCentroImpresion extends QueryRule {
|
|
|
|
private static final long serialVersionUID = 8341638596202085693L;
|
|
private static final String QUERY_DOCUMENTO_NUM = "SELECT o FROM TarmDocumentoHabilitante o WHERE o.numerodocumento=:numerodocumento";
|
|
private static final String QUERY_SOLICITUD_DOCUMENTO_NUM = "SELECT sd.csolicitud FROM tarmsolicituddocumento sd WHERE sd.cdocumento=:cDocumento and "
|
|
+ " sd.csolicitud = (SELECT max(sd2.csolicitud) FROM tarmsolicituddocumento sd2 inner join tarmsolicitud sol on sol.csolicitud = sd2.csolicitud "
|
|
+ " WHERE sd2.cdocumento=:cDocumento and sol.estado!='ANU')";
|
|
/**
|
|
* Busca el jefe del centro de control de la solicitud asociada al documento expedido
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public QueryRequest process(QueryRequest pRequest) throws Exception {
|
|
try {
|
|
JefeCentroControlDto jefeCentroControl = null;
|
|
String numerodocumento = (String) pRequest.get("NUMERODOCUMENTO");
|
|
Query query = PersistenceHelper.getEntityManager().createQuery(QUERY_DOCUMENTO_NUM);
|
|
query.setParameter("numerodocumento", numerodocumento);
|
|
List<TarmDocumentoHabilitante> ltarmDocumentoHabilitantes = query.getResultList();
|
|
if(ltarmDocumentoHabilitantes != null && !ltarmDocumentoHabilitantes.isEmpty()){
|
|
TarmDocumentoHabilitante documentoHabilitante = ltarmDocumentoHabilitantes.iterator().next();
|
|
TarmSolicitud solicitud = null;
|
|
if(documentoHabilitante.getCsolicitud() != null){
|
|
solicitud = TarmSolicitud.find(PersistenceHelper.getEntityManager(), documentoHabilitante.getCsolicitud());
|
|
}else{
|
|
Query querySolicitud = PersistenceHelper.getEntityManager().createNativeQuery(QUERY_SOLICITUD_DOCUMENTO_NUM);
|
|
querySolicitud.setParameter("cDocumento", documentoHabilitante.getPk());
|
|
String codigoSolicitud = querySolicitud.getSingleResult().toString();
|
|
if(codigoSolicitud!=null){
|
|
solicitud = TarmSolicitud.find(PersistenceHelper.getEntityManager(),codigoSolicitud);
|
|
}
|
|
}
|
|
if(solicitud != null && solicitud.getCcentrocontrol() != null){
|
|
TarmCentroControl tarmCentroControl = TarmCentroControl.find(PersistenceHelper.getEntityManager(), solicitud.getCcentrocontrol());
|
|
TcustPersonDetail tcustPersonDetail = TcustPersonDetail.find(PersistenceHelper.getEntityManager(), new TcustPersonDetailKey(tarmCentroControl.getPersoncode(), FormatDates.getDefaultExpiryTimestamp()));
|
|
jefeCentroControl = new JefeCentroControlDto();
|
|
jefeCentroControl.setNombre(tcustPersonDetail.getName());
|
|
jefeCentroControl.setFirma(tcustPersonDetail.getSign());
|
|
jefeCentroControl.setUbicacion(PersonaUtil.getInstancia().obtenerLocacionPersona(tcustPersonDetail.getPk().getPersoncode()));
|
|
jefeCentroControl.setRangoJefe(CatalogoUtil.getInstancia().getDescripcion(tarmCentroControl.getGrado(), tarmCentroControl.getGradocodigo()));
|
|
pRequest.getResponse().put("JEFECENTRO", jefeCentroControl);
|
|
}
|
|
}
|
|
} catch (Throwable e) {
|
|
throw new Exception(e);
|
|
}
|
|
return pRequest;
|
|
}
|
|
|
|
}
|