From f7c8854d6dc62395b2095cab0c504ac673c168e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Sim=C3=A3o?= Date: Tue, 3 Aug 2010 13:55:46 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@1356 bb69d46d-e84e-40c8-a05a-06db0d633741 --- trunk/SIPRPSoft/properties/version.properties | 4 +- .../provider/PlanoActuacaoDataProvider.java | 51 ++++- .../relatorio/GerirMedidasRelatorioPanel.java | 6 +- .../higiene/relatorio/PanelRelatorio.java | 55 ++++-- .../siprp/logic/HigieneSegurancaLogic.java | 175 +++++++++--------- 5 files changed, 177 insertions(+), 114 deletions(-) diff --git a/trunk/SIPRPSoft/properties/version.properties b/trunk/SIPRPSoft/properties/version.properties index e4d4e0ad..a0796a41 100644 --- a/trunk/SIPRPSoft/properties/version.properties +++ b/trunk/SIPRPSoft/properties/version.properties @@ -1,6 +1,6 @@ #siprpsoft versioning file -#Thu Jul 29 14:15:41 WEST 2010 +#Tue Aug 03 15:51:18 WEST 2010 major=12 name=siprpsoft minor=1 -build=9 +build=10 diff --git a/trunk/SIPRPSoft/src/siprp/data/provider/PlanoActuacaoDataProvider.java b/trunk/SIPRPSoft/src/siprp/data/provider/PlanoActuacaoDataProvider.java index 85079ccd..64b30bd8 100644 --- a/trunk/SIPRPSoft/src/siprp/data/provider/PlanoActuacaoDataProvider.java +++ b/trunk/SIPRPSoft/src/siprp/data/provider/PlanoActuacaoDataProvider.java @@ -36,9 +36,11 @@ import com.evolute.entity.evo.EvoDataProvider; import com.evolute.entity.evo.EvoJoinObject; import com.evolute.utils.Singleton; import com.evolute.utils.arrays.Virtual2DArray; +import com.evolute.utils.db.DBException; import com.evolute.utils.db.DBManager; import com.evolute.utils.db.Executer; import com.evolute.utils.error.ErrorLogger; +import com.evolute.utils.sql.Delete; import com.evolute.utils.sql.Expression; import com.evolute.utils.sql.Field; import com.evolute.utils.sql.Select2; @@ -447,11 +449,11 @@ public class PlanoActuacaoDataProvider return result; } - public HsRelatorioRiscoData loadRelatorioRiscoByRiscoID( Integer hsRiscoID ) + public HsRelatorioRiscoData loadRelatorioRiscoByRiscoID( Integer relatorioID, Integer hsRiscoID ) throws Exception { - return ((EvoDataProvider)ENTITY_PROVIDER).load( HsRelatorioRiscoData.class, - new Object[] { null, hsRiscoID }, new String[] { HsRelatorioRiscoData.DELETED_DATE, HsRelatorioRiscoData.HS_RISCO_ID }, + return (relatorioID == null || hsRiscoID == null) ? null : ((EvoDataProvider)ENTITY_PROVIDER).load( HsRelatorioRiscoData.class, + new Object[] { null, hsRiscoID, relatorioID }, new String[] { HsRelatorioRiscoData.DELETED_DATE, HsRelatorioRiscoData.HS_RISCO_ID, HsRelatorioRiscoData.RELATORIO_ID }, null ); } @@ -478,5 +480,48 @@ public class PlanoActuacaoDataProvider new Object[] { postoID, medidaID }, new String[] { HsRelatorioPostoMedidaData.POSTO_ID, HsRelatorioPostoMedidaData.MEDIDA_ID }, null ); } + + public void deleteRelatorioContents( Integer relatorioID ) throws DBException + { + if( relatorioID != null ) + { + Delete delete = new Delete( + "delete from hs_relatorio_posto_medida where posto_id in(" + + "select distinct hs_relatorio_posto.id from hs_relatorio_posto " + + "inner join hs_relatorio_posto_medida on hs_relatorio_posto_medida.posto_id = hs_relatorio_posto.id " + + "inner join hs_relatorio_area on hs_relatorio_posto.area_id = hs_relatorio_area.id " + + "where hs_relatorio_area.relatorio_id = " + relatorioID + "); " + ); + executer.executeQuery( delete ); + delete = new Delete( + "delete from hs_relatorio_posto_risco where posto_id in(" + + "select distinct hs_relatorio_posto.id from hs_relatorio_posto " + + "inner join hs_relatorio_posto_risco on hs_relatorio_posto_risco.posto_id = hs_relatorio_posto.id " + + "inner join hs_relatorio_area on hs_relatorio_posto.area_id = hs_relatorio_area.id " + + "where hs_relatorio_area.relatorio_id = " + relatorioID + "); " + ); + executer.executeQuery( delete ); + delete = new Delete( + "delete from hs_relatorio_posto where id in(" + + "select distinct hs_relatorio_posto.id from hs_relatorio_posto " + + "inner join hs_relatorio_area on hs_relatorio_posto.area_id = hs_relatorio_area.id " + + "where hs_relatorio_area.relatorio_id = " + relatorioID + "); " + ); + executer.executeQuery( delete ); + delete = new Delete( + "delete from hs_relatorio_area where relatorio_id = " + relatorioID + ); + executer.executeQuery( delete ); + delete = new Delete( + "delete from hs_relatorio_legislacao where hs_relatorio_id = " + relatorioID + ); + executer.executeQuery( delete ); + delete = new Delete( + "delete from hs_relatorio_normalizacao where hs_relatorio_id = " + relatorioID + ); + + executer.executeQuery( delete ); + } + } } diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java index 9021064a..251b8dd1 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java @@ -310,7 +310,7 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel if( root instanceof NodeRisco ) { HsRiscoData risco = (HsRiscoData) ((NodeRisco)root).getUserObject(); - addRisco( risco ); + addRisco( posto == null ? null : posto.toArea_id().getRelatorio_id(), risco ); } for( int i = 0; i < root.getChildCount(); ++i ) { @@ -319,7 +319,7 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel } } - private void addRisco( HsRiscoData risco ) + private void addRisco( Integer relatorioID, HsRiscoData risco ) { if( posto != null ) { @@ -334,7 +334,7 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel } try { - HigieneSegurancaLogic.addRiscoToRelatorioPosto( risco, order+1, posto ); + HigieneSegurancaLogic.addRiscoToRelatorioPosto( relatorioID, risco, order+1, posto ); } catch ( Exception e ) { diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PanelRelatorio.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PanelRelatorio.java index 4337b509..63a60a23 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PanelRelatorio.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PanelRelatorio.java @@ -35,6 +35,7 @@ import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTabbedPane; import javax.swing.JTextField; +import javax.swing.SwingUtilities; import javax.swing.event.CaretEvent; import javax.swing.event.CaretListener; import javax.swing.event.ChangeEvent; @@ -58,6 +59,8 @@ import siprp.planoactuacao.print.PlanoActuacaoPDFCreator; import siprp.ui.SIPRPFrame; import com.evolute.adt.Validator; +import com.evolute.swing.frame.EvoFrame; +import com.evolute.utils.error.ErrorLogger; import com.evolute.utils.ui.calendar.JCalendarPanel; public class PanelRelatorio extends JPanel implements CaretListener, ChangeListener, ActionListener @@ -315,31 +318,45 @@ public class PanelRelatorio extends JPanel implements CaretListener, ChangeListe { if( relatorio != null ) { - try - { - setCursor( new Cursor( Cursor.WAIT_CURSOR ) ); +// try +// { +// setCursor( new Cursor( Cursor.WAIT_CURSOR ) ); int ret = ask == false ? JOptionPane.YES_OPTION : JOptionPane.showConfirmDialog( this, "Todas as altera" + ccedil + otilde + "es ao plano de actua" + ccedil + atilde + "o ser" + atilde + "o perdidas\nTem a certeza?","Carregar dados do estabelecimento",JOptionPane.YES_NO_OPTION); if( JOptionPane.YES_OPTION == ret ) { - HigieneSegurancaLogic.reverterRelatorio(relatorio); - if( relatorio != null ) - { - try + EvoFrame.findParentEvoFrame( this ).runAsynchronously( new Runnable() { + + @Override + public void run() { - relatorio.save(); + HigieneSegurancaLogic.reverterRelatorio(relatorio); + SwingUtilities.invokeLater( new Runnable() { + + @Override + public void run() + { + if( relatorio != null ) + { + try + { + relatorio.save(); + } + catch( Exception e ) + { + ErrorLogger.logException(e); + } + } + setRelatorio( relatorio, false ); + } + }); } - catch( Exception e ) - { - e.printStackTrace(); - } - } - setRelatorio( relatorio, false ); + }); } - } - finally - { - setCursor( new Cursor( Cursor.DEFAULT_CURSOR ) ); - } +// } +// finally +// { +// setCursor( new Cursor( Cursor.DEFAULT_CURSOR ) ); +// } } } diff --git a/trunk/SIPRPSoft/src/siprp/logic/HigieneSegurancaLogic.java b/trunk/SIPRPSoft/src/siprp/logic/HigieneSegurancaLogic.java index 5d438059..2a4f7473 100644 --- a/trunk/SIPRPSoft/src/siprp/logic/HigieneSegurancaLogic.java +++ b/trunk/SIPRPSoft/src/siprp/logic/HigieneSegurancaLogic.java @@ -49,6 +49,7 @@ import siprp.logic.node.PostoRelatorioNode; import com.evolute.entity.evo.EvoJoinObject; import com.evolute.utils.error.ErrorLogger; +import com.evolute.utils.sql.Delete; import com.evolute.utils.ui.trees.TreeTools; public class HigieneSegurancaLogic @@ -216,8 +217,13 @@ public class HigieneSegurancaLogic EstabelecimentosData estabelecimento = relatorio.toMarcacao_id() == null ? null : relatorio.toMarcacao_id().toEstabelecimento_id(); if( estabelecimento != null ) { + System.out.println("delete"); + deleteRelatorioContents( relatorio ); + System.out.println("are"); reverterAreas( relatorio, estabelecimento ); - reverterLegislacao( relatorio, estabelecimento ); + System.out.println("leg"); + reverterLegislacao( relatorio, estabelecimento ); + System.out.println("norm"); reverterNormalizacao( relatorio, estabelecimento ); } } @@ -228,37 +234,34 @@ public class HigieneSegurancaLogic } } + private static void deleteRelatorioContents( HsRelatorioData relatorio ) throws Exception + { + planoProvider.deleteRelatorioContents( relatorio == null ? null : relatorio.getId() ); + } + private static void reverterAreas( HsRelatorioData relatorio, EstabelecimentosData estabelecimento ) throws Exception { -// System.out.println( "\nreverterAreas( " + estabelecimento + " ) : " ); - - List< HsRelatorioAreaData > areas = relatorio.fromHsRelatorioArea_relatorio_id(); - for ( HsRelatorioAreaData area : areas ) - { - List< HsRelatorioPostoData > postos = area.fromHsRelatorioPosto_area_id(); - for ( HsRelatorioPostoData posto : postos ) - { - posto.delete(); - } - area.delete(); - } - -// List areas = relatorio.fromHsRelatorioArea_relatorio_id(); -// areas = new LinkedList(areas); -// int areasSize = areas == null ? 0 : areas.size(); -// for( int i = 0; i < areasSize; ++i ) +// List< HsRelatorioAreaData > areas = relatorio.fromHsRelatorioArea_relatorio_id(); +// for ( HsRelatorioAreaData area : areas ) // { -// HsRelatorioAreaData area = areas.get( i ); -// List postos = area.fromHsRelatorioPosto_area_id(); -// postos = new LinkedList(postos); -// int postosSize = postos == null ? 0 : postos.size(); -// for( int j = 0; j < postosSize; ++j ) +// List< HsRelatorioPostoData > postos = area.fromHsRelatorioPosto_area_id(); +// for ( HsRelatorioPostoData posto : postos ) // { -// postos.get(j).delete(); +// for( HsRelatorioPostoRiscoData rRisco : posto.fromHsRelatorioPostoRisco_posto_id() ) +// { +// rRisco.delete(); +// rRisco.toRisco_id().delete(); +// } +// for( HsRelatorioPostoMedidaData rMedida : posto.fromHsRelatorioPostoMedida_posto_id() ) +// { +// rMedida.delete(); +// rMedida.toMedida_id().delete(); +// } +// posto.delete(); // } // area.delete(); // } - relatorio.save(); +// relatorio.save(); List< HsPostoEstabelecimentoData > postos = estabelecimento.fromHsPostoEstabelecimento_estabelecimento_id(); reverterPostos( relatorio, postos ); relatorio.save(); @@ -273,26 +276,28 @@ public class HigieneSegurancaLogic { HsPostoData posto = rel.toPosto_id(); HsAreaData area = posto.toArea_id(); - HsRelatorioPostoData newPosto = createRelatorioPostoFromHsPosto( relatorio, areasInserted.get( area ), posto ); - areasInserted.put( area, newPosto.toArea_id() ); + if( posto.getDeleted_date() == null && area.getDeleted_date() == null ) + { + HsRelatorioPostoData newPosto = createRelatorioPostoFromHsPosto( relatorio, areasInserted.get( area ), posto ); + areasInserted.put( area, newPosto.toArea_id() ); + } } } public static HsRelatorioPostoData createRelatorioPostoFromHsPosto( HsRelatorioData relatorio, HsRelatorioAreaData rArea, HsPostoData posto ) throws Exception { -// System.out.println( "\ncreateRelatorioPostoFromHsPosto( " + rArea + ", " + posto + " ) : " ); - - HsRelatorioPostoData rPosto = new HsRelatorioPostoData(); - - HsAreaData area = posto.toArea_id(); + relatorio.save(); if( rArea == null ) { + HsAreaData area = posto.toArea_id(); rArea = new HsRelatorioAreaData(); updateRelatorioAreaFromHsArea( relatorio, rArea, area ); } + + HsRelatorioPostoData rPosto = new HsRelatorioPostoData(); updateRelatorioPostoFromHsPosto( rPosto, rArea, posto ); - revertMedidasAndRiscos( posto, rPosto ); + revertMedidasAndRiscos( relatorio.getId(), posto, rPosto ); rPosto.save(); return rPosto; } @@ -319,86 +324,82 @@ public class HigieneSegurancaLogic rPosto.save(); } - public static void addRiscoToRelatorioPosto( HsRiscoData risco, Integer order, HsRelatorioPostoData rPosto ) throws Exception + public static void addRiscoToRelatorioPosto( Integer relatorioID, HsRiscoData risco, Integer order, HsRelatorioPostoData rPosto ) throws Exception { - HsRelatorioRiscoData relatorioRisco = planoProvider.loadRelatorioRiscoByRiscoID( risco.getId() ); - if ( relatorioRisco == null ) - { - relatorioRisco = new HsRelatorioRiscoData(); +// HsRelatorioRiscoData relatorioRisco = planoProvider.loadRelatorioRiscoByRiscoID( relatorioID, risco.getId() ); +// if ( relatorioRisco == null ) +// { + HsRelatorioRiscoData relatorioRisco = new HsRelatorioRiscoData(); relatorioRisco.setToRelatorio_id( rPosto.toArea_id().toRelatorio_id() ); relatorioRisco.setDescription( risco.getDescription() ); relatorioRisco.setHs_risco_id( risco.getId() ); relatorioRisco.save(); - } +// } - HsRelatorioPostoRiscoData rPostoRisco = planoProvider.loadRelatorioPostoRisco( rPosto.getId(), relatorioRisco.getId() ); - if ( rPostoRisco == null ) - { - rPostoRisco = new HsRelatorioPostoRiscoData(); +// HsRelatorioPostoRiscoData rPostoRisco = planoProvider.loadRelatorioPostoRisco( rPosto.getId(), relatorioRisco.getId() ); +// if ( rPostoRisco == null ) +// { + HsRelatorioPostoRiscoData rPostoRisco = new HsRelatorioPostoRiscoData(); rPostoRisco.setToPosto_id( rPosto ); rPostoRisco.setToRisco_id( relatorioRisco ); rPostoRisco.setOrdem( order ); rPostoRisco.save(); - } +// } for( HsRiscoMedidaData riscoMedida : risco.fromHsRiscoMedida_risco_id() ) { - HsRelatorioMedidaData medidaData = planoProvider.loadRelatorioMedidaByMedidaID( riscoMedida.getMedida_id() ); - if ( medidaData == null ) - { - medidaData = new HsRelatorioMedidaData(); - medidaData.setDescription( riscoMedida.toMedida_id().getDescription() ); - medidaData.setRequesitos_legais( riscoMedida.toMedida_id().getRequesitos_legais()); - medidaData.setToRisco_id( relatorioRisco ); - medidaData.setHs_medida_id( riscoMedida.toMedida_id().getId() ); - medidaData.save(); - } +// HsRelatorioMedidaData rMedida = planoProvider.loadRelatorioMedidaByMedidaID( riscoMedida.getMedida_id() ); +// if( rMedida != null ) +// { +// if( rMedida.toRisco_id() != null ) +// { +// if( !relatorioID.equals( rMedida.toRisco_id().getRelatorio_id() ) ) +// { +// rMedida = null; +// } +// } +// } +// if ( rMedida == null ) +// { + HsRelatorioMedidaData rMedida = new HsRelatorioMedidaData(); + rMedida.setDescription( riscoMedida.toMedida_id().getDescription() ); + rMedida.setRequesitos_legais( riscoMedida.toMedida_id().getRequesitos_legais()); + rMedida.setToRisco_id( relatorioRisco ); + rMedida.setHs_medida_id( riscoMedida.toMedida_id().getId() ); + rMedida.save(); +// } - HsRelatorioPostoMedidaData rPostoMedida = planoProvider.loadRelatorioPostoMedida( rPosto.getId(), medidaData.getId() ); - if ( rPostoMedida == null ) - { - rPostoMedida = new HsRelatorioPostoMedidaData(); +// HsRelatorioPostoMedidaData rPostoMedida = planoProvider.loadRelatorioPostoMedida( rPosto.getId(), rMedida.getId() ); +// if ( rPostoMedida == null ) +// { + HsRelatorioPostoMedidaData rPostoMedida = new HsRelatorioPostoMedidaData(); rPostoMedida.setIs_plano_actuacao( false ); - rPostoMedida.setToMedida_id( medidaData ); + rPostoMedida.setToMedida_id( rMedida ); rPostoMedida.setToPosto_id( rPosto ); rPostoMedida.save(); - } +// } } } - private static void revertMedidasAndRiscos( HsPostoRiscoData postoRisco, HsRelatorioPostoData rPosto ) throws Exception + private static void revertMedidasAndRiscos( Integer relatorioID, HsPostoData posto, HsRelatorioPostoData rPosto ) throws Exception { -// System.out.println( "\nrevertMedidasAndRiscos( " + postoRisco + ", " + rPosto + " ) : " ); - - addRiscoToRelatorioPosto(postoRisco.toRisco_id(), postoRisco.getOrdem(), rPosto); - } - - private static void revertMedidasAndRiscos( List postosRiscos, HsRelatorioPostoData rPosto ) throws Exception - { -// System.out.println( "\nrevertMedidasAndRiscos( " + postosRiscos + ", " + rPosto + " ) : " ); - - for( HsPostoRiscoData postoRisco : postosRiscos ) + for( HsPostoRiscoData postoRisco : posto.fromHsPostoRisco_posto_id() ) { - revertMedidasAndRiscos( postoRisco, rPosto ); + addRiscoToRelatorioPosto( relatorioID, postoRisco.toRisco_id(), postoRisco.getOrdem(), rPosto ); } } - - private static void revertMedidasAndRiscos( HsPostoData posto, HsRelatorioPostoData rPosto ) throws Exception - { - revertMedidasAndRiscos(posto.fromHsPostoRisco_posto_id(),rPosto); - } public static void reverterLegislacao( HsRelatorioData relatorio, EstabelecimentosData estabelecimento ) throws Exception { // System.out.println( "\nreverterLegislacao( " + estabelecimento + " ) : " ); - List< HsRelatorioLegislacaoData > listLegislacao = relatorio.fromHsRelatorioLegislacao_hs_relatorio_id(); - for ( HsRelatorioLegislacaoData legislacao : listLegislacao ) - { - legislacao.delete(); - } +// List< HsRelatorioLegislacaoData > listLegislacao = relatorio.fromHsRelatorioLegislacao_hs_relatorio_id(); +// for ( HsRelatorioLegislacaoData legislacao : listLegislacao ) +// { +// legislacao.delete(); +// } // int legislacaoSize = relatorio.fromHsRelatorioLegislacao_hs_relatorio_id().size(); // for(int i = 0; i < legislacaoSize; ++i ) // { @@ -434,11 +435,11 @@ public class HigieneSegurancaLogic { // System.out.println( "\nreverterNormalizacao( " + estabelecimento + " ) : " ); - List< HsRelatorioNormalizacaoData > normalizacoes = relatorio.fromHsRelatorioNormalizacao_hs_relatorio_id(); - for ( HsRelatorioNormalizacaoData normalizacao : normalizacoes ) - { - normalizacao.delete(); - } +// List< HsRelatorioNormalizacaoData > normalizacoes = relatorio.fromHsRelatorioNormalizacao_hs_relatorio_id(); +// for ( HsRelatorioNormalizacaoData normalizacao : normalizacoes ) +// { +// normalizacao.delete(); +// } // int normalizacaoSize = relatorio.fromHsRelatorioNormalizacao_hs_relatorio_id().size(); // for(int i = 0; i < normalizacaoSize; ++i ) // {