package com.fp.armas.task; import java.sql.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.persistence.EntityManager; import com.fp.persistence.commondb.PersistenceHelper; import com.fp.persistence.parmas.inte.TarmColadeImpresion; import com.fp.persistence.parmas.param.TarmTramite; import com.fp.persistence.parmas.soli.TarmArmas; import com.fp.persistence.parmas.soli.TarmDocumentoHabilitante; import com.fp.persistence.parmas.soli.TarmSolicitudTramite; import com.fp.persistence.parmas.soli.TarmSolicitudTramiteKey; import com.fp.sessionbeans.helper.Sequence; import com.fp.simple.action.TaskAction; /** * Clase que se encarga de fijar el codigo del tipo de archivo * * @version 2.1 */ public class FechaCaducidadEstadoArma extends TaskAction { /* * (non-Javadoc) * * @see com.fp.simple.action.TaskAction#assignOwner(com.fp.dto.Request) */ @SuppressWarnings("unchecked") @Override public void assignOwner(Object pParam) throws Exception { HashMap m = (HashMap) pParam; Map mrequest = (Map) m.get("request"); System.out.println("SOLICITUD : "+mrequest.get("csolicitud")); System.out.println("NUMERO DE TRANSACCION: "+mrequest.get("numerotransaccion")); if (mrequest.get("csolicitud") == null || mrequest.get("numerotransaccion") == null) { return; } EntityManager em = PersistenceHelper.getEntityManager(); TarmSolicitudTramiteKey codigoSolicitudKey = new TarmSolicitudTramiteKey(); codigoSolicitudKey.setCsolicitud(mrequest.get("csolicitud").toString()); codigoSolicitudKey.setCtramite(Long.valueOf(mrequest.get("numerotransaccion").toString())); TarmSolicitudTramite solicitudTramite=TarmSolicitudTramite.find(em, codigoSolicitudKey); TarmTramite tramite = TarmTramite.find(em, solicitudTramite.getPk().getCtramite()); if(!tramite.getTipoautorizacion().equals("6")){// diferente 6 TIPOAUTORIZACION 0 PERMISO return; } System.out.println("select o from TarmDocumentoHabilitante o where o.csolicitud=:csolicitud" + mrequest.get("csolicitud").toString()); List documentoHab= em.createQuery("select o from TarmDocumentoHabilitante o where o.csolicitud=:csolicitud",TarmDocumentoHabilitante.class) .setParameter("csolicitud", mrequest.get("csolicitud").toString()). getResultList(); System.out.println("............................"+documentoHab.size()); List tarmArmas = em. createQuery("select o from TarmArmas o where o.pk in (select p.pk.carma from TarmSolicitudArmas p where p.pk.csolicitud=:csolicitud)",TarmArmas.class) .setParameter("csolicitud",mrequest.get("csolicitud").toString()) .getResultList(); System.out.println("............................"+tarmArmas.size()); for (TarmDocumentoHabilitante itemDocHab : documentoHab) { StringBuilder sqlColaImpresion= new StringBuilder("select c from TarmColadeImpresion c where c.cdocumento ="+itemDocHab.getPk()); ListlistaColaImpresion= em.createQuery(sqlColaImpresion.toString(),TarmColadeImpresion.class).getResultList(); if(listaColaImpresion!=null && listaColaImpresion.size()>0){ for (TarmColadeImpresion itemColaImp : listaColaImpresion) { itemColaImp.setEstadoimpresion("PIMPR"); itemColaImp.setEstadoimpresioncode("ESTADOIMPRESION"); em.merge(itemColaImp); em.flush(); } } } for(TarmArmas arma:tarmArmas){ arma.setPk(this.getCodigoArma()); arma.setFechacaducidad(documentoHab.get(0).getFechaexpiracion()); arma.setFecharegistro(new Date(System.currentTimeMillis())); em.clear(); em.persist(arma); em.flush(); } } private String getCodigoArma() throws Exception{ Sequence sequence = new Sequence(); String carma = sequence.getNextValue("CARMA").toString(); return carma; } }