You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java

235 lines
7.6 KiB

package siprp.logic;
import java.util.HashMap;
import java.util.List;
import javax.swing.tree.DefaultMutableTreeNode;
import leaf.ui.TreeTools;
import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.objects.HsArea;
import siprp.database.cayenne.objects.HsPosto;
import siprp.database.cayenne.objects.HsPostoEstabelecimento;
import siprp.database.cayenne.objects.HsPostoRisco;
import siprp.database.cayenne.objects.HsRelatorio;
import siprp.database.cayenne.objects.HsRelatorioArea;
import siprp.database.cayenne.objects.HsRelatorioMedida;
import siprp.database.cayenne.objects.HsRelatorioPosto;
import siprp.database.cayenne.objects.HsRelatorioPostoMedida;
import siprp.database.cayenne.objects.HsRelatorioPostoRisco;
import siprp.database.cayenne.objects.HsRelatorioRisco;
import siprp.database.cayenne.objects.HsRelatorioRiscoValorQualitativo;
import siprp.database.cayenne.objects.HsRisco;
import siprp.database.cayenne.objects.HsRiscoEmpresa;
import siprp.database.cayenne.objects.HsRiscoMedida;
import siprp.database.cayenne.objects.HsRiscoTema;
import siprp.database.cayenne.providers.MedicinaDAO;
import siprp.database.cayenne.providers.PlanoActuacaoDAO;
import siprp.higiene.relatorio.AreaRelatorioNode;
import siprp.higiene.relatorio.PostoRelatorioNode;
import siprp.logic.node.AreaNode;
import siprp.logic.node.NodeMedida;
import siprp.logic.node.NodeRisco;
import siprp.logic.node.NodeRiscoTema;
import siprp.logic.node.PostoNode;
public class HigieneSegurancaLogic
{
private static final PlanoActuacaoDAO planoProvider = new PlanoActuacaoDAO();
private static final MedicinaDAO medicinaProvider = new MedicinaDAO();
public static DefaultMutableTreeNode getRiscosTree()
{
DefaultMutableTreeNode result = new DefaultMutableTreeNode();
List<HsRiscoTema> temas = planoProvider.getAllRiscoTemas();
if( temas != null )
{
for( HsRiscoTema tema : temas )
{
NodeRiscoTema temaNode = new NodeRiscoTema( tema );
for( HsRisco risco : tema.getHsRiscoArray() )
{
NodeRisco riscoNode = new NodeRisco( risco );
for( HsRiscoMedida rel : risco.getHsRiscoMedidaArray() )
{
riscoNode.add( new NodeMedida( rel ) );
}
temaNode.add( riscoNode );
}
result.add( temaNode );
}
}
return result;
}
public static DefaultMutableTreeNode getRiscosTree( Empresas empresa )
{
DefaultMutableTreeNode result = new DefaultMutableTreeNode();
for( HsRiscoEmpresa rel : empresa.getHsRiscoEmpresaArray() )
{
HsRisco risco = rel.getToHsRisco();
HsRiscoTema tema = risco.getToHsRiscoTema();
DefaultMutableTreeNode temaNode = TreeTools.findNodeWithUserObject( tema, result );
if( temaNode == null )
{
temaNode = new NodeRiscoTema( tema );
result.add(temaNode);
}
temaNode.add( new NodeRisco( risco ) );
}
return result;
}
public static DefaultMutableTreeNode getAreasTree( Empresas empresa )
{
DefaultMutableTreeNode result = new DefaultMutableTreeNode();
if( empresa != null )
{
for( HsArea area : empresa.getHsAreaArray() )
{
AreaNode areaNode = new AreaNode(area);
for( HsPosto posto : area.getHsPostoArray() )
{
areaNode.add( new PostoNode( posto ) );
}
result.add( areaNode );
}
}
return result;
}
public static DefaultMutableTreeNode getAreasTree( Estabelecimentos estabelecimento )
{
DefaultMutableTreeNode result = new DefaultMutableTreeNode();
if( estabelecimento != null )
{
List<HsPostoEstabelecimento> postos = estabelecimento.getHsPostoEstabelecimentoArray();
for( HsPostoEstabelecimento rel : postos )
{
HsPosto posto = rel.getToHsPosto();
HsArea area = posto.getToHsArea();
DefaultMutableTreeNode areaNode = TreeTools.findNodeWithUserObject( area, result );
if( areaNode == null )
{
areaNode = new AreaNode( area );
result.add( areaNode );
}
areaNode.add( new PostoNode( posto ) );
}
}
return result;
}
public static DefaultMutableTreeNode getPostosTree( Estabelecimentos estabelecimento )
{
DefaultMutableTreeNode result = new DefaultMutableTreeNode();
if( estabelecimento != null )
{
List<HsPostoEstabelecimento> postos = estabelecimento.getHsPostoEstabelecimentoArray();
for( HsPostoEstabelecimento rel : postos )
{
result.add( new PostoNode( rel.getToHsPosto() ) );
}
}
return result;
}
public static List<Empresas> getAllEmpresas()
{
return medicinaProvider.getAllEmpresas();
}
public static List<HsRelatorioRiscoValorQualitativo> getAllValoresQualitativos()
{
return planoProvider.getAllValoresQualitativos();
}
public static DefaultMutableTreeNode getAreasRelatorioTree( HsRelatorio relatorio )
{
DefaultMutableTreeNode result = new DefaultMutableTreeNode();
if( relatorio != null )
{
for( HsRelatorioArea area : relatorio.getHsRelatorioArea() )
{
AreaRelatorioNode areaNode = new AreaRelatorioNode(area);
for( HsRelatorioPosto posto : area.getHsRelatorioPostoArray() )
{
areaNode.add( new PostoRelatorioNode( posto ) );
}
result.add( areaNode );
}
}
return result;
}
public static void reverterRelatorio( HsRelatorio relatorio )
{
if(relatorio != null)
{
List<HsRelatorioArea> areas = relatorio.getHsRelatorioArea();
int areasSize = areas == null ? 0 : areas.size();
for( int i = 0; i < areasSize; ++i )
{
areas.get( 0 ).delete();
}
relatorio.save();
Estabelecimentos estabelecimento = relatorio.getToHsMarcacoesEstabelecimento() == null ? null : relatorio.getToHsMarcacoesEstabelecimento().getToEstabelecimentos();
if( estabelecimento != null )
{
List<HsPostoEstabelecimento> postos = estabelecimento.getHsPostoEstabelecimentoArray();
reverterPostos(relatorio,postos);
relatorio.save();
}
}
}
private static void reverterPostos( HsRelatorio relatorio, List<HsPostoEstabelecimento> postos )
{
HashMap<HsArea,HsRelatorioArea> areasInserted = new HashMap<HsArea, HsRelatorioArea>();
for( HsPostoEstabelecimento rel : postos )
{
HsPosto posto = rel.getToHsPosto();
HsRelatorioPosto rPosto = new HsRelatorioPosto();
rPosto.setDescription( posto.getDescription() );
HsArea area = posto.getToHsArea();
HsRelatorioArea rArea = areasInserted.get( area );
if( rArea == null )
{
rArea = new HsRelatorioArea();
rArea.setDescription( area.getDescription() );
rArea.setToHsRelatorio( relatorio );
areasInserted.put(area,rArea);
}
rPosto.setToHsRelatorioArea( rArea );
addMedidasAndRiscos(posto,rPosto);
}
}
private static void addMedidasAndRiscos(HsPosto posto, HsRelatorioPosto rPosto)
{
for( HsPostoRisco postoRisco : posto.getHsPostoRiscoArray() )
{
HsRelatorioRisco rRelatorioRisco = new HsRelatorioRisco();
rRelatorioRisco.setToHsRelatorio( rPosto.getToHsRelatorioArea().getToHsRelatorio() );
rRelatorioRisco.setDescription( postoRisco.getToHsRisco().getDescription() );
HsRelatorioPostoRisco rPostoRisco = new HsRelatorioPostoRisco();
rPostoRisco.setToHsRelatorioPosto( rPosto );
rPostoRisco.setToHsRelatorioRisco( rRelatorioRisco );
for( HsRiscoMedida riscoMedida : postoRisco.getToHsRisco().getHsRiscoMedidaArray() )
{
HsRelatorioMedida rMedida = new HsRelatorioMedida();
rMedida.setDescription( riscoMedida.getToHsMedida().getDescription() );
rMedida.setRequesitosLegais( riscoMedida.getToHsMedida().getRequesitosLegais() );
rMedida.setToHsRelatorioRisco( rRelatorioRisco );
HsRelatorioPostoMedida rPostoMedida = new HsRelatorioPostoMedida();
rPostoMedida.setIsPlanoActuacao( false );
rPostoMedida.setToHsRelatorioMedida( rMedida );
rPostoMedida.setToHsRelatorioPosto( rPosto );
}
}
}
}