Controladores.controladorAtividade.java Source code

Java tutorial

Introduction

Here is the source code for Controladores.controladorAtividade.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Controladores;

import DAO.Model.AtividadeDAO;
import DAO.Model.DicionarioDAO;
import DAO.Model.SprintDAO;
import VO.Model.Atividade;
import VO.Model.Funcionario;
import VO.Model.Sitatividade;
import VO.Model.Sprint;
import VO.Model.Tpprioridade;
import VO.Model.Tptempo;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.ModelAndView;

/**
 *
 * @author Daniel
 */
@Controller
public class controladorAtividade {

    @RequestMapping("nova-atividade-restrito")
    public ModelAndView novaAtividade(int sprintId) {
        Sprint s = SprintDAO.pesquisaSprint(sprintId);
        return montaCadAtividade(new Atividade(), s, "I");
    }

    @RequestMapping("alterar-atividade-restrito")
    public ModelAndView alterarAtividade(int atividadeId) {
        Atividade a = AtividadeDAO.pesquisaAtividade(atividadeId);
        return montaCadAtividade(a, a.getSprint(), "A");
    }

    @RequestMapping("alterar-atividade-funcionario-restrito")
    public ModelAndView alterarAtividadeFuncionario(int atividadeId) {
        Atividade a = AtividadeDAO.pesquisaAtividade(atividadeId);
        return montaCadAtividade(a, a.getSprint(), "U");
    }

    private ModelAndView montaCadAtividade(Atividade a, Sprint sprint, String operacao) {
        ModelAndView mv = new ModelAndView("modal/cad-atividade");
        mv.addObject("atividade", a);
        mv.addObject("sprint", sprint);
        mv.addObject("operacao", operacao);
        mv.addObject("funcAtividadeProjeto", a.getFuncionarioprojeto());
        mv.addObject("listaPrioridade", DicionarioDAO.listarDadosEntidade(Tpprioridade.class));
        mv.addObject("listaTempo", DicionarioDAO.listarDadosEntidade(Tptempo.class));
        mv.addObject("listaSituacao", DicionarioDAO.listarDadosEntidade(Sitatividade.class));
        return mv;
    }

    @RequestMapping("lista-atividade-restrito")
    public ModelAndView listarAtividade(int sprintId) {

        Sprint s = SprintDAO.pesquisaSprint(sprintId);

        ModelAndView mv = new ModelAndView("gridAtividade");
        mv.addObject("listaAtividade", AtividadeDAO.listarAtividades(s));
        return mv;
    }

    @RequestMapping("get-atividades-funcionario-restrito")
    public ModelAndView getAtividadesFuncionario(HttpServletRequest request) {
        HttpSession sessao = request.getSession();
        Funcionario f = (Funcionario) sessao.getAttribute("funcionario");

        ModelAndView mv = new ModelAndView("atividade-funcionario");
        mv.addObject("listaAtividade", AtividadeDAO.listarAtividadesFuncionario(f));

        return mv;
    }

    @RequestMapping(value = "get-funcionarios-projeto", method = RequestMethod.GET, headers = "Accept=*/*", produces = "text/html; charset=UTF-8")
    public @ResponseBody String getFuncionariosProjeto(int projetoId, @RequestParam String funcName) {

        String searchList = new Gson().toJson(AtividadeDAO.getFuncionarios(projetoId, funcName));
        return searchList;
    }

    @RequestMapping("get-funcionario-atividade-restrito")
    public ModelAndView getFuncAtividadeSelecionado(int funcionarioProjetoId) {
        ModelAndView mv = new ModelAndView("modal/funcionarioAtividade");
        mv.addObject("funcAtividadeProjeto", AtividadeDAO.getFuncAtividadeSelecionado(funcionarioProjetoId));
        return mv;
    }

    @RequestMapping("remove-funcionario-atividade-restrito")
    public ModelAndView removeFuncAtividadeSelecionado() {
        ModelAndView mv = new ModelAndView("modal/funcionarioAtividade");
        mv.addObject("funcAtividadeProjeto", null);
        return mv;
    }

    @RequestMapping(value = "salvar-atividade", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public String salvarAtividade(String atividadeJson, String operacao) {

        try {
            Atividade atividade = new Gson().fromJson(atividadeJson, Atividade.class);

            HashMap<String, String> erros = new HashMap<String, String>();

            if (atividade.getNome().trim().length() == 0) {
                erros.put("erroAtividadeNome", "Informe um nome para a atividade!");
            }

            if (atividade.getDescricao().trim().length() == 0) {
                erros.put("erroAtividadeDescricao", "Informe uma descrio para a atividade!");
            }

            if (atividade.getTpprioridade().getId() == 0) {
                erros.put("erroTpPrioridade", "Selecione uma prioridade para a atividade!");
            }

            if (atividade.getSitatividade().getId() == 0) {
                erros.put("erroSitAtividade", "Selecione uma situao para a atividade!");
            }

            if (atividade.getTptempoByTptempoestimadoid().getId() == 0) {
                erros.put("erroTempoEstimado", "Selecione o tempo estimado de concluso da atividade!");
            }

            if (atividade.getSitatividade().getId() == 3) {

                if (atividade.getTptempoByTptempoconclusaoid().getId() == 0) {
                    erros.put("erroTempoConclusao", "Selecione o tempo de concluso!");
                }

                if (atividade.getDescconclusao().length() == 0) {
                    erros.put("erroDescricaoConclusao", "Informe a descricao da conclusao!");
                }
            }

            if (erros.isEmpty()) {

                if (operacao.equalsIgnoreCase("I")) {
                    atividade.setDtcriacao(new Date());
                } else {
                    atividade.setDtalteracao(new Date());
                }

                AtividadeDAO.salvarAtividade(atividade);
            }

            Gson gson = new Gson();
            JsonObject myObj = new JsonObject();

            if (operacao.equalsIgnoreCase("U")) {
                myObj.addProperty("isFuncionario", Boolean.TRUE);
            }

            myObj.addProperty("sucesso", erros.isEmpty());
            JsonElement objetoErrosEmJson = gson.toJsonTree(erros);
            myObj.add("erros", objetoErrosEmJson);

            return myObj.toString();

        } catch (Exception erro) {
            erro.printStackTrace();
            return null;
        }
    }

}