Minimundo
A empresa ManutAir Ltda. tem como atividade a prestação de serviços de manutenção de equipamentos de condicionamento de ar. O quadro de funcionários da empresa é composto de técnicos em ar-condicionado e pessoal administrativo.
A empresa possui contratos com diversos Clientes. Quando um Cliente fecha um novo contrato, ele deve informar ao Atendente a razão social, endereço, CNPJ, nome e telefone do responsável, para o caso de Cliente PJ, ou nome, endereço, telefone e CPF, para o caso de Cliente PF. O sistema busca e exibe os dados do Cliente (tipicamente os dados já́ se encontram cadastrados no sistema). Caso os dados do Cliente ainda não se encontrem cadastrados, esse é o momento de fazê-lo. Em ambos os casos o Cliente informa, também, a lista dos equipamentos cobertos pelo contrato (através de sua marca, modelo e número de série), a data de início da vigência e o prazo de duração em meses.
Os contratos, após cadastrados, recebem do sistema um número. A lista de equipamentos cobertos pode ser alterada com a inclusão ou exclusão de novos equipamentos.
Os Clientes, quando necessitam de algum atendimento, ligam para o número telefônico de solicitação de serviço. As chamadas são recebidas pelos Atendentes que fazem a abertura das Ordens de Serviço (OS), deixando-as com status “Aberta”. Para tal, os Atendentes solicitam ao Cliente o número do contrato (que tipicamente já́ está cadastrado no sistema), o equipamento que necessita reparo (marca, modelo, número de série), o endereço onde este se encontra e uma breve descrição do problema.
O Supervisor Técnico disporá́ de uma funcionalidade para consulta e alocação de novas OS abertas aos técnicos de campo. Ao fazer a alocação de uma OS a um técnico o Supervisor anota o dia, a hora marcada para a visita do Técnico, deixando a OS com status “Em Andamento”.
Os Técnicos realizam as visitas aos Clientes, onde prestam o atendimento solicitado e encerra a OS, atribuindo o status “Concluída”. Ele só deve finalizar a OS quando realmente concluir o serviço.
A empresa recebe de 50 a 70 chamados por dia e trabalha com um Supervisor, 2 Atendentes,15 Técnicos de campo.
- database
- docs
- controller
- domain
- dao
- enumeration
- model
- validator
- util
- resources
- fonts
- fxml
- styles
- target
Para estabelecer o controle de acesso as funções por tipo de usuário (UserTypeEnum), foi criado a classe abstrata AccessProvider. De modo que a partir da consulta do tipo de usuário logado, é retornado uma lista de páginas definida pela classe Page (Composta por nome do arquivo e título). Assim, a classe MainController é capaz de montar com a função generateOptionPages, uma lista de botões para cada página a fim de liberar o acesso a mesma.
Dado a necessidade de válidar as informações inseridas para cada entidade do sistema, foi utilizado o conceito de valitors, onde para cada umas das classes listadas abaixo, criou-se funções booleanas para verificar cada input, ao qual visa permitir ou não que o usuário finalize o processo.
- Client
- Contract
- Equipment
- ServiceOrder
- User
Devido a vasta reuzabilidade de um recurso por grande parte do sistema, diversas classes foram criadas e unificadas no pacote util, e assim fornecer sua usabilidade de forma generica, como é o caso do AccessProvider para fornecer o usuário logado em todas as páginas como uma se fosse uma sessão do navegador, ou ManagerWindow, responsável por abrir e fechar uma tela apenas pelo nome do arquivo fxml e evento de clique do botão, respectivamente.
Foi utilizado a lib Lombok para geração automática dos métodos como getter e setter.
*Senha padrão: 123 *
- admin (Administrador)
- alan (Supervisor)
- marcio (Atendente)
- flavia (Atendente)
- joao (Técnico)
- adriel (Técnico)
- thiago (Técnico)