/** * */ package net.conselldemallorca.helium.jbpm3.handlers; import java.util.ArrayList; import java.util.Date; import java.util.List; import net.conselldemallorca.helium.jbpm3.handlers.tipus.DocumentInfo; import net.conselldemallorca.helium.jbpm3.integracio.Jbpm3HeliumBridge; import net.conselldemallorca.helium.v3.core.api.dto.ExpedientDto; import net.conselldemallorca.helium.v3.core.api.dto.ZonaperDocumentDto; import net.conselldemallorca.helium.v3.core.api.dto.ZonaperDocumentDto.DocumentEventTipus; import net.conselldemallorca.helium.v3.core.api.dto.ZonaperEventDto; import org.jbpm.JbpmException; import org.jbpm.graph.exe.ExecutionContext; /** * Handler per a afegir un event a un expedient de la zona * personal del ciutadà. * * @author Limit Tecnologies <limit@limit.es> */ @SuppressWarnings("serial") public class ZonaperExpedientEventHandler extends AbstractHeliumActionHandler implements ZonaperExpedientEventHandlerInterface { private String titol; private String varTitol; private String text; private String varText; private String textSms; private String varTextSms; private String enllasConsulta; private String varEnllasConsulta; private Date data; private String varData; private String documentCodi; private String varDocumentCodi; private String redoseModel; private String varRedoseModel; private String redoseVersio; private String varRedoseVersio; public void execute(ExecutionContext executionContext) throws Exception { ExpedientDto expedient = getExpedientActual(executionContext); String dc = (String)getValorOVariable( executionContext, documentCodi, varDocumentCodi); String docTitol = null; String docArxiuNom = null; byte[] docArxiuContingut = null; if (dc != null) { DocumentInfo document = getDocumentInfo( executionContext, dc, true); if (document == null) throw new JbpmException("No s'ha pogut obtenir el document de l'expedient amb el codi " + dc); docTitol = document.getTitol(); docArxiuNom = document.getArxiuNom(); docArxiuContingut = document.getArxiuContingut(); } String model = (String)getValorOVariable( executionContext, redoseModel, varRedoseModel); Integer versio = getValorOVariableInteger( executionContext, redoseVersio, varRedoseVersio); Jbpm3HeliumBridge.getInstanceService().zonaperEventCrear( getProcessInstanceId(executionContext), construirEvent( expedient, (String)getValorOVariable(executionContext, titol, varTitol), (String)getValorOVariable(executionContext, text, varText), (String)getValorOVariable(executionContext, textSms, varTextSms), (String)getValorOVariable(executionContext, enllasConsulta, varEnllasConsulta), (Date)getValorOVariable(executionContext, data, varData), dc != null, docTitol, docArxiuNom, docArxiuContingut, model, versio)); } public void setTitol(String titol) { this.titol = titol; } public void setVarTitol(String varTitol) { this.varTitol = varTitol; } public void setText(String text) { this.text = text; } public void setVarText(String varText) { this.varText = varText; } public void setTextSms(String textSms) { this.textSms = textSms; } public void setVarTextSms(String varTextSms) { this.varTextSms = varTextSms; } public void setEnllasConsulta(String enllasConsulta) { this.enllasConsulta = enllasConsulta; } public void setVarEnllasConsulta(String varEnllasConsulta) { this.varEnllasConsulta = varEnllasConsulta; } public void setData(Date data) { this.data = data; } public void setVarData(String varData) { this.varData = varData; } public void setDocumentCodi(String documentCodi) { this.documentCodi = documentCodi; } public void setVarDocumentCodi(String varDocumentCodi) { this.varDocumentCodi = varDocumentCodi; } public void setRedoseModel(String redoseModel) { this.redoseModel = redoseModel; } public void setVarRedoseModel(String varRedoseModel) { this.varRedoseModel = varRedoseModel; } public void setRedoseVersio(String redoseVersio) { this.redoseVersio = redoseVersio; } public void setVarRedoseVersio(String varRedoseVersio) { this.varRedoseVersio = varRedoseVersio; } private ZonaperEventDto construirEvent( ExpedientDto expedient, String titol, String text, String textSms, String enllasConsulta, Date data, boolean hiHaDocument, String adjuntTitol, String adjuntArxiuNom, byte[] adjuntArxiuContingut, String adjuntModel, Integer adjuntVersio) { ZonaperEventDto zonaperEvent = new ZonaperEventDto(); zonaperEvent.setTitol(titol); zonaperEvent.setText(text); zonaperEvent.setTextSMS(textSms); zonaperEvent.setEnllasConsulta(enllasConsulta); if (hiHaDocument) { List<ZonaperDocumentDto> documents = new ArrayList<ZonaperDocumentDto>(); ZonaperDocumentDto document = new ZonaperDocumentDto(); document.setNom(adjuntTitol); document.setArxiuNom(adjuntArxiuNom); document.setArxiuContingut(adjuntArxiuContingut); document.setTipus(DocumentEventTipus.ARXIU); documents.add(document); zonaperEvent.setDocuments(documents); } return zonaperEvent; } }