From 5ee101b99ca58946b754c9709d7560ed862d9c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Sim=C3=A3o?= Date: Mon, 23 Aug 2010 18:33:39 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@1414 bb69d46d-e84e-40c8-a05a-06db0d633741 --- trunk/SIPRPSoft/properties/version.properties | 4 +- trunk/SIPRPSoft/src/siprp/Main.java | 12 +- .../provider/PlanoActuacaoDataProvider.java | 45 +++++-- .../higiene/gestao/SIPRPLazyLoadedPanel.java | 4 +- .../relatorio/GerirMedidasRelatorioPanel.java | 112 ++++++++--------- .../MedidasRiscosDeleterController.java | 23 +--- .../relatorio/VerAreasRelatorioPanel.java | 7 +- .../siprp/logic/HigieneSegurancaLogic.java | 114 +++++------------- 8 files changed, 139 insertions(+), 182 deletions(-) diff --git a/trunk/SIPRPSoft/properties/version.properties b/trunk/SIPRPSoft/properties/version.properties index 2015658c..e3902361 100644 --- a/trunk/SIPRPSoft/properties/version.properties +++ b/trunk/SIPRPSoft/properties/version.properties @@ -1,6 +1,6 @@ #siprpsoft versioning file -#Fri Aug 20 17:23:57 WEST 2010 +#Mon Aug 23 15:22:48 WEST 2010 major=12 name=siprpsoft minor=2 -build=0 +build=1 diff --git a/trunk/SIPRPSoft/src/siprp/Main.java b/trunk/SIPRPSoft/src/siprp/Main.java index e4fd9416..8e676a3e 100644 --- a/trunk/SIPRPSoft/src/siprp/Main.java +++ b/trunk/SIPRPSoft/src/siprp/Main.java @@ -36,6 +36,7 @@ import com.evolute.utils.db.DBException; import com.evolute.utils.db.DBManager; import com.evolute.utils.db.JDBCManager; import com.evolute.utils.db.keyretrievers.JDBCAutoKeyRetriever; +import com.evolute.utils.error.ErrorLogger; import com.evolute.utils.image.EvoImage; import com.evolute.utils.jdbc.DBStatementExecuter; import com.evolute.utils.jdbc.StatementExecuterFactory; @@ -114,8 +115,15 @@ public class Main implements com.evolute.utils.ui.window.Connector @Override public void run() { - siprpTracker.setLoginWindow( loginWindow ); - loginWindow.expandAll(); + try + { + siprpTracker.setLoginWindow( loginWindow ); + loginWindow.expandAll(); + } + catch ( Exception e ) + { + ErrorLogger.logExceptionAndShow( new Exception( "Erro ao iniciar o SIPRPSoft", e ) ); + } } } ); fopConfigFile = loadFopConfigFile(); diff --git a/trunk/SIPRPSoft/src/siprp/data/provider/PlanoActuacaoDataProvider.java b/trunk/SIPRPSoft/src/siprp/data/provider/PlanoActuacaoDataProvider.java index 64b30bd8..5a0c873c 100644 --- a/trunk/SIPRPSoft/src/siprp/data/provider/PlanoActuacaoDataProvider.java +++ b/trunk/SIPRPSoft/src/siprp/data/provider/PlanoActuacaoDataProvider.java @@ -32,6 +32,7 @@ import siprp.data.outer.MarcacoesEstabelecimentoData; import com.evolute.entity.ForeignKey; import com.evolute.entity.ProviderInterface; +import com.evolute.entity.ForeignKey.JOIN; import com.evolute.entity.evo.EvoDataProvider; import com.evolute.entity.evo.EvoJoinObject; import com.evolute.utils.Singleton; @@ -435,26 +436,50 @@ public class PlanoActuacaoDataProvider { List result = null; List fks = new LinkedList(); - fks.add( new ForeignKey( HsRelatorioPostoMedidaData.class, HsRelatorioPostoMedidaData.MEDIDA_ID_FULL, HsRelatorioMedidaData.class, HsRelatorioMedidaData.ID_FULL ) ); - fks.add( new ForeignKey( HsRelatorioMedidaData.class, HsRelatorioMedidaData.RISCO_ID_FULL, HsRelatorioRiscoData.class, HsRelatorioRiscoData.ID_FULL ) ); - fks.add( new ForeignKey( HsRelatorioRiscoData.class, HsRelatorioRiscoData.ID_FULL, HsRelatorioPostoRiscoData.class, HsRelatorioPostoRiscoData.RISCO_ID_FULL ) ); + + ForeignKey fk1 = new ForeignKey( HsRelatorioRiscoData.class, HsRelatorioRiscoData.ID_FULL, HsRelatorioPostoRiscoData.class, HsRelatorioPostoRiscoData.RISCO_ID_FULL ); + fk1.setJoin( JOIN.INNER ); + ForeignKey fk2 = new ForeignKey( HsRelatorioPostoRiscoData.class, HsRelatorioPostoRiscoData.POSTO_ID_FULL, HsRelatorioPostoMedidaData.class, HsRelatorioPostoMedidaData.POSTO_ID_FULL ); + fk2.setJoin( JOIN.OUTER ); + ForeignKey fk3 = new ForeignKey( HsRelatorioPostoMedidaData.class, HsRelatorioPostoMedidaData.MEDIDA_ID_FULL, HsRelatorioMedidaData.class, HsRelatorioMedidaData.ID_FULL ); + fk3.setJoin( JOIN.OUTER ); + fks.add( fk1 ); + fks.add( fk2 ); + fks.add( fk3 ); + +// fks.add( new ForeignKey( HsRelatorioPostoMedidaData.class, HsRelatorioPostoMedidaData.MEDIDA_ID_FULL, HsRelatorioMedidaData.class, HsRelatorioMedidaData.ID_FULL ) ); +// fks.add( new ForeignKey( HsRelatorioMedidaData.class, HsRelatorioMedidaData.RISCO_ID_FULL, HsRelatorioRiscoData.class, HsRelatorioRiscoData.ID_FULL ) ); +// fks.add( new ForeignKey( HsRelatorioRiscoData.class, HsRelatorioRiscoData.ID_FULL, HsRelatorioPostoRiscoData.class, HsRelatorioPostoRiscoData.RISCO_ID_FULL ) ); Expression where = new Field( HsRelatorioPostoMedidaData.POSTO_ID_FULL ).isEqual( posto.getId() ).and( - new Field( HsRelatorioMedidaData.DELETED_DATE_FULL ).isEqual( null ).and( new Field( HsRelatorioRiscoData.DELETED_DATE_FULL ).isEqual( null ) - ) - ); + ); result = ((EvoDataProvider)ENTITY_PROVIDER).listLoad( fks, where, HsRelatorioRiscoData.DESCRIPTION_FULL, HsRelatorioMedida.DESCRIPTION_FULL, HsRelatorioMedida.REQUESITOS_LEGAIS_FULL ); return result; } - public HsRelatorioRiscoData loadRelatorioRiscoByRiscoID( Integer relatorioID, Integer hsRiscoID ) + public HsRelatorioRiscoData loadRelatorioRiscoByRiscoID( HsRelatorioPostoData posto, Integer hsRiscoID ) throws Exception { - 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 ); + HsRelatorioRiscoData result = null; + if( posto != null && hsRiscoID != null ) + { + EvoDataProvider provider = ( (EvoDataProvider) ENTITY_PROVIDER ); + List joinPath = new LinkedList(); + joinPath.add( new ForeignKey( HsRelatorioRiscoData.class, HsRelatorioRiscoData.ID_FULL, HsRelatorioPostoRiscoData.class, HsRelatorioPostoRiscoData.RISCO_ID_FULL ) ); + List join = provider.listLoad( joinPath, + new Field( HsRelatorioRiscoData.HS_RISCO_ID_FULL ).isEqual( hsRiscoID ) + .and( new Field( HsRelatorioRiscoData.DELETED_DATE_FULL ).isEqual( null ) ) + .and( new Field( HsRelatorioPostoRiscoData.POSTO_ID_FULL ).isEqual( posto.getId() ) ) + ); + + if( !join.isEmpty() ) + { + result = join.get( 0 ).getObject( HsRelatorioRiscoData.class ); + } + } + return result; } public HsRelatorioPostoRiscoData loadRelatorioPostoRisco( Integer postoID, Integer riscoID ) diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/SIPRPLazyLoadedPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/SIPRPLazyLoadedPanel.java index 6aec8d4f..109e8ad3 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/SIPRPLazyLoadedPanel.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/SIPRPLazyLoadedPanel.java @@ -2,14 +2,14 @@ package siprp.higiene.gestao; import java.awt.Cursor; -import javax.swing.JPanel; import javax.swing.SwingUtilities; import com.evolute.swing.frame.EvoFrame; +import com.evolute.swing.panel.EvoPanel; import com.evolute.utils.error.ErrorLogger; -public abstract class SIPRPLazyLoadedPanel extends JPanel +public abstract class SIPRPLazyLoadedPanel extends EvoPanel { private static final long serialVersionUID = 1L; diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java index 6fcaee6d..86ec8926 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/GerirMedidasRelatorioPanel.java @@ -1,12 +1,16 @@ package siprp.higiene.relatorio; +import static com.evolute.utils.strings.UnicodeLatin1Map.aacute; import static com.evolute.utils.strings.UnicodeLatin1Map.atilde; import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil; +import static com.evolute.utils.strings.UnicodeLatin1Map.iacute; +import static com.evolute.utils.strings.UnicodeLatin1Map.oacute; import info.clearthought.layout.TableLayout; import info.clearthought.layout.TableLayoutConstraints; import java.awt.Color; import java.awt.Component; +import java.awt.Cursor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Comparator; @@ -29,7 +33,6 @@ import leaf.ui.LeafDialog; import leaf.ui.LeafIconButton; import leaf.ui.LeafTree; import leaf.ui.TreeInserterDialog; -import siprp.data.outer.HsPostoRiscoData; import siprp.data.outer.HsRelatorioMedidaData; import siprp.data.outer.HsRelatorioPostoData; import siprp.data.outer.HsRelatorioPostoMedidaData; @@ -191,7 +194,6 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel selectedMedida = (HsRelatorioPostoMedidaData) object; } } - setEnabled(); firePropertyChange( SELECTION_CHANGED, null, object ); } } ); @@ -252,21 +254,32 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel { try { + setCursor( Cursor.getPredefinedCursor( Cursor.WAIT_CURSOR ) ); DefaultMutableTreeNode allRiscos = getAllRiscos(); TreeTools.removeAll( allRiscos, getRiscosTree() ); TreeInserterDialog dialog = new TreeInserterDialog( "Adicionar Riscos", allRiscos ); - DefaultMutableTreeNode result = dialog.getResult(); + final DefaultMutableTreeNode result = dialog.getResult(); if( result != null ) { - addResult( result ); - doRefresh(); + runAsynchronously( new Runnable() + { + @Override + public void run() + { + addResult( result ); + doRefresh(); + } + } ); } - setEnabled(); } catch( Exception e ) { LeafDialog.error( e ); } + finally + { + setCursor( Cursor.getDefaultCursor() ); + } } private DefaultMutableTreeNode getAllRiscos() @@ -323,19 +336,14 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel { if( posto != null ) { - Integer order = 0; - List toPostos = risco.fromHsPostoRisco_risco_id(); - if( !toPostos.isEmpty() ) + try { - for (HsPostoRiscoData hsPostoRisco : toPostos) + HsRelatorioRiscoData oldRisco = HigieneSegurancaLogic.getRelatorioRiscoData( posto, risco.getId() ); + if( oldRisco == null || ask( "Actualizar risco?", "O risco: " + risco.toString() + "\nJ" + aacute + " est" + aacute + " inclu" + iacute + "do no relat" + oacute + "rio.\nDeseja actualiz" + aacute + "-lo?") ) { - order = Math.max(order, hsPostoRisco.getOrdem() == null ? 0 : hsPostoRisco.getOrdem() ); + HigieneSegurancaLogic.addRiscoToRelatorioPosto( risco, oldRisco, posto ); } } - try - { - HigieneSegurancaLogic.addRiscoToRelatorioPosto( relatorioID, risco, order+1, posto ); - } catch ( Exception e ) { ErrorLogger.logExceptionAndShow( e ); @@ -348,23 +356,30 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel return JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog( this, message, "Confirma"+ccedil+atilde+"o", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null ); } - private String shortenString( String string ) - { - return string == null ? null : (string.length() <= 40 ? string : (string.substring(0,40) + "...")); - } - - private void rem() { - for( TreePath path : tree.getSelectionPaths() ) + final TreePath [] paths = tree.getSelectionPaths(); + if( paths != null && paths.length > 0 ) { - if ( ! rem( path ) ) + if( confirm( "Tem a certeza que deseja remover a selec" + ccedil + atilde + "o?\n - " + paths.length + " risco(s)/medida(s)" ) ) { - break; + runAsynchronously( new Runnable() + { + @Override + public void run() + { + for( TreePath path : paths ) + { + if ( !rem( path ) ) + { + break; + } + } + doRefresh(); + } + } ); } } - doRefresh(); - setEnabled(); } private boolean rem( TreePath path ) @@ -378,14 +393,10 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel if( selection instanceof MedidaRelatorioNode ) { HsRelatorioPostoMedidaData rel = selection == null ? null : (HsRelatorioPostoMedidaData) ((MedidaRelatorioNode) selection).getUserObject(); - if( confirm("Tem a certeza que deseja remover o requisito '" + shortenString( rel.toMedida_id().toString() ) + "'?") ) + if( rel != null ) { HsRelatorioMedidaData medidaData = rel.toMedida_id(); -// System.out.println( "\nDELETING MEDIDA : " + medidaData.getId() + " - " + medidaData.getDescription() ); medidaData.delete(); - -// System.out.println( "\nDELETING REL : " + rel.getMedida_id() + " : " + rel.getPosto_id() ); - rel.delete(); outcome = true; } @@ -393,14 +404,11 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel else if( selection instanceof RiscoRelatorioNode ) { HsRelatorioPostoRiscoData rel = (HsRelatorioPostoRiscoData) ((RiscoRelatorioNode)selection).getUserObject(); - if( confirm("Tem a certeza que deseja remover o risco '" + shortenString( rel.toRisco_id().toString() ) + "'?") ) + if( rel != null ) { HsRelatorioRiscoData riscoData = rel.toRisco_id(); - MedidasRiscosDeleterController.getInstance().delete( new MedidasRiscosDeleter( riscoData ) ); - riscoData.delete(); - rel.delete(); outcome = true; } @@ -451,7 +459,10 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel riscoNode = new RiscoRelatorioNode( postoRisco ); root.add( riscoNode ); } - riscoNode.add( new MedidaRelatorioNode( postoMedida ) ); + if( postoMedida != null && postoMedida.toMedida_id().getDeleted_date() == null ) + { + riscoNode.add( new MedidaRelatorioNode( postoMedida ) ); + } } } catch ( Exception e ) @@ -459,33 +470,7 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel ErrorLogger.logExceptionAndShow( e ); } - -// List list = posto.fromHsRelatorioPostoRisco_posto_id(); -// Collections.sort( list ); -// -// for( HsRelatorioPostoRiscoData rel : list ) -// { -// RiscoRelatorioNode node = new RiscoRelatorioNode( rel ); -// HsRelatorioRiscoData risco = rel.toRisco_id(); -// if( risco.getDeleted_date() == null ) -// { -// List< HsRelatorioMedidaData > listMedidas = risco.fromHsRelatorioMedida_risco_id(); -// for( HsRelatorioMedidaData medida : listMedidas ) -// { -// List< HsRelatorioPostoMedidaData > listRels = medida.fromHsRelatorioPostoMedida_medida_id(); -// for( HsRelatorioPostoMedidaData medidaRel : listRels ) -// { -// node.add( new MedidaRelatorioNode( medidaRel ) ); -// } -// } -// root.add( node ); -// } -// } - - - } - setEnabled(); TreeTools.sort( root, new Comparator() { @@ -511,6 +496,8 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel { selectMedida(); } + + setEnabled(); } private void selectMedida( ) @@ -535,7 +522,6 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel this.posto = posto; this.selectedMedida = null; doRefresh(); - setEnabled(); } } diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/MedidasRiscosDeleterController.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/MedidasRiscosDeleterController.java index 4386d621..cdb0be80 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/MedidasRiscosDeleterController.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/MedidasRiscosDeleterController.java @@ -1,18 +1,12 @@ package siprp.higiene.relatorio; -import java.util.LinkedList; -import java.util.List; +import java.util.Vector; public class MedidasRiscosDeleterController { private static MedidasRiscosDeleterController INSTANCE = null; - private List< Thread > threads = null; - - private MedidasRiscosDeleterController() - { - threads = new LinkedList< Thread >(); - } + private final Vector threads = new Vector(); public static synchronized MedidasRiscosDeleterController getInstance() { @@ -23,24 +17,13 @@ public class MedidasRiscosDeleterController return INSTANCE; } - - public List< Thread > getThreads() + public Vector getThreads() { return threads; } - - private void setThreads( List< Thread > threads ) - { - this.threads = threads; - } public void delete( MedidasRiscosDeleter thread ) { - if ( getThreads() == null ) - { - setThreads( new LinkedList< Thread >() ); - } - Thread t = new Thread( thread ); t.setName( thread.getName() ); t.setDaemon( false ); diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/VerAreasRelatorioPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/VerAreasRelatorioPanel.java index e6f5be0e..b9b71331 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/VerAreasRelatorioPanel.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/VerAreasRelatorioPanel.java @@ -88,7 +88,10 @@ public class VerAreasRelatorioPanel extends JPanel boolean allOk = true; for( HsRelatorioPostoRiscoData rel : posto.fromHsRelatorioPostoRisco_posto_id() ) { - allOk &= HigieneSegurancaLogic.isRelatorioRiscoPreenchido( rel ); + if( rel.toRisco_id().getDeleted_date() != null ) + { + allOk &= HigieneSegurancaLogic.isRelatorioRiscoPreenchido( rel ); + } } highColor = RelatorioHigieneSegurancaWindow.COLOR_RISCO_OK_SEL; lowColor = RelatorioHigieneSegurancaWindow.COLOR_RISCO_OK; @@ -104,7 +107,7 @@ public class VerAreasRelatorioPanel extends JPanel { setOpaque( false ); } - return(this); + return this; } } ); TreeTools.registerTreeKeepExpandState( tree ); diff --git a/trunk/SIPRPSoft/src/siprp/logic/HigieneSegurancaLogic.java b/trunk/SIPRPSoft/src/siprp/logic/HigieneSegurancaLogic.java index 81bb9fd7..90d4deef 100644 --- a/trunk/SIPRPSoft/src/siprp/logic/HigieneSegurancaLogic.java +++ b/trunk/SIPRPSoft/src/siprp/logic/HigieneSegurancaLogic.java @@ -236,27 +236,6 @@ public class HigieneSegurancaLogic private static void reverterAreas( HsRelatorioData relatorio, EstabelecimentosData estabelecimento ) throws Exception { -// List< HsRelatorioAreaData > areas = relatorio.fromHsRelatorioArea_relatorio_id(); -// for ( HsRelatorioAreaData area : areas ) -// { -// List< HsRelatorioPostoData > postos = area.fromHsRelatorioPosto_area_id(); -// for ( HsRelatorioPostoData posto : postos ) -// { -// 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(); List< HsPostoEstabelecimentoData > postos = estabelecimento.fromHsPostoEstabelecimento_estabelecimento_id(); reverterPostos( relatorio, postos ); relatorio.save(); @@ -264,8 +243,6 @@ public class HigieneSegurancaLogic private static void reverterPostos( HsRelatorioData relatorio, List< HsPostoEstabelecimentoData > postos ) throws Exception { -// System.out.println( "\nreverterPostos( " + postos + " ) :" ); - HashMap< HsAreaData, HsRelatorioAreaData > areasInserted = new HashMap< HsAreaData, HsRelatorioAreaData >(); for( HsPostoEstabelecimentoData rel : postos ) { @@ -299,8 +276,6 @@ public class HigieneSegurancaLogic public static void updateRelatorioAreaFromHsArea( HsRelatorioData relatorio, HsRelatorioAreaData rArea, HsAreaData area ) throws Exception { -// System.out.println( "\nupdateRelatorioAreaFromHsArea( " + rArea + ", " + area + " ) : " ); - rArea.setDescription( area.getDescription() ); rArea.setOrdem( area.getOrdem() ); rArea.setToRelatorio_id( relatorio ); @@ -310,8 +285,6 @@ public class HigieneSegurancaLogic public static void updateRelatorioPostoFromHsPosto( HsRelatorioPostoData rPosto, HsRelatorioAreaData rArea, HsPostoData posto ) throws Exception { -// System.out.println( "\nupdateRelatorioPostoFromHsPosto( " + rPosto + ", " + rArea + ", " + posto + " ) : " ); - rPosto.setDescription( posto.getDescription() ); rPosto.setIs_principal( posto.getIs_principal() ); rPosto.setHs_posto_id( posto.getId() ); @@ -319,61 +292,56 @@ public class HigieneSegurancaLogic rPosto.save(); } - public static void addRiscoToRelatorioPosto( Integer relatorioID, HsRiscoData risco, Integer order, HsRelatorioPostoData rPosto ) throws Exception + public static HsRelatorioRiscoData getRelatorioRiscoData( HsRelatorioPostoData posto, Integer riscoID ) throws Exception { + return planoProvider.loadRelatorioRiscoByRiscoID( posto, riscoID ); + } + + public static void addRiscoToRelatorioPosto( HsRiscoData risco, HsRelatorioRiscoData oldRisco, HsRelatorioPostoData rPosto ) throws Exception + { + HsRelatorioRiscoData relatorioRisco = oldRisco == null ? new HsRelatorioRiscoData() : oldRisco; + relatorioRisco.setRelatorio_id( rPosto.toArea_id().getRelatorio_id() ); + relatorioRisco.setDescription( risco.getDescription() ); + relatorioRisco.setHs_risco_id( risco.getId() ); + relatorioRisco.save(); -// 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 ) -// { + if( oldRisco != null ) + { + for( HsRelatorioMedidaData oldMedida : relatorioRisco.fromHsRelatorioMedida_risco_id() ) + { + for( HsRelatorioPostoMedidaData rel : oldMedida.fromHsRelatorioPostoMedida_medida_id() ) + { + rel.delete(); + } + oldMedida.delete(); + } + } + else + { HsRelatorioPostoRiscoData rPostoRisco = new HsRelatorioPostoRiscoData(); rPostoRisco.setToPosto_id( rPosto ); rPostoRisco.setToRisco_id( relatorioRisco ); - rPostoRisco.setOrdem( order ); + //rPostoRisco.setOrdem( order ); rPostoRisco.save(); -// } - + } + for( HsRiscoMedidaData riscoMedida : risco.fromHsRiscoMedida_risco_id() ) { -// 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(); + if( riscoMedida.toMedida_id().getDeleted_date() == 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(), rMedida.getId() ); -// if ( rPostoMedida == null ) -// { + HsRelatorioPostoMedidaData rPostoMedida = new HsRelatorioPostoMedidaData(); rPostoMedida.setIs_plano_actuacao( false ); rPostoMedida.setToMedida_id( rMedida ); rPostoMedida.setToPosto_id( rPosto ); rPostoMedida.save(); -// } + } } } @@ -382,24 +350,12 @@ public class HigieneSegurancaLogic { for( HsPostoRiscoData postoRisco : posto.fromHsPostoRisco_posto_id() ) { - addRiscoToRelatorioPosto( relatorioID, postoRisco.toRisco_id(), postoRisco.getOrdem(), rPosto ); + addRiscoToRelatorioPosto( postoRisco.toRisco_id(), null, rPosto ); } } public static void reverterLegislacao( HsRelatorioData relatorio, EstabelecimentosData estabelecimento, boolean delete ) throws Exception { -// System.out.println( "\nreverterLegislacao( " + estabelecimento + " ) : " ); - -// 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 ) -// { -// relatorio.fromHsRelatorioLegislacao_hs_relatorio_id().get( 0 ).delete(); -// } if( delete ) { for( HsRelatorioLegislacaoData rl : relatorio.fromHsRelatorioLegislacao_hs_relatorio_id() ) @@ -418,8 +374,6 @@ public class HigieneSegurancaLogic private static HsRelatorioLegislacaoData criarRelatorioLegislacao( HsRelatorioData relatorio, HsLegislacaoData legislacao ) { -// System.out.println( "\ncriarRelatorioLegislacao( " + legislacao + " ) : " ); - HsRelatorioLegislacaoData result = null; if( relatorio != null && legislacao != null ) { @@ -451,8 +405,6 @@ public class HigieneSegurancaLogic private static HsRelatorioNormalizacaoData criarRelatorioNormalizacao( HsRelatorioData relatorio, HsNormalizacaoData normalizacao ) { -// System.out.println( "\ncriarRelatorioNormalizacao( " + normalizacao + " ) : " ); - HsRelatorioNormalizacaoData result = null; if( relatorio != null && normalizacao != null ) {