diff --git a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PlanoActuacaoPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PlanoActuacaoPanel.java index 54bfe450..4dd6390b 100644 --- a/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PlanoActuacaoPanel.java +++ b/trunk/SIPRPSoft/src/siprp/higiene/relatorio/PlanoActuacaoPanel.java @@ -142,7 +142,7 @@ public class PlanoActuacaoPanel extends JPanel } ); } - private void refreshAreas() + private void refreshAreas() throws Exception { if( relatorio != null ) { @@ -162,7 +162,7 @@ public class PlanoActuacaoPanel extends JPanel } } - private void refreshPostoEstabelecimento( HsPostoEstabelecimento postoEstabelecimento ) + private void refreshPostoEstabelecimento( HsPostoEstabelecimento postoEstabelecimento ) throws Exception { if( postoEstabelecimento != null ) { @@ -170,24 +170,29 @@ public class PlanoActuacaoPanel extends JPanel if( posto != null ) { HsArea area = posto.getToHsArea(); + HsRelatorioArea relatorioArea = null; if( area != null ) { - refreshArea( area ); + relatorioArea = getAreaInRelatorio( relatorio, area.getId() ); + if( relatorioArea == null ) + { + relatorioArea = new HsRelatorioArea(); + } + HigieneSegurancaLogic.updateRelatorioAreaFromHsArea( relatorio, relatorioArea, area ); + } + HsRelatorioPosto relatorioPosto = getPostoInRelatorio( relatorio, posto.getId() ); + if( relatorioPosto == null ) + { + relatorioPosto = HigieneSegurancaLogic.createRelatorioPostoFromHsPosto( relatorio , relatorioArea, posto ); + } + else + { + HigieneSegurancaLogic.updateRelatorioPostoFromHsPosto( relatorioPosto, relatorioArea, posto ); } - refreshPosto( posto ); } } } - private void refreshArea( HsArea area ) - { - HsRelatorioArea relatorioArea = getAreaInRelatorio( relatorio, area.getId() ); - if( relatorioArea != null ) - { - relatorioArea.setDescription( area.getDescription() ); - } - } - private HsRelatorioArea getAreaInRelatorio( HsRelatorio relatorio, Integer softRefId ) { HsRelatorioArea result = null; @@ -205,16 +210,6 @@ public class PlanoActuacaoPanel extends JPanel return result; } - private void refreshPosto( HsPosto posto ) - { - HsRelatorioPosto relatorioPosto = getPostoInRelatorio( relatorio, posto.getId() ); - if( relatorioPosto != null ) - { - relatorioPosto.setDescription( posto.getDescription() ); - relatorioPosto.setIsPrincipal( posto.getIsPrincipal() ); - } - } - private HsRelatorioPosto getPostoInRelatorio( HsRelatorio relatorio, Integer softRefId ) { HsRelatorioPosto result = null; diff --git a/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java b/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java index 29265093..1afb3e04 100644 --- a/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java +++ b/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java @@ -10,9 +10,6 @@ import java.util.List; import javax.swing.tree.DefaultMutableTreeNode; -import com.evolute.adt.TreeTools; -import com.evolute.utils.error.ErrorLogger; - import siprp.database.cayenne.objects.Empresas; import siprp.database.cayenne.objects.Estabelecimentos; import siprp.database.cayenne.objects.HsArea; @@ -52,6 +49,9 @@ import siprp.logic.node.NodeRiscoTema; import siprp.logic.node.PostoNode; import siprp.logic.node.PostoRelatorioNode; +import com.evolute.adt.TreeTools; +import com.evolute.utils.error.ErrorLogger; + public class HigieneSegurancaLogic { @@ -238,32 +238,52 @@ public class HigieneSegurancaLogic relatorio.save(); } - private static void reverterPostos( HsRelatorio relatorio, List postos ) + private static void reverterPostos( HsRelatorio relatorio, List postos ) throws Exception { HashMap areasInserted = new HashMap(); for( HsPostoEstabelecimento rel : postos ) { HsPosto posto = rel.getToHsPosto(); - HsRelatorioPosto rPosto = new HsRelatorioPosto(); - rPosto.setDescription( posto.getDescription() ); - rPosto.setIsPrincipal( posto.getIsPrincipal() ); - rPosto.setHsPostoId( posto.getId() ); HsArea area = posto.getToHsArea(); - HsRelatorioArea rArea = areasInserted.get( area ); - if( rArea == null ) - { - rArea = new HsRelatorioArea(); - rArea.setDescription( area.getDescription() ); - rArea.setOrder( area.getOrder() ); - rArea.setToHsRelatorio( relatorio ); - rArea.setHsAreaId( area.getId() ); - areasInserted.put( area, rArea ); - } - rPosto.setToHsRelatorioArea( rArea ); - revertMedidasAndRiscos( posto, rPosto ); + HsRelatorioPosto newPosto = createRelatorioPostoFromHsPosto( relatorio, areasInserted.get( area ), posto ); + areasInserted.put( area, newPosto.getToHsRelatorioArea() ); } } + public static HsRelatorioPosto createRelatorioPostoFromHsPosto( HsRelatorio relatorio, HsRelatorioArea rArea, HsPosto posto ) throws Exception + { + HsRelatorioPosto rPosto = new HsRelatorioPosto(); + + HsArea area = posto.getToHsArea(); + if( rArea == null ) + { + rArea = new HsRelatorioArea(); + updateRelatorioAreaFromHsArea( relatorio, rArea, area ); + } + updateRelatorioPostoFromHsPosto( rPosto, rArea, posto ); + revertMedidasAndRiscos( posto, rPosto ); + rPosto.save(); + return rPosto; + } + + public static void updateRelatorioAreaFromHsArea( HsRelatorio relatorio, HsRelatorioArea rArea, HsArea area ) throws Exception + { + rArea.setDescription( area.getDescription() ); + rArea.setOrder( area.getOrder() ); + rArea.setToHsRelatorio( relatorio ); + rArea.setHsAreaId( area.getId() ); + rArea.save(); + } + + public static void updateRelatorioPostoFromHsPosto( HsRelatorioPosto rPosto, HsRelatorioArea rArea, HsPosto posto ) throws Exception + { + rPosto.setDescription( posto.getDescription() ); + rPosto.setIsPrincipal( posto.getIsPrincipal() ); + rPosto.setHsPostoId( posto.getId() ); + rPosto.setToHsRelatorioArea( rArea ); + rPosto.save(); + } + public static void addRiscoToRelatorioPosto( HsRisco risco, Integer order, HsRelatorioPosto rPosto ) { HsRelatorioRisco rRelatorioRisco = new HsRelatorioRisco();