git-svn-id: https://svn.coded.pt/svn/SIPRP@1356 bb69d46d-e84e-40c8-a05a-06db0d633741

lxbfYeaa
Tiago Simão 15 years ago
parent 4c0033cffc
commit f7c8854d6d

@ -1,6 +1,6 @@
#siprpsoft versioning file #siprpsoft versioning file
#Thu Jul 29 14:15:41 WEST 2010 #Tue Aug 03 15:51:18 WEST 2010
major=12 major=12
name=siprpsoft name=siprpsoft
minor=1 minor=1
build=9 build=10

@ -36,9 +36,11 @@ import com.evolute.entity.evo.EvoDataProvider;
import com.evolute.entity.evo.EvoJoinObject; import com.evolute.entity.evo.EvoJoinObject;
import com.evolute.utils.Singleton; import com.evolute.utils.Singleton;
import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.arrays.Virtual2DArray;
import com.evolute.utils.db.DBException;
import com.evolute.utils.db.DBManager; import com.evolute.utils.db.DBManager;
import com.evolute.utils.db.Executer; import com.evolute.utils.db.Executer;
import com.evolute.utils.error.ErrorLogger; import com.evolute.utils.error.ErrorLogger;
import com.evolute.utils.sql.Delete;
import com.evolute.utils.sql.Expression; import com.evolute.utils.sql.Expression;
import com.evolute.utils.sql.Field; import com.evolute.utils.sql.Field;
import com.evolute.utils.sql.Select2; import com.evolute.utils.sql.Select2;
@ -447,11 +449,11 @@ public class PlanoActuacaoDataProvider
return result; return result;
} }
public HsRelatorioRiscoData loadRelatorioRiscoByRiscoID( Integer hsRiscoID ) public HsRelatorioRiscoData loadRelatorioRiscoByRiscoID( Integer relatorioID, Integer hsRiscoID )
throws Exception throws Exception
{ {
return ((EvoDataProvider)ENTITY_PROVIDER).load( HsRelatorioRiscoData.class, return (relatorioID == null || hsRiscoID == null) ? null : ((EvoDataProvider)ENTITY_PROVIDER).load( HsRelatorioRiscoData.class,
new Object[] { null, hsRiscoID }, new String[] { HsRelatorioRiscoData.DELETED_DATE, HsRelatorioRiscoData.HS_RISCO_ID }, new Object[] { null, hsRiscoID, relatorioID }, new String[] { HsRelatorioRiscoData.DELETED_DATE, HsRelatorioRiscoData.HS_RISCO_ID, HsRelatorioRiscoData.RELATORIO_ID },
null ); null );
} }
@ -479,4 +481,47 @@ public class PlanoActuacaoDataProvider
null ); 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 );
}
}
} }

@ -310,7 +310,7 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel
if( root instanceof NodeRisco ) if( root instanceof NodeRisco )
{ {
HsRiscoData risco = (HsRiscoData) ((NodeRisco)root).getUserObject(); 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 ) 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 ) if( posto != null )
{ {
@ -334,7 +334,7 @@ public class GerirMedidasRelatorioPanel extends SIPRPLazyLoadedPanel
} }
try try
{ {
HigieneSegurancaLogic.addRiscoToRelatorioPosto( risco, order+1, posto ); HigieneSegurancaLogic.addRiscoToRelatorioPosto( relatorioID, risco, order+1, posto );
} }
catch ( Exception e ) catch ( Exception e )
{ {

@ -35,6 +35,7 @@ import javax.swing.JPanel;
import javax.swing.JRadioButton; import javax.swing.JRadioButton;
import javax.swing.JTabbedPane; import javax.swing.JTabbedPane;
import javax.swing.JTextField; import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.event.CaretEvent; import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener; import javax.swing.event.CaretListener;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
@ -58,6 +59,8 @@ import siprp.planoactuacao.print.PlanoActuacaoPDFCreator;
import siprp.ui.SIPRPFrame; import siprp.ui.SIPRPFrame;
import com.evolute.adt.Validator; import com.evolute.adt.Validator;
import com.evolute.swing.frame.EvoFrame;
import com.evolute.utils.error.ErrorLogger;
import com.evolute.utils.ui.calendar.JCalendarPanel; import com.evolute.utils.ui.calendar.JCalendarPanel;
public class PanelRelatorio extends JPanel implements CaretListener, ChangeListener, ActionListener public class PanelRelatorio extends JPanel implements CaretListener, ChangeListener, ActionListener
@ -315,31 +318,45 @@ public class PanelRelatorio extends JPanel implements CaretListener, ChangeListe
{ {
if( relatorio != null ) if( relatorio != null )
{ {
try // try
{ // {
setCursor( new Cursor( Cursor.WAIT_CURSOR ) ); // 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); 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 ) if( JOptionPane.YES_OPTION == ret )
{ {
HigieneSegurancaLogic.reverterRelatorio(relatorio); EvoFrame.findParentEvoFrame( this ).runAsynchronously( new Runnable() {
if( relatorio != null )
{ @Override
try public void run()
{
relatorio.save();
}
catch( Exception e )
{ {
e.printStackTrace(); 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 );
}
});
} }
} });
setRelatorio( relatorio, false );
} }
} // }
finally // finally
{ // {
setCursor( new Cursor( Cursor.DEFAULT_CURSOR ) ); // setCursor( new Cursor( Cursor.DEFAULT_CURSOR ) );
} // }
} }
} }

@ -49,6 +49,7 @@ import siprp.logic.node.PostoRelatorioNode;
import com.evolute.entity.evo.EvoJoinObject; import com.evolute.entity.evo.EvoJoinObject;
import com.evolute.utils.error.ErrorLogger; import com.evolute.utils.error.ErrorLogger;
import com.evolute.utils.sql.Delete;
import com.evolute.utils.ui.trees.TreeTools; import com.evolute.utils.ui.trees.TreeTools;
public class HigieneSegurancaLogic public class HigieneSegurancaLogic
@ -216,8 +217,13 @@ public class HigieneSegurancaLogic
EstabelecimentosData estabelecimento = relatorio.toMarcacao_id() == null ? null : relatorio.toMarcacao_id().toEstabelecimento_id(); EstabelecimentosData estabelecimento = relatorio.toMarcacao_id() == null ? null : relatorio.toMarcacao_id().toEstabelecimento_id();
if( estabelecimento != null ) if( estabelecimento != null )
{ {
System.out.println("delete");
deleteRelatorioContents( relatorio );
System.out.println("are");
reverterAreas( relatorio, estabelecimento ); reverterAreas( relatorio, estabelecimento );
System.out.println("leg");
reverterLegislacao( relatorio, estabelecimento ); reverterLegislacao( relatorio, estabelecimento );
System.out.println("norm");
reverterNormalizacao( relatorio, estabelecimento ); reverterNormalizacao( relatorio, estabelecimento );
} }
} }
@ -228,37 +234,34 @@ public class HigieneSegurancaLogic
} }
} }
private static void reverterAreas( HsRelatorioData relatorio, EstabelecimentosData estabelecimento ) throws Exception private static void deleteRelatorioContents( HsRelatorioData relatorio ) throws Exception
{ {
// System.out.println( "\nreverterAreas( " + estabelecimento + " ) : " ); planoProvider.deleteRelatorioContents( relatorio == null ? null : relatorio.getId() );
}
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<HsRelatorioAreaData> areas = relatorio.fromHsRelatorioArea_relatorio_id(); private static void reverterAreas( HsRelatorioData relatorio, EstabelecimentosData estabelecimento ) throws Exception
// areas = new LinkedList<HsRelatorioAreaData>(areas); {
// int areasSize = areas == null ? 0 : areas.size(); // List< HsRelatorioAreaData > areas = relatorio.fromHsRelatorioArea_relatorio_id();
// for( int i = 0; i < areasSize; ++i ) // for ( HsRelatorioAreaData area : areas )
// { // {
// HsRelatorioAreaData area = areas.get( i ); // List< HsRelatorioPostoData > postos = area.fromHsRelatorioPosto_area_id();
// List<HsRelatorioPostoData> postos = area.fromHsRelatorioPosto_area_id(); // for ( HsRelatorioPostoData posto : postos )
// postos = new LinkedList<HsRelatorioPostoData>(postos);
// int postosSize = postos == null ? 0 : postos.size();
// for( int j = 0; j < postosSize; ++j )
// { // {
// 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(); // area.delete();
// } // }
relatorio.save(); // relatorio.save();
List< HsPostoEstabelecimentoData > postos = estabelecimento.fromHsPostoEstabelecimento_estabelecimento_id(); List< HsPostoEstabelecimentoData > postos = estabelecimento.fromHsPostoEstabelecimento_estabelecimento_id();
reverterPostos( relatorio, postos ); reverterPostos( relatorio, postos );
relatorio.save(); relatorio.save();
@ -273,26 +276,28 @@ public class HigieneSegurancaLogic
{ {
HsPostoData posto = rel.toPosto_id(); HsPostoData posto = rel.toPosto_id();
HsAreaData area = posto.toArea_id(); HsAreaData area = posto.toArea_id();
HsRelatorioPostoData newPosto = createRelatorioPostoFromHsPosto( relatorio, areasInserted.get( area ), posto ); if( posto.getDeleted_date() == null && area.getDeleted_date() == null )
areasInserted.put( area, newPosto.toArea_id() ); {
HsRelatorioPostoData newPosto = createRelatorioPostoFromHsPosto( relatorio, areasInserted.get( area ), posto );
areasInserted.put( area, newPosto.toArea_id() );
}
} }
} }
public static HsRelatorioPostoData createRelatorioPostoFromHsPosto( HsRelatorioData relatorio, HsRelatorioAreaData rArea, HsPostoData posto ) public static HsRelatorioPostoData createRelatorioPostoFromHsPosto( HsRelatorioData relatorio, HsRelatorioAreaData rArea, HsPostoData posto )
throws Exception throws Exception
{ {
// System.out.println( "\ncreateRelatorioPostoFromHsPosto( " + rArea + ", " + posto + " ) : " ); relatorio.save();
HsRelatorioPostoData rPosto = new HsRelatorioPostoData();
HsAreaData area = posto.toArea_id();
if( rArea == null ) if( rArea == null )
{ {
HsAreaData area = posto.toArea_id();
rArea = new HsRelatorioAreaData(); rArea = new HsRelatorioAreaData();
updateRelatorioAreaFromHsArea( relatorio, rArea, area ); updateRelatorioAreaFromHsArea( relatorio, rArea, area );
} }
HsRelatorioPostoData rPosto = new HsRelatorioPostoData();
updateRelatorioPostoFromHsPosto( rPosto, rArea, posto ); updateRelatorioPostoFromHsPosto( rPosto, rArea, posto );
revertMedidasAndRiscos( posto, rPosto ); revertMedidasAndRiscos( relatorio.getId(), posto, rPosto );
rPosto.save(); rPosto.save();
return rPosto; return rPosto;
} }
@ -319,86 +324,82 @@ public class HigieneSegurancaLogic
rPosto.save(); 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() ); // HsRelatorioRiscoData relatorioRisco = planoProvider.loadRelatorioRiscoByRiscoID( relatorioID, risco.getId() );
if ( relatorioRisco == null ) // if ( relatorioRisco == null )
{ // {
relatorioRisco = new HsRelatorioRiscoData(); HsRelatorioRiscoData relatorioRisco = new HsRelatorioRiscoData();
relatorioRisco.setToRelatorio_id( rPosto.toArea_id().toRelatorio_id() ); relatorioRisco.setToRelatorio_id( rPosto.toArea_id().toRelatorio_id() );
relatorioRisco.setDescription( risco.getDescription() ); relatorioRisco.setDescription( risco.getDescription() );
relatorioRisco.setHs_risco_id( risco.getId() ); relatorioRisco.setHs_risco_id( risco.getId() );
relatorioRisco.save(); relatorioRisco.save();
} // }
HsRelatorioPostoRiscoData rPostoRisco = planoProvider.loadRelatorioPostoRisco( rPosto.getId(), relatorioRisco.getId() ); // HsRelatorioPostoRiscoData rPostoRisco = planoProvider.loadRelatorioPostoRisco( rPosto.getId(), relatorioRisco.getId() );
if ( rPostoRisco == null ) // if ( rPostoRisco == null )
{ // {
rPostoRisco = new HsRelatorioPostoRiscoData(); HsRelatorioPostoRiscoData rPostoRisco = new HsRelatorioPostoRiscoData();
rPostoRisco.setToPosto_id( rPosto ); rPostoRisco.setToPosto_id( rPosto );
rPostoRisco.setToRisco_id( relatorioRisco ); rPostoRisco.setToRisco_id( relatorioRisco );
rPostoRisco.setOrdem( order ); rPostoRisco.setOrdem( order );
rPostoRisco.save(); rPostoRisco.save();
} // }
for( HsRiscoMedidaData riscoMedida : risco.fromHsRiscoMedida_risco_id() ) for( HsRiscoMedidaData riscoMedida : risco.fromHsRiscoMedida_risco_id() )
{ {
HsRelatorioMedidaData medidaData = planoProvider.loadRelatorioMedidaByMedidaID( riscoMedida.getMedida_id() ); // HsRelatorioMedidaData rMedida = planoProvider.loadRelatorioMedidaByMedidaID( riscoMedida.getMedida_id() );
if ( medidaData == null ) // if( rMedida != null )
{ // {
medidaData = new HsRelatorioMedidaData(); // if( rMedida.toRisco_id() != null )
medidaData.setDescription( riscoMedida.toMedida_id().getDescription() ); // {
medidaData.setRequesitos_legais( riscoMedida.toMedida_id().getRequesitos_legais()); // if( !relatorioID.equals( rMedida.toRisco_id().getRelatorio_id() ) )
medidaData.setToRisco_id( relatorioRisco ); // {
medidaData.setHs_medida_id( riscoMedida.toMedida_id().getId() ); // rMedida = null;
medidaData.save(); // }
} // }
// }
// 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() ); // HsRelatorioPostoMedidaData rPostoMedida = planoProvider.loadRelatorioPostoMedida( rPosto.getId(), rMedida.getId() );
if ( rPostoMedida == null ) // if ( rPostoMedida == null )
{ // {
rPostoMedida = new HsRelatorioPostoMedidaData(); HsRelatorioPostoMedidaData rPostoMedida = new HsRelatorioPostoMedidaData();
rPostoMedida.setIs_plano_actuacao( false ); rPostoMedida.setIs_plano_actuacao( false );
rPostoMedida.setToMedida_id( medidaData ); rPostoMedida.setToMedida_id( rMedida );
rPostoMedida.setToPosto_id( rPosto ); rPostoMedida.setToPosto_id( rPosto );
rPostoMedida.save(); 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 + " ) : " ); for( HsPostoRiscoData postoRisco : posto.fromHsPostoRisco_posto_id() )
addRiscoToRelatorioPosto(postoRisco.toRisco_id(), postoRisco.getOrdem(), rPosto);
}
private static void revertMedidasAndRiscos( List<HsPostoRiscoData> postosRiscos, HsRelatorioPostoData rPosto ) throws Exception
{
// System.out.println( "\nrevertMedidasAndRiscos( " + postosRiscos + ", " + rPosto + " ) : " );
for( HsPostoRiscoData postoRisco : postosRiscos )
{ {
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 public static void reverterLegislacao( HsRelatorioData relatorio, EstabelecimentosData estabelecimento ) throws Exception
{ {
// System.out.println( "\nreverterLegislacao( " + estabelecimento + " ) : " ); // System.out.println( "\nreverterLegislacao( " + estabelecimento + " ) : " );
List< HsRelatorioLegislacaoData > listLegislacao = relatorio.fromHsRelatorioLegislacao_hs_relatorio_id(); // List< HsRelatorioLegislacaoData > listLegislacao = relatorio.fromHsRelatorioLegislacao_hs_relatorio_id();
for ( HsRelatorioLegislacaoData legislacao : listLegislacao ) // for ( HsRelatorioLegislacaoData legislacao : listLegislacao )
{ // {
legislacao.delete(); // legislacao.delete();
} // }
// int legislacaoSize = relatorio.fromHsRelatorioLegislacao_hs_relatorio_id().size(); // int legislacaoSize = relatorio.fromHsRelatorioLegislacao_hs_relatorio_id().size();
// for(int i = 0; i < legislacaoSize; ++i ) // for(int i = 0; i < legislacaoSize; ++i )
// { // {
@ -434,11 +435,11 @@ public class HigieneSegurancaLogic
{ {
// System.out.println( "\nreverterNormalizacao( " + estabelecimento + " ) : " ); // System.out.println( "\nreverterNormalizacao( " + estabelecimento + " ) : " );
List< HsRelatorioNormalizacaoData > normalizacoes = relatorio.fromHsRelatorioNormalizacao_hs_relatorio_id(); // List< HsRelatorioNormalizacaoData > normalizacoes = relatorio.fromHsRelatorioNormalizacao_hs_relatorio_id();
for ( HsRelatorioNormalizacaoData normalizacao : normalizacoes ) // for ( HsRelatorioNormalizacaoData normalizacao : normalizacoes )
{ // {
normalizacao.delete(); // normalizacao.delete();
} // }
// int normalizacaoSize = relatorio.fromHsRelatorioNormalizacao_hs_relatorio_id().size(); // int normalizacaoSize = relatorio.fromHsRelatorioNormalizacao_hs_relatorio_id().size();
// for(int i = 0; i < normalizacaoSize; ++i ) // for(int i = 0; i < normalizacaoSize; ++i )
// { // {

Loading…
Cancel
Save