@Override public void update(final BaseEntity model) throws ServiceException, LogicException { final CatalogoServicoDTO catalogoServicoDto = (CatalogoServicoDTO) model; final CatalogoServicoDao catalogoServicodao = this.getDao(); final ServContratoCatalogoServDao servContratoCatalogoServDao = new ServContratoCatalogoServDao(); final InfoCatalogoServicoDao infoCatalogoServicoDao = new InfoCatalogoServicoDao(); final TransactionControler tc = new TransactionControlerImpl(catalogoServicodao.getAliasDB()); try { this.validaCreate(model); catalogoServicodao.setTransactionControler(tc); infoCatalogoServicoDao.setTransactionControler(tc); servContratoCatalogoServDao.setTransactionControler(tc); tc.start(); catalogoServicodao.update(catalogoServicoDto); servContratoCatalogoServDao.deleteByIdServContratoCatalogo(catalogoServicoDto); if (catalogoServicoDto.getColServicoContrato() != null && !catalogoServicoDto.getColServicoContrato().isEmpty()) { ServContratoCatalogoServDTO item = null; // varre a lista de serviços for (int i = 0; i < catalogoServicoDto.getColServicoContrato().size(); i++) { item = catalogoServicoDto.getColServicoContrato().get(i); item.setIdCatalogoServico(catalogoServicoDto.getIdCatalogoServico()); // grava cada item da lista servContratoCatalogoServDao.create(item); } } infoCatalogoServicoDao.deleteByIdInfoCatalogo(catalogoServicoDto); if (catalogoServicoDto.getColInfoCatalogoServico() != null && !catalogoServicoDto.getColInfoCatalogoServico().isEmpty()) { InfoCatalogoServicoDTO item = null; // varre a lista de serviços for (int i = 0; i < catalogoServicoDto.getColInfoCatalogoServico().size(); i++) { item = catalogoServicoDto.getColInfoCatalogoServico().get(i); item.setIdCatalogoServico(catalogoServicoDto.getIdCatalogoServico()); // grava cada item da lista infoCatalogoServicoDao.create(item); } } tc.commit(); } catch (final Exception e) { e.printStackTrace(); this.rollbackTransaction(tc, e); } finally { try { tc.close(); } catch (final Exception e) { e.printStackTrace(); } } }
/* * (non-Javadoc) * * @see br.com.citframework.service.CrudServicePojoImpl#create(br.com.citframework.dto.IDto) */ @Override public IDto create(IDto model) throws ServiceException, LogicException { AvaliacaoFornecedorDao avaliacaoForncedorDao = new AvaliacaoFornecedorDao(); AvaliacaoReferenciaFornecedorDao avaliacaoReferenciaFornecedorDao = new AvaliacaoReferenciaFornecedorDao(); CriterioAvaliacaoFornecedorDao criterioAvaliacaoFornecedorDao = new CriterioAvaliacaoFornecedorDao(); AvaliacaoFornecedorDTO avaliacaoFornecedorDto = (AvaliacaoFornecedorDTO) model; TransactionControler transactionControler = new TransactionControlerImpl(getDao().getAliasDB()); try { avaliacaoForncedorDao.setTransactionControler(transactionControler); avaliacaoReferenciaFornecedorDao.setTransactionControler(transactionControler); criterioAvaliacaoFornecedorDao.setTransactionControler(transactionControler); transactionControler.start(); avaliacaoFornecedorDto = (AvaliacaoFornecedorDTO) avaliacaoForncedorDao.create(avaliacaoFornecedorDto); if (avaliacaoFornecedorDto.getListAvaliacaoReferenciaFornecedor() != null) { for (AvaliacaoReferenciaFornecedorDTO avaliacaoReferenciaFornecedorDto : avaliacaoFornecedorDto.getListAvaliacaoReferenciaFornecedor()) { if (avaliacaoFornecedorDto.getIdAvaliacaoFornecedor() != null && avaliacaoFornecedorDto.getIdAvaliacaoFornecedor() != 0) { if (avaliacaoReferenciaFornecedorDto.getDecisao().equalsIgnoreCase("Sim")) { avaliacaoReferenciaFornecedorDto.setDecisao("S"); } else { avaliacaoReferenciaFornecedorDto.setDecisao("N"); } avaliacaoReferenciaFornecedorDto.setIdAvaliacaoFornecedor( avaliacaoFornecedorDto.getIdAvaliacaoFornecedor()); avaliacaoReferenciaFornecedorDao.create(avaliacaoReferenciaFornecedorDto); } } } if (avaliacaoFornecedorDto.getListCriterioAvaliacaoFornecedor() != null) { for (CriterioAvaliacaoFornecedorDTO criterioAvaliacaoFornecedorDto : avaliacaoFornecedorDto.getListCriterioAvaliacaoFornecedor()) { if (avaliacaoFornecedorDto.getIdAvaliacaoFornecedor() != null && avaliacaoFornecedorDto.getIdAvaliacaoFornecedor() != 0) { if (criterioAvaliacaoFornecedorDto.getValor().equalsIgnoreCase("Sim")) { criterioAvaliacaoFornecedorDto.setValorInteger(1); } else { if (criterioAvaliacaoFornecedorDto.getValor().equalsIgnoreCase("Não")) { criterioAvaliacaoFornecedorDto.setValorInteger(0); } else { criterioAvaliacaoFornecedorDto.setValorInteger(2); } } criterioAvaliacaoFornecedorDto.setIdAvaliacaoFornecedor( avaliacaoFornecedorDto.getIdAvaliacaoFornecedor()); criterioAvaliacaoFornecedorDao.create(criterioAvaliacaoFornecedorDto); } } } transactionControler.commit(); transactionControler.close(); } catch (Exception e) { e.printStackTrace(); this.rollbackTransaction(transactionControler, e); } return avaliacaoFornecedorDto; }
/** * Este metodo trata do motor do sistema dinamico de gravacao de dados de visoes (montadas * dinamicamente) */ @Override public void save( final UsuarioDTO usuarioDto, final DinamicViewsDTO dinamicViewDto, final Map map, final HttpServletRequest request) throws Exception { final VisaoRelacionadaDao visaoRelacionadaDao = new VisaoRelacionadaDao(); final GrupoVisaoDao grupoVisaoDao = new GrupoVisaoDao(); final GrupoVisaoCamposNegocioDao grupoVisaoCamposNegocioDao = new GrupoVisaoCamposNegocioDao(); final CamposObjetoNegocioDao camposObjetoNegocioDao = new CamposObjetoNegocioDao(); final VinculoVisaoDao vinculoVisaoDao = new VinculoVisaoDao(); final ScriptsVisaoDao scriptsVisaoDao = new ScriptsVisaoDao(); final MatrizVisaoDao matrizVisaoDao = new MatrizVisaoDao(); final VisaoDao visaoDao = this.getDao(); final TransactionControler tc = this.getDao().getTransactionControler(); visaoRelacionadaDao.setTransactionControler(tc); grupoVisaoDao.setTransactionControler(tc); grupoVisaoCamposNegocioDao.setTransactionControler(tc); camposObjetoNegocioDao.setTransactionControler(tc); vinculoVisaoDao.setTransactionControler(tc); scriptsVisaoDao.setTransactionControler(tc); matrizVisaoDao.setTransactionControler(tc); final Integer idVisao = dinamicViewDto.getDinamicViewsIdVisao(); final Collection colScripts = scriptsVisaoDao.findByIdVisao(idVisao); final HashMap mapScritps = new HashMap<>(); if (colScripts != null) { for (final Iterator it = colScripts.iterator(); it.hasNext(); ) { final ScriptsVisaoDTO scriptsVisaoDTO = (ScriptsVisaoDTO) it.next(); mapScritps.put( scriptsVisaoDTO.getTypeExecute() + "#" + scriptsVisaoDTO.getScryptType().trim(), scriptsVisaoDTO.getScript()); } } final Collection colCamposPKPrincipal = new ArrayList<>(); final Collection colCamposTodosPrincipal = new ArrayList<>(); Collection colCamposTodosVinc = null; CamposObjetoNegocioDTO camposObjetoNegocioChaveMatriz = new CamposObjetoNegocioDTO(); this.setInfoSave(idVisao, colCamposPKPrincipal, colCamposTodosPrincipal); final Collection colVisoesRelacionadas = visaoRelacionadaDao.findByIdVisaoPaiAtivos(idVisao); try { tc.start(); if (this.isPKExists(colCamposPKPrincipal, map)) { String strScript = (String) mapScritps.get( ScriptsVisaoDTO.SCRIPT_EXECUTE_SERVER + "#" + ScriptsVisaoDTO.SCRIPT_ONUPDATE.getName()); if (strScript != null && !strScript.trim().equalsIgnoreCase("")) { final ScriptRhinoJSExecute scriptExecute = new ScriptRhinoJSExecute(); final RuntimeScript runtimeScript = new RuntimeScript(); final Context cx = Context.enter(); final Scriptable scope = cx.initStandardObjects(); scope.put("mapFields", scope, map); final String action = "UPDATE"; scope.put("ACTION", scope, action); scope.put("userLogged", scope, usuarioDto); scope.put("transactionControler", scope, tc); scope.put("dinamicViewDto", scope, dinamicViewDto); scope.put("RuntimeScript", scope, runtimeScript); scope.put("language", scope, WebUtil.getLanguage(request)); scriptExecute.processScript( cx, scope, strScript, VisaoServiceEjb.class.getName() + "_" + ScriptsVisaoDTO.SCRIPT_ONUPDATE.getName()); } if (!dinamicViewDto.isAbortFuncaoPrincipal()) { this.updateFromMap(map, colCamposTodosPrincipal, usuarioDto, visaoDao, request); strScript = (String) mapScritps.get( ScriptsVisaoDTO.SCRIPT_EXECUTE_SERVER + "#" + ScriptsVisaoDTO.SCRIPT_AFTERUPDATE.getName()); if (strScript != null && !strScript.trim().equalsIgnoreCase("")) { final ScriptRhinoJSExecute scriptExecute = new ScriptRhinoJSExecute(); final RuntimeScript runtimeScript = new RuntimeScript(); final Context cx = Context.enter(); final Scriptable scope = cx.initStandardObjects(); scope.put("mapFields", scope, map); final String action = "UPDATE"; scope.put("ACTION", scope, action); scope.put("userLogged", scope, usuarioDto); scope.put("transactionControler", scope, tc); scope.put("dinamicViewDto", scope, dinamicViewDto); scope.put("RuntimeScript", scope, runtimeScript); scope.put("language", scope, WebUtil.getLanguage(request)); scriptExecute.processScript( cx, scope, strScript, VisaoServiceEjb.class.getName() + "_" + ScriptsVisaoDTO.SCRIPT_AFTERUPDATE.getName()); } } } else { String strScript = (String) mapScritps.get( ScriptsVisaoDTO.SCRIPT_EXECUTE_SERVER + "#" + ScriptsVisaoDTO.SCRIPT_ONCREATE.getName()); if (strScript != null && !strScript.trim().equalsIgnoreCase("")) { final ScriptRhinoJSExecute scriptExecute = new ScriptRhinoJSExecute(); final RuntimeScript runtimeScript = new RuntimeScript(); final Context cx = Context.enter(); final Scriptable scope = cx.initStandardObjects(); scope.put("mapFields", scope, map); final String action = "CREATE"; scope.put("ACTION", scope, action); scope.put("userLogged", scope, usuarioDto); scope.put("transactionControler", scope, tc); scope.put("dinamicViewDto", scope, dinamicViewDto); scope.put("RuntimeScript", scope, runtimeScript); scope.put("language", scope, WebUtil.getLanguage(request)); scriptExecute.processScript( cx, scope, strScript, VisaoServiceEjb.class.getName() + "_" + ScriptsVisaoDTO.SCRIPT_ONCREATE.getName()); } if (!dinamicViewDto.isAbortFuncaoPrincipal()) { this.createFromMap(map, colCamposTodosPrincipal, usuarioDto, visaoDao, request); strScript = (String) mapScritps.get( ScriptsVisaoDTO.SCRIPT_EXECUTE_SERVER + "#" + ScriptsVisaoDTO.SCRIPT_AFTERCREATE.getName()); if (strScript != null && !strScript.trim().equalsIgnoreCase("")) { final ScriptRhinoJSExecute scriptExecute = new ScriptRhinoJSExecute(); final RuntimeScript runtimeScript = new RuntimeScript(); final Context cx = Context.enter(); final Scriptable scope = cx.initStandardObjects(); scope.put("mapFields", scope, map); final String action = "CREATE"; scope.put("ACTION", scope, action); scope.put("userLogged", scope, usuarioDto); scope.put("transactionControler", scope, tc); scope.put("dinamicViewDto", scope, dinamicViewDto); scope.put("RuntimeScript", scope, runtimeScript); scope.put("language", scope, WebUtil.getLanguage(request)); scriptExecute.processScript( cx, scope, strScript, VisaoServiceEjb.class.getName() + "_" + ScriptsVisaoDTO.SCRIPT_AFTERCREATE.getName()); } } } if (colVisoesRelacionadas != null) { for (final Iterator it = colVisoesRelacionadas.iterator(); it.hasNext(); ) { final VisaoRelacionadaDTO visaoRelacionadaDto = (VisaoRelacionadaDTO) it.next(); final Collection colVinculos = vinculoVisaoDao.findByIdVisaoRelacionada(visaoRelacionadaDto.getIdVisaoRelacionada()); final Object objFromHash = map.get( VisaoRelacionadaDTO.PREFIXO_SISTEMA_TABELA_VINCULADA + visaoRelacionadaDto.getIdVisaoFilha()); VisaoDTO visaoDtoAux = new VisaoDTO(); visaoDtoAux.setIdVisao(visaoRelacionadaDto.getIdVisaoFilha()); visaoDtoAux = (VisaoDTO) visaoDao.restore(visaoDtoAux); MatrizVisaoDTO matrizVisaoDTO = new MatrizVisaoDTO(); boolean ehMatriz = false; if (visaoDtoAux != null) { if (visaoDtoAux.getTipoVisao().equalsIgnoreCase(VisaoDTO.MATRIZ)) { ehMatriz = true; matrizVisaoDTO.setIdVisao(visaoDtoAux.getIdVisao()); final Collection colMatriz = matrizVisaoDao.findByIdVisao(visaoDtoAux.getIdVisao()); if (colMatriz != null && colMatriz.size() > 0) { matrizVisaoDTO = (MatrizVisaoDTO) colMatriz.iterator().next(); camposObjetoNegocioChaveMatriz.setIdCamposObjetoNegocio( matrizVisaoDTO.getIdCamposObjetoNegocio1()); camposObjetoNegocioChaveMatriz.setIdObjetoNegocio( matrizVisaoDTO.getIdObjetoNegocio()); camposObjetoNegocioChaveMatriz = (CamposObjetoNegocioDTO) camposObjetoNegocioDao.restore(camposObjetoNegocioChaveMatriz); } } } if (HashMap.class.isInstance(objFromHash)) { final HashMap mapVinc = (HashMap) objFromHash; if (mapVinc != null) { // Se existir dados recebidos. final Collection colCamposPKVinc = new ArrayList<>(); colCamposTodosVinc = new ArrayList<>(); this.setInfoSave( visaoRelacionadaDto.getIdVisaoFilha(), colCamposPKVinc, colCamposTodosVinc); // Grava os dados de informacoes vinculadas. if (this.isPKExists(colCamposPKVinc, mapVinc)) { this.updateFromMap(mapVinc, colCamposTodosVinc, usuarioDto, visaoDao, request); } else { this.createFromMap(mapVinc, colCamposTodosVinc, usuarioDto, visaoDao, request); } } } else if (Collection.class.isInstance(objFromHash)) { final Collection colVinc = (Collection) objFromHash; if (colVinc != null) { for (final Iterator it2 = colVinc.iterator(); it2.hasNext(); ) { Map mapVinc = (Map) it2.next(); if (mapVinc != null) { // Se existir dados recebidos. final Collection colCamposPKVinc = new ArrayList<>(); colCamposTodosVinc = new ArrayList<>(); this.setInfoSave( visaoRelacionadaDto.getIdVisaoFilha(), colCamposPKVinc, colCamposTodosVinc); // ***** String tipoVinc = ""; if (colVinculos != null && colVinculos.size() > 0) { final VinculoVisaoDTO vinculoVisaoDTO = (VinculoVisaoDTO) ((List) colVinculos).get(0); tipoVinc = vinculoVisaoDTO.getTipoVinculo(); } if (ehMatriz) { if (camposObjetoNegocioChaveMatriz != null) { mapVinc.put(camposObjetoNegocioChaveMatriz.getNomeDB(), mapVinc.get("FLD_0")); } CamposObjetoNegocioDTO camposObjetoNegocioDTO = null; if (colCamposPKVinc != null && colCamposPKVinc.size() > 0) { for (final Iterator itVinc = colCamposPKVinc.iterator(); itVinc.hasNext(); ) { camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) itVinc.next(); if (!camposObjetoNegocioDTO .getNomeDB() .trim() .equalsIgnoreCase(camposObjetoNegocioChaveMatriz.getNomeDB().trim())) { mapVinc.put( camposObjetoNegocioDTO.getNomeDB(), map.get(camposObjetoNegocioDTO.getNomeDB())); } } } if (tipoVinc == null || tipoVinc.equalsIgnoreCase("")) { tipoVinc = VinculoVisaoDTO.VINCULO_1_TO_N; } } if (tipoVinc.equalsIgnoreCase(VinculoVisaoDTO.VINCULO_N_TO_N)) { // Grava os dados de informacoes vinculadas. if (this.isPKExists(colCamposPKVinc, mapVinc)) { this.updateFromMap( mapVinc, colCamposTodosVinc, usuarioDto, visaoDao, request); } else { this.createFromMap( mapVinc, colCamposTodosVinc, usuarioDto, visaoDao, request); } this.processCreateVinc( visaoRelacionadaDto, colVinculos, map, mapVinc, usuarioDto, request); } if (tipoVinc.equalsIgnoreCase(VinculoVisaoDTO.VINCULO_1_TO_N)) { mapVinc = this.createUniqueMap(map, mapVinc); // ****** // Grava os dados de informacoes vinculadas. if (this.isPKExists(colCamposPKVinc, mapVinc)) { this.updateFromMap( mapVinc, colCamposTodosVinc, usuarioDto, visaoDao, request); } else { this.createFromMap( mapVinc, colCamposTodosVinc, usuarioDto, visaoDao, request); } } } } } } } } if (dinamicViewDto.getIdFluxo() != null || dinamicViewDto.getIdTarefa() != null) { new ExecucaoSolicitacaoServiceEjb() .executa( usuarioDto, tc, dinamicViewDto.getIdFluxo(), dinamicViewDto.getIdTarefa(), dinamicViewDto.getAcaoFluxo(), map, colCamposTodosPrincipal, colCamposTodosVinc); } tc.commit(); tc.close(); } catch (final Exception e) { this.rollbackTransaction(tc, e); } }