Ir para o conteúdo

API de Apontamentos

Disponibilizar API que automatize o apontamento de produção, com a menor interferência possível do Operador da máquina neste processo, integrando assim, o FoccoERP com ferramentas de gerenciamento fabril.

Escopo da Integração

  • Permite realizar o apontamento das ordens de fabricação com outros softwares e integrar os dados retornados com o FoccoERP.

  • Permite que o analista de PCP acompanhe os apontamentos das ordens de fabricação.

  • Permite filtrar os apontamentos por ordem de fabricação, centro de trabalho, recurso, operador, data, item.

  • Permite realiza serviço de apontamento das ordens de fabricação através de ferramentas de apontamento, retornando para o FoccoERP:

    • Data de importação da Ordem;

    • Número da Ordem;

    • Código do Item da Ordem;

    • Descrição da Operação;

    • Quantidade na operação da Ordem;

    • Quantidade apontada na operação da Ordem;

    • Quantidade Pendente na Operação da Ordem – Quantidade Apontada;

    • Quantidade de Refugo apontada na operação da Ordem;

    • Motivo do Refugo no retorno.

Situações não tratadas

As situações não tratadas pelo produto estão listadas abaixo:

  • Operações de retrabalho;

  • Destinar refugos

Chamadas WebService

Autenticação

Autenticação

POST

~/Authentication/RequestAccess?User=API&Password={senha usuário API}&AllowNewSession=true

Retorno
{
    "Token": {token},
    "ErrorReason": 0,
    "CustomErrorMessage": null,
    "IsSuccessful": true
}

Logout

Logout

POST

~/Authentication/Logout

Header

Authorization

Bearer { token}

Buscar Centros de Trabalho

Buscar Centros de Trabalho

POST

~/api/Commands/Manufatura.Engenharia.GetCentrosTrabalhoCommand

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)

skip

Quantidade de registros para “saltar”

take

Quantidade de registros que serão retornados

Retorno
{
    "$values": [
        {
            "Codigo": "10",
            "Descricao": "FURAÇÃO",
            "Empresa": {
                "Codigo": 10,
                "NomeFantasia": "BRASILEIRA S/A (TESDES)",
                "RazaoSocial": "FOCCOERP_ORIG_3_17",
                "ID": 10
            },
            "ID": 39
        }
    ]
}

Buscar Recursos (Máquinas)

Buscar Recursos (Máquinas)

POST

~/api/Commands/Manufatura.Producao. GetRecursosIndustriaisByTipoCommand

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)

skip

Quantidade de registros para “saltar”

take

Quantidade de registros que serão retornados

tipoRecursoIndustrial

“ID”: “M”

Retorno
{
    "$values": [
        {
            "$id": "45107",
            "Codigo": "100",
            "Descricao": "APARELHO DE SOLDA  250A TCM 325",
            "Tipo": {
                "ID": "M"
            },
            "ID": 58,
        }
    ]
}

Buscar Ordens de Produção Abertas

Buscar Ordens de Produção Abertas

POST

~/api/Commands/Manufatura.Producao.GetOrdensAbertasCommand

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)

getOrdensRequest

"skip": 0,
"take": 10,
"DtEmissGreaterThanOrEqual":"2010-01-01T00:00:00",
"DtEmissLesserThanOrEqual":"2018-06-31T00:00:00",
"CodigoItem":"",
"MascID": "",
"CodMaquina":"",
"CodCentroTrabalho": ""
Retorno

Para buscar as ordens de produção abertas, no body deve conter o filtro abaixo.

Observação

Os campos podem ser adicionados conforme necessidade de filtro.

Atenção para o formato de data.

{
    "getOrdensRequest":
    {
        "Take":1,
        "Skip":0,
        "DtEmissGreaterThanOrEqual": "2015-06-28T00:00:00",
        "DtEmissLesserThanOrEqual": "",
        "CodigoItem": "CANETA",
        "MascaraID": "",
        "CodigoMaquina": "",
        "CodigoCentroTrabalho": "",
        "OrdemID": "",
        "NumeroOrdem": ""
    }
}

Abaixo, um exemplo do retorno:

{"$values": [{
            "Item": {
                "ItemMascara": {
                    "$id": "50981",
                    "Mascara": "AZUL#CILÍNDRICO",
                    "Ativo": true,
                    "Engenharia": {
                        "$id": "50982"
                        "ItemEngenharia": {
                            "PesoLiquido": 0,
                            "PesoBruto": 0,
                            "Cubagem": 0,
                            "ID": 31733},
                        "PesoLiquido": 0,
                        "PesoBruto": 0,
                        "Cubagem": 0,
                        "ID": 204212},
                    "ItemEmpresa": {
                        "CadastroItem": {
                            "Codigo": "CANETA",
                            "DescTecnica": "ITEM INDUSTRIAL C/ ESTR",
                            "Ativo": true,
                            "ID": 31520},
                        "Empresa": {
                            "Codigo": 10,
                            "NomeFantasia": "BRASILEIRA S/A (TESDES)",
                            "RazaoSocial": "FOCCOERP_ORIG_3_17",
                            "ID": 10 },
                        "ItemPDM": {},
                        "Engenharia": {},
                        "Planejamento": {
                            },
                            "ID": 31467}, "ID": 32449
                    }, "ID": 30861
                    },
                "Mascara": "AZUL#CILÍNDRICO",
                "MascaraID": 30861,
                "Engenharia": {},
                "IsItemConfigurado": true,
                "ItemEmpresa": {},
                "Codigo": "CANETA",
                "DescTecnica": "ITEM INDUSTRIAL C/ ESTR"
            },
            "Numero": 1006,
            "Quantidade": 2,
            "DtEmissao": "2016-12-12T00:00:00-02:00",
            "Observacao": null,
            "TipoOrdem": {
                "$id": "50989",
                "ID": "OFM",
                "Type": 
            },
            "Finalizada": false,
            "RoteirosProducao": {
                "$id": "50990"},
            "ID": 400505
        }
    ]
}

Buscar Ordem pelo ID

Buscar Ordem pelo ID

GET

~/api/Entities/Manufatura.Producao.OrdemProducao/{ID}

Header

Authorization

Bearer { token}

Content-Type

application/json

Retorno
{ 
"Item": {
        "$type": ,
        "ItemMascara": {
            "Mascara": "AZUL#CILÍNDRICO",
            "Ativo": true,
            "Engenharia": {
                "ItemConfigurado": null,
                "ItemEngenharia": {
                    "ItemEmpresa": null,
                    "PesoLiquido": 0,
                    "PesoBruto": 0,
                    "Cubagem": 0,
                    "ID": 31733},
                "PesoLiquido": 0,
                "PesoBruto": 0,
                "Cubagem": 0,
                "ID": 204212},
            "ItemEmpresa": {
                "CadastroItem": {
                    "Codigo": "CANETA",
                    "DescTecnica": "ITEM INDUSTRIAL C/ ESTR",
                    "Ativo": true,
                    "ID": 31520},
                "Empresa": {
                    "Codigo": 10,
                    "NomeFantasia": "BRASILEIRA S/A (TESDES)",
                    "RazaoSocial": "FOCCOERP_ORIG_3_17",
                    "ID": 10},
                "ItemPDM": {},
                "Engenharia": {},
                "Planejamento": {
                    "ItemEmpresa": {},
                    "ID": 31467},
                "ID": 32449},
            "ID": 30861},
        "Mascara": "AZUL#CILÍNDRICO",
        "MascaraID": 30861,
        "Engenharia": {},
        "ItemEmpresa": {},
        "Codigo": "CANETA",
        "DescTecnica": "ITEM INDUSTRIAL C/ ESTR"
    },
    "Numero": 1006,
    "Quantidade": 2,
    "DtEmissao": "2016-12-12T00:00:00-02:00",
    "Observacao": null,
    "TipoOrdem": {
        "ID": "OFM",
        "Type": 
    },
    "Finalizada": false,
    "RoteirosProducao": {},
    "ID": 400505
}

Buscar Recurso pelo ID

Buscar Recurso pelo ID

GET

~/api/Entities/Manufatura.Producao.RecursoIndustrial/{ID}

Header

Authorization

Bearer { token}

Content-Type

application/json

Retorno
{
    "Codigo": "100",
    "Descricao": "APARELHO DE SOLDA  250A TCM 325",
    "Tipo": {
        "ID": "M"
},
    "ID": 58
}

Buscar Centro de Trabalho pelo ID

Buscar Centro de Trabalho pelo ID

GET

~/api/Entities/Manufatura.Engenharia.CentroTrabalho/{ID}

Header

Authorization

Bearer { token}

Content-Type

application/json

Retorno
{
    "Codigo": "10",
    "Descricao": "FURAÇÃO",
    "Empresa": {
        "Codigo": 10,
        "NomeFantasia": "BRASILEIRA S/A (TESDES)",
        "RazaoSocial": "FOCCOERP_ORIG_3_17",
        "ID": 10
    },
    "ID": 39
}

Causa de Refugo

Causa de Refugo

POST

~/api/Commands/Manufatura.Producao.Apontamento.GetCausasRefugoCommand

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)

skip

Quantidade de registros para “saltar”

take

Quantidade de registros que serão retornados

Retorno
{
"$values":[
        {
            "Codigo": 1,
            "Descricao": "MATÉRIA PRIMA COM PROBLEMA",
            "Empresa": null,
            "ID": 1
        }
    ]
}

Motivos de Refugo

Motivos de Refugo

POST

~/api/Commands/Manufatura.Producao.Apontamento.GetMotivosRefugoCommand

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)

skip

Quantidade de registros para “saltar”

take

Quantidade de registros que serão retornados

Retorno
{
    "$values": [
        {
            "Codigo": 1,
            "Descricao": "FURAÇÃO ERRADA",
            "GrupoMotivoRefugo": null,
            "Ativo": true,
            "ID": 6
    },
        {
            "Codigo": 2,
            "Descricao": "DIMENSÃO ERRADA",
            "GrupoMotivoRefugo": null,
            "Ativo": true,
            "ID": 7
        },
        {
            "Codigo": 3,
            "Descricao": "FALHA MATÉRIA PRIMA",
            "GrupoMotivoRefugo": null,
            "Ativo": true,
            "ID": 8
        }
    ]

Funcionários

Funcionários

POST

~/api/Commands/Utilitarios.Funcionario.GetFuncionariosCommand

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)

skip

Quantidade de registros para “saltar”

take

Quantidade de registros que serão retornados

Retorno
{“$values”: [{
"Codigo": ”1”,
            "Nome": "FOCCO3I",
            "Ativo": true,
            "Usuario": {
                "Login": "FOCCO3I",
                "LoginLDAP": null,
                "Nome": "FOCCO3I",
                "Email": "teste@focco.com.br",
                "Ativo": true,
                "DtInicio": "1980-01-01T00:00:00-02:00",
                "DtFim": "2020-12-01T00:00:00-02:00",
                "ID": 1},
            "Funcoes": [{
                    "ID": "CMPR",
                    "Description": "Comprador"},
                {
                    "ID": "FUNC",
                    "Description": "Funcionário"},],
            "ID": 1369
        }]}

Apontamentos por Operação da Ordem

Apontamentos por Operação da Ordem

POST

~/api/Commands/Manufatura.Producao.Apontamento.GetApontamentosByOrdemRoteiroCommand

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)

skip

Quantidade de registros para “saltar”

take

Quantidade de registros que serão retornados

ordemRoteiroID

ID do roteiro da Ordem

Retorno
{
    "$values": [
        {
            "Quantidade": 1,
            "DataApontamento": "2018-07-06T00:00:00-03:00",
            "TipoApontamento": {
                "ID": "TP",
                "Description": "Tempo Padrão"
            },
            "DataHoraInicio": null,
            "DataHoraFim": null,
            "Tempo": null,
            "Intervalo": 0,
            "Funcionario": {
                "Codigo": "1",
                "Nome": "FOCCO3I",
                "ID": 1369
            },
            "Final": true,
            "Usuario": "JOAO (MAQUINA-043) / joao.silva / DOMINIO\\MAQUINA-043",
            "QuantidadeRefugos": 2,
            "Refugos": {
        "$values": [
                    {
                        "Quantidade": 2,
                        "Motivo": {
                            "Codigo": 3,
                            "Descricao": "FALHA MATÉRIA PRIMA",
                            "Ativo": true,
                            "ID": 8
                        },
                        "Causa": {
                            "Codigo": 1,
                            "Descricao": "MATÉRIA PRIMA COM PROBLEMA",
                            "ID": 1
                        },
                        "ID": 97
                    }
                ]
            },
            "OrigemApontamento": "API",
            "ApontamentoMaquina": {
                "Maquina": {
                    "$id": "33",
                    "Codigo": "110",
                    "Descricao": "FURADEIRA",
                    "Ativo": true,
                    "Tipo": {
                        "ID": "M",
                        "Description": "Máquina"
                    },
                    "ID": 68,
                },
                "ID": 329625
            },
            "ID": 266503
        }
    ]

Incluir Apontamento

Incluir Apontamento

POST

~/api/Entities/Manufatura.Producao.Apontamento.ApontamentoProducao

Header

Authorization

Bearer { token}

Content-Type

application/json

Body (JSON)

Enviar Json do apontamento conforme exemplos abaixo

Retorno
{
    "ConcurrencyErrorOccurred": false,
    "Succeeded": false,
    "AnySucceeded": false,
    "Failed": true,
    "AllFailed": true,
    "BaseErrorMessage": null,
    "ErrorMessage": {mensagem do erro},
    "Exception": null
}

JSON Incluir Apontamento Tempo Padrão

JSON Incluir Apontamento Tempo Padrão
{
    "OrdemRoteiro": {
        "ID":332945
    },
    "Quantidade": 1,
    "DataApontamento": "2018-07-06T11:01:14-03:00",
    "TipoApontamento": {
        "ID": "TP"
    },
    "DataHoraInicio": null,
    "DataHoraFim": null,
    "Tempo": null,
    "Intervalo": 0,
    "Funcionario": {
        "ID": 1369
    },
    "Final": false,
    "Usuario": "Apontamento API",
    "Refugos": {
        "$values": []
    },
    "OrigemApontamento": "API",
    "ApontamentoMaquina": {
        "Maquina": {
            "ID": 68
        }
    }
}

JSON Incluir Apontamento Intervalo de Hora

JSON Incluir Apontamento Intervalo de Hora
{
    "OrdemRoteiro": {
        "ID":333479
    },
    "Quantidade": 1,
    "DataApontamento": null,
    "TipoApontamento": {
        "ID": "IH"
    },
    "DataHoraInicio": "2018-07-06T08:00:00-03:00",
    "DataHoraFim": "2018-07-06T09:00:00-03:00",
    "Tempo": null,
    "Intervalo": 0,
    "Funcionario": {
        "ID": 1369
    },
    "Final": false,
    "Usuario": "Apontamento API",
    "Refugos": {
        "$values": []
    },
    "OrigemApontamento": "API",
    "ApontamentoMaquina": {
        "Maquina": {
            "ID": 68
        }
    }

JSON Incluir Apontamento Tempo Total

JSON Incluir Apontamento Tempo Total
{
    "OrdemRoteiro": {
        "ID":333479
    },
    "Quantidade": 1,
    "DataApontamento": null,
    "TipoApontamento": {
        "ID": "TT"
    },
    "DataHoraInicio": null,
    "DataHoraFim": null,
    "Tempo": 1,
    "Intervalo": 0,
    "Funcionario": {
        "ID": 1369
    },
    "Final": false,
    "Usuario": "Apontamento API",
    "Refugos": {
        "$values": []
    },
    "OrigemApontamento": "API",
    "ApontamentoMaquina": {
        "Maquina": {
            "ID": 68
        }
    }

JSON Incluir Apontamento com Refugo

JSON Incluir Apontamento com Refugo
{
    "OrdemRoteiro": {
        "ID":333479
    },
    "Quantidade": 0,
    "DataApontamento": null,
    "TipoApontamento": {
        "ID": "TT"
    },
    "DataHoraInicio": null,
    "DataHoraFim": null,
    "Tempo": 1,
    "Intervalo": 0,
    "Funcionario": {
        "ID": 1369
    },
    "Final": false,
    "Usuario": "Apontamento API",
    "Refugos": {
        "$values": [
            {
                "Quantidade": 2,
                "Motivo": {
                    "ID": 8
                },
                "Causa": {
                    "ID": 1
                }
            }
        ]
    },
    "OrigemApontamento": "API",
    "ApontamentoMaquina": {
        "Maquina": {
            "ID": 68
        }
    }

JSON Incluir Apontamento com Ferramenta

JSON Incluir Apontamento com Ferramenta
{
    "OrdemRoteiro": {
        "ID":332945
    },
    "Quantidade": 1,
    "DataApontamento": "2018-07-06T11:01:14-03:00",
    "TipoApontamento": {
        "ID": "TP"
    },
    "DataHoraInicio": null,
    "DataHoraFim": null,
    "Tempo": null,
    "Intervalo": 0,
    "Funcionario": {
        "ID": 1369
    },
    "Final": false,
    "Usuario": "Apontamento API",
    "Refugos": {
        "$values": []
    },
    "OrigemApontamento": "API",
    "ApontamentoMaquina": {
        "Maquina": {
            "ID": 68
        },
        "ApontamentoFerramentas": {
            "$values": [
                {
                    "Ferramenta":{
                        "ID": 70
                    }
                }
            ]
        }
    }
}

Excluir Apontamento

Excluir Apontamento

DELETE

~/api/Entities/Manufatura.Producao.Apontamento.ApontamentoProducao/{ID}

Header

Authorization

Bearer { token}

Content-Type

application/json

Retorno
{
    "ConcurrencyErrorOccurred": false,
    "Succeeded": false,
    "AnySucceeded": false,
    "Failed": true,
    "AllFailed": true,
    "BaseErrorMessage": null,
    "ErrorMessage": {mensagem do erro},
    "Exception": null
}

Retornar Lista de Motivos de Paradas de Máquina

Retornar Lista de Motivos de Paradas de Máquina

POST

~/api/Commands/Manufatura.Producao.CadastrosAuxiliares. GetMotivosApontParadaMaquina

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)
getOrdensRequest    "skip": 0,
"take": 0
Retorno
{
    "$values": [
        {
            "Codigo": 100,
            "Descricao": "ABASTECIMENTO",
            "ID": 184
        }
    ]
}

Retornar Lista das Paradas de Máquina

Retornar Lista das Paradas de Máquina

POST

~/api/Commands/Manufatura.Producao. GetApontamentosParadaByMaquinaCommand

Header

Authorization

Bearer { token}

Content-Type

application/json

X-EMPR-ID

{ID da Empresa}

Body (JSON)

getOrdensRequest

"maquinaID": 100,
"skip": 0,
"take": 0,
Retorno
{
    "$values": [
        {
            "DataHoraInicio": "2018-07-17T08:00:00-03:00",
            "DataHoraFim": "2018-07-17T09:00:00-03:00",
            "Maquina": {
                "Codigo": "100",
                "Descricao": "APARELHO DE SOLDA  250A TCM 325",
                "Ativo": true,
                "Tipo": {
                    "ID": "M",
                    "Description": "Máquina"
                },
                "ID": 58
            },
            "Funcionario": {
                "Codigo": "1",
                "Nome": "FOCCO3I",
                "Ativo": true,
                "Funcoes": [
                    {
                        "ID": "CMPR",
                        "Description": "Comprador"
                    },
                    {
                        "ID": "DIRE",
                        "Description": "Diretor"
                    }
                ],
                "ID": 1369
            },
            "OrdemProducao": null,
            "OrdemRoteiro": null,
            "MotivoApontParadaMaquina": {
                "Codigo": 100,
                "Descricao": "ABASTECIMENTO",
                "ID": 184
            },
            "Tempo": 1,
            "ID": 164
        },
    ]
}

Inclusão de Parada de Máquina

Inclusão de Parada de Máquina

POST

~/api/Entities/Manufatura.Producao. ApontamentoParadaMaquina

Header

Authorization

Bearer { token}

Content-Type

application/json

Body
{
    "Empresa": {
        "ID":10
    },
    "DataHoraInicio": "2018-07-17T08:00:00-03:00",
    "DataHoraFim": "2018-07-17T09:00:00-03:00",
    "Maquina": {
        "ID": 58
    },
    "Funcionario": {
        "ID": 1369
    },
    "OrdemProducao": {
        "ID": 15442
    },
    "OrdemRoteiro": {
        "ID": 30587
    },
    "MotivoApontParadaMaquina": {
        "ID": 184
    }
}
Retorno
{
    "ConcurrencyErrorOccurred": false,
    "Succeeded": false,
    "AnySucceeded": false,
    "Failed": true,
    "AllFailed": true,
    "BaseErrorMessage": null,
    "ErrorMessage": {mensagem do erro},
    "Exception": null
}

Exclusão de Parada de Máquina

Exclusão de Parada de Máquina

DELETE

~/api/Entities/Manufatura.Producao. ApontamentoParadaMaquina/{ID}

Header

Authorization

Bearer { token}

Content-Type

application/json

Retorno
{
    "ConcurrencyErrorOccurred": false,
    "Succeeded": false,
    "AnySucceeded": false,
    "Failed": true,
    "AllFailed": true,
    "BaseErrorMessage": null,
    "ErrorMessage": {mensagem do erro},
    "Exception": null
}