From 5cb2ad1eca0f92649dd9d7a0b408c4e641a3c866 Mon Sep 17 00:00:00 2001 From: Frederico Palma Date: Fri, 19 Dec 2008 13:01:13 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@856 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../siprp/planoactuacao/db/DBConstants.java | 2 +- .../planoactuacao/db/PlanoActuacaoDBInit.java | 2 +- .../print/PlanoActuacaoPDFCreator.java | 39 ++++ .../print/PlanoActuacaoPrintDataProvider.java | 32 ++- .../print/PlanoActuacaoToPrint.java | 4 +- .../siprp/planoactuacao/print/TestPrint.java | 51 ++--- .../planoactuacao/print/plano_actuacao.xsl | 195 ++++++++++++++++-- 7 files changed, 280 insertions(+), 45 deletions(-) create mode 100644 trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPDFCreator.java diff --git a/trunk/SIPRPSoft/src/siprp/planoactuacao/db/DBConstants.java b/trunk/SIPRPSoft/src/siprp/planoactuacao/db/DBConstants.java index bc94cec9..803650d1 100644 --- a/trunk/SIPRPSoft/src/siprp/planoactuacao/db/DBConstants.java +++ b/trunk/SIPRPSoft/src/siprp/planoactuacao/db/DBConstants.java @@ -9,7 +9,7 @@ public interface DBConstants public static final String WEB_USER = "postgres"; public static final String WEB_PASSWORD = "Typein"; - public static final String LOCAL_URL = "jdbc:postgresql://localhost:5436/siprp_local"; + public static final String LOCAL_URL = "jdbc:postgresql://localhost:5436/siprp_local_3"; public static final String LOCAL_USER = "postgres"; public static final String LOCAL_PASSWORD = "Typein"; diff --git a/trunk/SIPRPSoft/src/siprp/planoactuacao/db/PlanoActuacaoDBInit.java b/trunk/SIPRPSoft/src/siprp/planoactuacao/db/PlanoActuacaoDBInit.java index efb98818..cda4be6f 100644 --- a/trunk/SIPRPSoft/src/siprp/planoactuacao/db/PlanoActuacaoDBInit.java +++ b/trunk/SIPRPSoft/src/siprp/planoactuacao/db/PlanoActuacaoDBInit.java @@ -11,7 +11,7 @@ import com.evolute.utils.strings.UnicodeChecker; public class PlanoActuacaoDBInit { - public static void initDB( String username, String password ) + public static void initDB() throws Exception { DBManager webManager = new JDBCManager( DBConstants.WEB_URL, diff --git a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPDFCreator.java b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPDFCreator.java new file mode 100644 index 00000000..3fad7306 --- /dev/null +++ b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPDFCreator.java @@ -0,0 +1,39 @@ +package siprp.planoactuacao.print; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileOutputStream; +import java.io.InputStream; + +import org.jdom.Document; +import org.jdom.output.XMLOutputter; + +import com.evolute.utils.fop.PDFCreator; +import com.evolute.utils.xml.XSLTransformer; + +public class PlanoActuacaoPDFCreator +{ + public byte[] createPDF( Integer planoId ) + throws Exception + { + PlanoActuacaoToPrint plano = PlanoActuacaoPrintDataProvider.getProvider().getPlanoToPrint( 6 ); + Document foDoc = new Document( plano.toJdomElement() ); + XMLOutputter outputter = new XMLOutputter(); + ByteArrayOutputStream foBaos = new ByteArrayOutputStream(); + outputter.output( foDoc, foBaos ); + byte fo[] = + applyTemplate( + getClass().getClassLoader().getResourceAsStream( "siprp/planoactuacao/print/plano_actuacao.xsl" ), + new ByteArrayInputStream( foBaos.toByteArray() ) ); + byte pdf[] = PDFCreator.getPDFCreator().createPdfFromFo( fo ); + return pdf; + } + + public byte[] applyTemplate( InputStream xsl, InputStream dataStream ) + throws Exception + { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + XSLTransformer.getXSLTransformer().transform( dataStream, xsl, baos ); + return baos.toByteArray(); + } +} diff --git a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPrintDataProvider.java b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPrintDataProvider.java index da46cb12..dfbc58de 100644 --- a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPrintDataProvider.java +++ b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoPrintDataProvider.java @@ -4,6 +4,7 @@ import java.util.Date; import java.util.Vector; import siprp.planoactuacao.SingletonConstants; +import siprp.planoactuacao.db.PlanoActuacaoDBInit; import com.evolute.utils.Singleton; import com.evolute.utils.arrays.Virtual2DArray; @@ -26,6 +27,10 @@ public class PlanoActuacaoPrintDataProvider public PlanoActuacaoPrintDataProvider() throws Exception { + if( Singleton.getInstance( SingletonConstants.WEB_DBMANAGER ) == null ) + { + PlanoActuacaoDBInit.initDB(); + } DBManager WEB_DBMANAGER = ( DBManager ) Singleton.getInstance( SingletonConstants.WEB_DBMANAGER ); WEB_EXECUTER = WEB_DBMANAGER.getSharedExecuter( this ); DBManager LOCAL_DBMANAGER = ( DBManager ) Singleton.getInstance( SingletonConstants.LOCAL_DBMANAGER ); @@ -57,7 +62,8 @@ public class PlanoActuacaoPrintDataProvider new String[]{ "empresa_id", "nome_empresa", "estabelecimento_id", "nome_estabelecimento", "data_relatorio", "data_visita", "observacoes_dl", - "observacoes_dns" }, + "observacoes_dns", "validacao_director_loja", + "validacao_dns" }, new Field( "id" ).isEqual( id ), null, null, @@ -73,7 +79,11 @@ public class PlanoActuacaoPrintDataProvider Date dataVisita = ( Date ) array.get( 0, 5 ); String observacoesDl = ( String ) array.get( 0, 6 ); String observacoesDns = ( String ) array.get( 0, 7 ); - EmpresaToPrint empresa = new EmpresaToPrint( nomeEmpresa, "http://apdp/siprp/auchan_jumbo_lado.jpg", + Boolean validacaoDl = ( Boolean ) array.get( 0, 8 ); + Boolean validacaoDns = ( Boolean ) array.get( 0, 9 ); + EmpresaToPrint empresa = new EmpresaToPrint( nomeEmpresa, +// "www.evolute.pt:13080/SIPRPImages/image?id=1", + "http://apdp/siprp/auchan_jumbo_lado.jpg", nomeEstabelecimento ); PlanoActuacaoToPrint plano = new PlanoActuacaoToPrint( @@ -81,7 +91,7 @@ public class PlanoActuacaoPrintDataProvider dataRelatorio != null ? new DataToPrint( "data-relatorio", dataRelatorio ) : null, dataVisita != null ? new DataToPrint( "data-hs", dataVisita ) : null, getLegislacaoAplicavel( empresaId, estabelecimentoId ), - getAreasToPrintByPlanoId( id ), + getAreasToPrintByPlanoId( id, validacaoDl, validacaoDns ), observacoesDl, observacoesDns ); return plano; @@ -112,7 +122,7 @@ public class PlanoActuacaoPrintDataProvider return legislacao; } - public Vector getAreasToPrintByPlanoId( Integer planoId ) + public Vector getAreasToPrintByPlanoId( Integer planoId, boolean validacaoDl, boolean validacaoDns ) throws Exception { Vector areas = new Vector(); @@ -132,12 +142,12 @@ public class PlanoActuacaoPrintDataProvider { Integer areaId = ( Integer ) array.get( n, 0 ); String areaDescricao = ( String ) array.get( n, 1 ); - areas.add( new AreaToPrint( areaDescricao, getRiscosToPrintByAreaId( areaId ) ) ); + areas.add( new AreaToPrint( areaDescricao, getRiscosToPrintByAreaId( areaId, validacaoDl, validacaoDns ) ) ); } return areas; } - public Vector getRiscosToPrintByAreaId( Integer areaId ) + public Vector getRiscosToPrintByAreaId( Integer areaId, boolean validacaoDl, boolean validacaoDns ) throws Exception { Vector riscos = new Vector(); @@ -166,7 +176,17 @@ public class PlanoActuacaoPrintDataProvider Date dataInicio = ( Date ) array.get( n, 5 ); Date dataFim = ( Date ) array.get( n, 6 ); String parecerDl = ( String ) array.get( n, 7 ); + if( ( parecerDl == null || parecerDl.trim().length() == 0 ) + && validacaoDl ) + { + parecerDl = "De acordo"; + } String parecerDns = ( String ) array.get( n, 8 ); + if( ( parecerDns == null || parecerDns.trim().length() == 0 ) + && validacaoDns ) + { + parecerDns = "De acordo"; + } String verificacaoSiprp = ( String ) array.get( n, 9 ); riscos.add( new RiscoToPrint( diff --git a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoToPrint.java b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoToPrint.java index b3157b02..a568c95c 100644 --- a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoToPrint.java +++ b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/PlanoActuacaoToPrint.java @@ -104,10 +104,10 @@ public class PlanoActuacaoToPrint } Element observacoesDlElement = new Element( "observacoes-dl" ); observacoesDlElement.setText( observacoesDl ); - planoElement.addContent( observacoesDl ); + planoElement.addContent( observacoesDlElement ); Element observacoesDnsElement = new Element( "observacoes-dns" ); observacoesDnsElement.setText( observacoesDns ); - planoElement.addContent( observacoesDns ); + planoElement.addContent( observacoesDnsElement ); return planoElement; } diff --git a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/TestPrint.java b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/TestPrint.java index 1d6422e5..d9cc9eb9 100644 --- a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/TestPrint.java +++ b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/TestPrint.java @@ -25,30 +25,35 @@ public class TestPrint public void test() throws Exception { - PlanoActuacaoDBInit.initDB( "postgres", "Typein" ); - PlanoActuacaoToPrint plano = PlanoActuacaoPrintDataProvider.getProvider().getPlanoToPrint( 6 ); - Document foDoc = new Document( plano.toJdomElement() ); - Format pretty = Format.getPrettyFormat(); - pretty.setIndent("\t"); - XMLOutputter outputter = new XMLOutputter(pretty); - ByteArrayOutputStream foBaos = new ByteArrayOutputStream(); - outputter.output( foDoc, foBaos ); - FileOutputStream fos = new FileOutputStream( "/home/fpalma/Desktop/in.xml" ); - fos.write( foBaos.toByteArray() ); - fos.close(); - - byte fo[] = applyTemplate( -// "siprp/planoactuacao/print/plano_actuacao.xsl", - getClass().getClassLoader().getResourceAsStream( "siprp/planoactuacao/print/plano_actuacao.xsl" ), -// "siprp/planoactuacao/print/teste_input.xml" ); - new ByteArrayInputStream( foBaos.toByteArray() ) ); -// new ByteArrayInputStream( "".getBytes() ) ); -// System.out.println( new String( fo ) ); - createPDFFile( fo, "/home/fpalma/Desktop/out.pdf" ); -// createPDFFile( fo, "c:/Documents and Settings/Frederico/Ambiente de Trabalho/out.pdf" ); +// PlanoActuacaoDBInit.initDB(); +// PlanoActuacaoToPrint plano = PlanoActuacaoPrintDataProvider.getProvider().getPlanoToPrint( 6 ); +// Document foDoc = new Document( plano.toJdomElement() ); +// Format pretty = Format.getPrettyFormat(); +// pretty.setIndent("\t"); +// XMLOutputter outputter = new XMLOutputter(pretty); +// ByteArrayOutputStream foBaos = new ByteArrayOutputStream(); +// outputter.output( foDoc, foBaos ); +// FileOutputStream fos = new FileOutputStream( "/home/fpalma/Desktop/in.xml" ); +// fos.write( foBaos.toByteArray() ); +// fos.close(); +// +// byte fo[] = applyTemplate( +//// "siprp/planoactuacao/print/plano_actuacao.xsl", +// getClass().getClassLoader().getResourceAsStream( "siprp/planoactuacao/print/plano_actuacao.xsl" ), +//// "siprp/planoactuacao/print/teste_input.xml" ); +// new ByteArrayInputStream( foBaos.toByteArray() ) ); +//// new ByteArrayInputStream( "".getBytes() ) ); +//// System.out.println( new String( fo ) ); +// createPDFFile( fo, "/home/fpalma/Desktop/out.pdf" ); +//// createPDFFile( fo, "c:/Documents and Settings/Frederico/Ambiente de Trabalho/out.pdf" ); +// +// fos = new FileOutputStream( "/home/fpalma/Desktop/out.xml" ); +// fos.write( fo ); +// fos.close(); - fos = new FileOutputStream( "/home/fpalma/Desktop/out.xml" ); - fos.write( fo ); + byte pdf[] = new PlanoActuacaoPDFCreator().createPDF( 6 ); + FileOutputStream fos = new FileOutputStream( "/home/fpalma/Desktop/pdf.pdf" ); + fos.write( pdf ); fos.close(); } diff --git a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/plano_actuacao.xsl b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/plano_actuacao.xsl index 576590f6..cc0b5bc2 100644 --- a/trunk/SIPRPSoft/src/siprp/planoactuacao/print/plano_actuacao.xsl +++ b/trunk/SIPRPSoft/src/siprp/planoactuacao/print/plano_actuacao.xsl @@ -52,6 +52,21 @@ master-reference="pm1_2" /> + + + + + + + + + + @@ -59,13 +74,13 @@   - + @@ -202,14 +217,14 @@ + src="url('http://www.evolute.pt/~siprp/planoactuacao/siprp_logo.jpg')" height="2cm" /> @@ -2419,7 +2434,7 @@ margin-bottom="0in" margin-right="-0.0484in" text-indent="0in" margin-left="0in"> + src="url('http://www.evolute.pt/~siprp/planoactuacao/siprp_logo.jpg')" height="2cm" />   @@ -2706,7 +2721,8 @@ border-bottom="0.0139in solid #000000" padding-top="0in" border-top="0.0139in solid #000000" display-align="center" background-color="#ccffff" writing-mode="lr-tb" - padding-right="0.0493in" border-right="0.0139in solid #000000"> + padding-right="0.0493in" + border-right="0.0139in solid #000000"> @@ -3006,6 +3022,161 @@ line-height="150%" margin-top="0in" margin-bottom="0in">   + + + + + + + + + page + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + + + + + + + + +   + + + + + + + + + + Observações Gerais DL: + + + + + + + + + + + + + + + + + + + Observações Gerais DNS: + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOME DO COORDENADOR DO PLANO + DE ACTUAÇÃO: + + + + +