forked from Coded/SIPRP
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.
235 lines
7.6 KiB
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 );
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|