79680780

Date: 2025-06-26 15:40:45
Score: 1
Natty:
Report link
import pandas as pd
from datetime import datetime
import dash
from dash import dcc, html, dash_table
import plotly.graph_objects as go

# Dados
data = {
    'NF': ['17535', '17536'],
    'Qtd Unidades': [308, 1282],
    'Início Sistêmico': [datetime(2024, 6, 24, 10, 15), datetime(2024, 6, 24, 8, 0)],
    'Final Sistêmico': [datetime(2024, 6, 24, 12, 15), datetime(2024, 6, 24, 10, 13)],
    'Início Adequação': [datetime(2024, 6, 24, 13, 15), datetime(2024, 6, 24, 11, 37)],
    'Final Adequação': [datetime(2024, 6, 24, 18, 50), datetime(2024, 6, 24, 17, 2)],
    'Início Amostragem': [datetime(2024, 6, 25, 8, 0), datetime(2024, 6, 24, 17, 3)],
    'Final Amostragem': [datetime(2024, 6, 25, 9, 6), datetime(2024, 6, 24, 17, 56)],
}

df = pd.DataFrame(data)

# Cálculos
df['Tempo Total Processo'] = df['Final Amostragem'] - df['Início Sistêmico']
df['Tempo Adequação'] = df['Final Adequação'] - df['Início Adequação']
df['Tempo Amostragem'] = df['Final Amostragem'] - df['Início Amostragem']
df['Produtividade por Pessoa'] = df['Qtd Unidades'] / 3
df['Tempo Total (h)'] = df['Tempo Total Processo'].dt.total_seconds() / 3600
df['Adequação (h)'] = df['Tempo Adequação'].dt.total_seconds() / 3600
df['Amostragem (h)'] = df['Tempo Amostragem'].dt.total_seconds() / 3600

# App
app = dash.Dash(__name__)
app.title = "Dashboard de NFs"

app.layout = html.Div([
    html.H1("Dashboard de Indicadores de NFs", style={"textAlign": "center"}),

    dcc.Graph(
        figure=go.Figure(data=[
            go.Bar(name='Tempo Total (h)', x=df['NF'], y=df['Tempo Total (h)'], marker_color='blue'),
            go.Bar(name='Adequação (h)', x=df['NF'], y=df['Adequação (h)'], marker_color='orange'),
            go.Bar(name='Amostragem (h)', x=df['NF'], y=df['Amostragem (h)'], marker_color='green')
        ]).update_layout(
            barmode='group',
            title='Comparativo de Tempos por NF',
            xaxis_title='NF',
            yaxis_title='Tempo (horas)',
            legend_title='Fase'
        )
    ),

    html.H2("Tabela de Dados"),
    dash_table.DataTable(
        data=df[['NF', 'Qtd Unidades', 'Tempo Total (h)', 'Adequação (h)', 'Amostragem (h)', 'Produtividade por Pessoa']].round(2).to_dict('records'),
        columns=[{"name": i, "id": i} for i in ['NF', 'Qtd Unidades', 'Tempo Total (h)', 'Adequação (h)', 'Amostragem (h)', 'Produtividade por Pessoa']],
        style_table={'overflowX': 'auto'},
        style_cell={'textAlign': 'center'},
        style_header={'fontWeight': 'bold'},
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)
Reasons:
  • Blacklisted phrase (1): de Dados
  • Long answer (-1):
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: user30901313