public static int retornaQtdTotal(Connection conn, JobProtheus job) throws SQLException { PreparedStatement stmt = null; ResultSet rs = null; int qtdTotal = 0; int qtdSucata = 0; String sqlVerQtd = "select job, sum(qtd_transf), sum(hr_tot), sum(qtd_sucata) from jobLote where job = ? and operacao = ? group by job"; stmt = conn.prepareStatement(sqlVerQtd); stmt.setString(1, job.getJob().trim()); stmt.setInt(2, job.getOperacao()); rs = stmt.executeQuery(); String qtdJob = ""; double totHora = 0; while (rs.next()) { qtdJob = rs.getString(1); // numero job qtdTotal = rs.getInt(2); // quantidade total totHora = rs.getInt(3); // hora total em minutos qtdSucata = rs.getInt(4); } return qtdTotal + qtdSucata; }
private void jButtonRetrabalhoActionPerformed( java.awt.event.ActionEvent evt) { // GEN-FIRST:event_jButtonRetrabalhoActionPerformed this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); int contador = 0; listaJobLoteSelecionadoRetrabado = new ArrayList<JobLote>(); for (int i = 0; i <= modelo.getRowCount() - 1; i++) { JobLote linha = modelo.getJob(i); if (linha.getStatus() == true) { // se estiver selecionado adiciona na lista listaJobLoteSelecionadoRetrabado.add(linha); contador++; } } /*Se houver mais de um joblote selecionado avisa que só é possivel selecionar um para lançar retrabalho*/ if (contador < 1) { this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); JOptionPane.showMessageDialog(null, "Selecione um lote!"); } else if (contador > 1) { this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); JOptionPane.showMessageDialog(null, "Só é permitido selecionar um Lote!"); // desmarca tudo for (int i = 0; i <= modelo.getRowCount() - 1; i++) { modelo.setValueAt(false, tabela.convertRowIndexToModel(i), 0); } } else { timerTelaExclusao.stop(); JobLote lote = listaJobLoteSelecionadoRetrabado.get(0); SistemaDao2 dao = new SistemaDao2(); JobProtheus job = dao.retornaJob(lote); if (job == null) { JOptionPane.showMessageDialog(null, "Job não encontrado no sistema!"); } else { boolean noturno = Principal.retornaTurnoSetorJobSelecionado(lote.getSetor().trim()); boolean temTempoPadrao = Principal.getPossuiTempoPadrao(lote.getSetor().trim()); LoteRejeitadoView tela = new LoteRejeitadoView( null, true, job, lote, job.getQuantidadeCompleta(), modelo, tabela, usuario, timer, setor, noturno, temTempoPadrao, "retrabalho", jBAtualizar); this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); tela.setVisible(true); } } } // GEN-LAST:event_jButtonRetrabalhoActionPerformed
public void adicionaOPTelaInicial(Connection conn, JobProtheus jobProtheus, JobLote job) throws SQLException { if (jobProtheus != null) { // antes de adicionar o job na tela de consultas jobs, verifica // se ja existe, se ja existir remove e adiciona novamente int total = modeloConsultaJobs.getRowCount() - 1; for (int j = total; j >= 0; j--) { JobProtheus jobAtual = modeloConsultaJobs.getJob(j); if (jobAtual.getJob().trim().equals(job.getJob().trim()) && jobAtual.getOperacao() == job.getOperNum()) { modeloConsultaJobs.removeJob(j); } } boolean temLinhaTempo = verificaSeSetorTemLinhaTempo(conn, jobProtheus.getCentroTrabalho().trim()); if (temLinhaTempo) { if (jobProtheus.getQuantidadeCompleta() == 0) { desativaIniciado( conn, jobProtheus.getJob().trim().replace(".", ""), jobProtheus.getOperacao()); } else { boolean iniciadoJaExiste = verificarSeJobEstaTabelaIniciado( conn, jobProtheus.getJob().trim().replace(".", ""), jobProtheus.getOperacao()); JobIniciado jobIniciado = retornaUltimoLote( conn, jobProtheus.getJob().trim().replace(".", ""), jobProtheus.getOperacao()); if (!iniciadoJaExiste) { incluiIniciado(conn, jobIniciado); } else { // fazer update jobsiniciados alterando os valores pelo lote mais atual alteraIniciado(conn, jobIniciado); } } } jLTotalAtrasados.setText(Principal.retornaTotalJobsAtrasados(modeloConsultaJobs)); } else { JOptionPane.showMessageDialog(null, "Job não encontrado na SC2010: " + job); } }
public JobProtheus retornaJob(Connection conn, JobLote lote) throws SQLException { ResultSet rs = null; PreparedStatement stmt = null; JobProtheus job = null; String sql = "select job , B1_DESC, operacao , produto, "; sql += " dt_release, job_start_date , qtd_release, setor, qtd_transf "; sql += " from job left join " + DB_PROTHEUS.trim() + ".dbo.SB1000 SB1 "; sql += " on(produto collate SQL_Latin1_General_CP1_CI_AS = B1_COD) "; sql += " where job = ? and operacao = ? and SB1.D_E_L_E_T_ = '' "; sql += " order by dt_release, produto "; stmt = conn.prepareStatement(sql); stmt.setString(1, lote.getJob().trim()); stmt.setInt(2, lote.getOperNum()); rs = stmt.executeQuery(); while (rs.next()) { String nJob = rs.getString("job"); int operacao = rs.getInt("operacao"); String produto = rs.getString("produto"); Date dataEmissao = rs.getDate("dt_release"); Date dataPrevisaoInicio = rs.getDate("job_start_date"); String descricaoProduto = rs.getString("B1_DESC"); double quantidade = rs.getDouble("qtd_release"); String wc = rs.getString("setor"); String emissao = dataEmissao != null ? getDateToString(dataEmissao) : ""; String previsaoInicio = dataPrevisaoInicio != null ? getDateToString(dataPrevisaoInicio) : ""; job = new JobProtheus(); job.setStatus(""); job.setJob(nJob); job.setOperacao(operacao); job.setProduto(produto.trim()); job.setDataEmissao(emissao); job.setQuantidadeLiberada(quantidade); job.setDescricaoProduto(descricaoProduto); job.setCentroTrabalho(wc); double qtdTotal = retornaQtdTotal(conn, job); // calcula o total transferido para o job job.setQuantidadeCompleta(qtdTotal); job.setDataPrivisaoInicio(previsaoInicio); job.setQuantidadeFaltando(quantidade - qtdTotal); // seta o valor qtd faltando } return job; // retorna lista de jobs }