package com.fp.frontend.webservices.impl; import java.io.ByteArrayInputStream; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.jws.WebService; import com.fp.common.logger.APPLogger; import com.fp.dto.Request; import com.fp.dto.Response; import com.fp.frontend.controller.alfresco.AlfrescoController; import com.fp.frontend.helper.CallerHelper; import com.fp.frontend.webservices.ColaImpresionService; import com.fp.persistence.parmas.dto.ws.ColaImpresionDto; import com.fp.persistence.parmas.dto.ws.ImagenDto; import com.fp.persistence.parmas.dto.ws.JefeCentroControlDto; @WebService(endpointInterface="com.fp.frontend.webservices.ColaImpresionService") public class ColaImpresionServiceImpl implements ColaImpresionService { @SuppressWarnings("unchecked") @Override public List obtenerDatosPendientesImprimir(String usercode) { List lcolaImpresion = null; try { CallerHelper callerHelper = new CallerHelper(); Request request = callerHelper.getRequest(); request.setCompany(1); request.put("usercode", usercode); request.put("estado", "PIMPR"); request.put("queryalias", "COLAIMPRESION"); Response response = callerHelper.executeQuery(request); if(response.getResponseCode().compareTo(Response.RESPONSE_OK) == 0){ lcolaImpresion = (List) response.get("COLAIMPRESION"); } } catch (Throwable e) { lcolaImpresion = null; APPLogger.getLogger().error(e.getMessage(), e); } return lcolaImpresion; } @SuppressWarnings("unchecked") @Override public List obtenerDocumentosImpresionProceso( String codigoproceso) { List lcolaImpresion = null; try { CallerHelper callerHelper = new CallerHelper(); Request request = callerHelper.getRequest(); request.setCompany(1); request.put("CODIGOSOLICITUD", codigoproceso); request.put("queryalias", "IMPRESIONPROCESO"); Response response = callerHelper.executeQuery(request); if(response.getResponseCode().compareTo(Response.RESPONSE_OK) == 0){ lcolaImpresion = (List) response.get("COLAIMPRESION"); } } catch (Throwable e) { lcolaImpresion = null; APPLogger.getLogger().error(e.getMessage(), e); } return lcolaImpresion; } @Override public JefeCentroControlDto obtenerJefeCentroArmas(String numerodocumento) { JefeCentroControlDto jefeCentroControl = null; try { CallerHelper callerHelper = new CallerHelper(); Request request = callerHelper.getRequest(); request.setCompany(1); request.put("NUMERODOCUMENTO", numerodocumento); request.put("queryalias", "JEFECENTRO"); Response response = callerHelper.executeQuery(request); if(response.getResponseCode().compareTo(Response.RESPONSE_OK) == 0){ jefeCentroControl = (JefeCentroControlDto) response.get("JEFECENTRO"); } } catch (Throwable e) { APPLogger.getLogger().error(e.getMessage(), e); } return jefeCentroControl; } @Override public ImagenDto obtenerImagenPersona(String numeroidentificacion) { System.out.println("obtenerImagenPersona.........."+numeroidentificacion); ImagenDto imagen = null; try { CallerHelper callerHelper = new CallerHelper(); Request request = callerHelper.getRequest(); request.setCompany(1); request.put("NUMEROIDENTIFICACION", numeroidentificacion); request.put("queryalias", "IMAGENPERSONA"); System.out.println("obtenerImagenPersona..........** "+numeroidentificacion); Response response = callerHelper.executeQuery(request); if(response.getResponseCode().compareTo(Response.RESPONSE_OK) == 0){ imagen = (ImagenDto) response.get("IMAGENPERSONA"); System.out.println("..Imagen.........."+imagen); } } catch (Throwable e) { APPLogger.getLogger().error(e.getMessage(), e); } return imagen; } @Override public String envioInforme(byte[] documento, String numerosolicitud) { System.out.println("envioInforme............................"+numerosolicitud); String responseStatus = "0"; try { if(documento == null || numerosolicitud == null){ return "1"; } CallerHelper callerHelper = new CallerHelper(); Request request = callerHelper.getRequest(); request.setCompany(1); request.put("NUMEROSOLICITUD", numerosolicitud); request.put("queryalias", "XPATHDOCUMENTOSOLICITUD"); request.setTransactionModule("30"); request.setTransactionCode(9995); request.setTransactionVersion(1); Response response = callerHelper.executeSave(request); String xpathdocumento = null; if(response.getResponseCode().compareTo(Response.RESPONSE_OK) == 0){ xpathdocumento = (String) response.get("XPATHDOCUMENTOSOLICITUD"); responseStatus = (String) response.get("RESPONSESTATUS"); } if(xpathdocumento != null){ AlfrescoController alfrescoController = new AlfrescoController(); alfrescoController.uploadFileWebService(new ByteArrayInputStream(documento), obtenerNombreArchivoxPath(xpathdocumento), obtenerXpath(xpathdocumento),"admin"); responseStatus = "0"; } else{ responseStatus = "3"; } } catch (Throwable e) { responseStatus = "2"; } return responseStatus; } /** * Retorna el nombre del archivo del xpath enviado * @param xpath * @return */ private String obtenerNombreArchivoxPath(String xpath) { String nombreArchivo = null; int indice = xpath.lastIndexOf("/cm:"); nombreArchivo = xpath.substring(indice + 4); return nombreArchivo; } /** * Retorna el xpath de la ruta en donde se va a almacenar el documento * @param xpath ruta en donde se almacenará el archivo * @return */ private String obtenerXpath(String xpath) { String rutaXpath = null; int indice = xpath.lastIndexOf("/cm:"); rutaXpath = xpath.substring(0, indice ); return rutaXpath; } /** * Retorna la ruta base donde se almacenara dicho archivo * * @return */ public String getRutaDocumentoSolBase(Date fechaEmision, String numerosolicitud, String numerodocumento) { StringBuilder ruta = null; if (fechaEmision != null && numerosolicitud != null && numerodocumento != null) { Calendar calendar = Calendar.getInstance(); calendar.setTime(fechaEmision); ruta = new StringBuilder("cm:Solicitud"); ruta = ruta.append("/cm:A-").append(calendar.get(Calendar.YEAR)); ruta = ruta.append("/cm:M-").append((calendar.get(Calendar.MONTH)+1) <= 9 ? "0" + (calendar.get(Calendar.MONTH) + 1) : (calendar.get(Calendar.MONTH)+1)); ruta = ruta.append("/cm:").append(numerosolicitud); ruta = ruta.append("/cm:").append(numerodocumento+".pdf"); } return ruta != null ? ruta.toString() : null; } }