org.oep.cmon.admin.portlet.action.ChucVuVaiTroAction.java Source code

Java tutorial

Introduction

Here is the source code for org.oep.cmon.admin.portlet.action.ChucVuVaiTroAction.java

Source

/*
 * Copyright (c) 2014 by Open eGovPlatform (http://http://openegovplatform.org/).
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *  http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.oep.cmon.admin.portlet.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;

import org.oep.cmon.admin.portlet.util.ConvertUtil;
import org.oep.cmon.admin.portlet.util.SetParamUtil;

import org.oep.cmon.dao.cc.model.ChucVu;
import org.oep.cmon.dao.cc.service.ChucVuLocalServiceUtil;
import org.oep.cmon.dao.nsd.model.VaiTro;
import org.oep.cmon.dao.nsd.service.VaiTroLocalServiceUtil;
import org.oep.cmon.dao.qlhc.model.ChucVu2VaiTro;
import org.oep.cmon.dao.qlhc.model.ChucVu2VaiTroClp;
import org.oep.cmon.dao.qlhc.model.CoQuanQuanLy;

import org.oep.cmon.dao.qlhc.service.ChucVu2VaiTroLocalServiceUtil;
import org.oep.cmon.dao.qlhc.service.CoQuanQuanLyLocalServiceUtil;

import com.liferay.counter.service.CounterLocalServiceUtil;
import com.liferay.portal.kernel.dao.orm.Criterion;
import com.liferay.portal.kernel.dao.orm.DynamicQuery;
import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil;
import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.servlet.SessionErrors;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.WebKeys;
import com.liferay.portal.theme.ThemeDisplay;

/**
 * This is class ChucVuVaiTroAction
 * Version: 1.0
 *  
 * History: 
 *   DATE        AUTHOR      DESCRIPTION 
 *  ------------------------------------------------- 
 *  3-March-2013  Nam Dinh    Create new
 */
public class ChucVuVaiTroAction {

    /**
     * This is function delete ChucVu2VaiTroRequest
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @param actionRequest
     * @param actionResponse
     * @throws Exception
     */
    public void deleteChucVu2VaiTroRequest(ActionRequest actionRequest, ActionResponse actionResponse)
            throws Exception {
        // Get search keyword, the keyword can either be Ten
        String keyWord = actionRequest.getParameter("searchKeyWord");

        // Get search keyword, the keyword is code
        String chucVuVaiTroId = ParamUtil.getString(actionRequest, "chucVuVaiTroId");
        String coQuanQuanLyId = ParamUtil.getString(actionRequest, "coQuanQuanLyId");

        // Process Jason feed
        try {
            ChucVu2VaiTroLocalServiceUtil.deleteChucVu2VaiTro(ConvertUtil.convertToLong(chucVuVaiTroId));
            actionRequest.setAttribute("delete_success", "delete_success");
        } catch (Exception es) {
            SetParamUtil.printException(es);
            SessionErrors.add(actionRequest, "errorDeleteChucVu2VaiTro");
        }

        // Hidden default error message
        actionResponse.setRenderParameter("chucVuVaiTroId", chucVuVaiTroId);
        actionResponse.setRenderParameter("coQuanQuanLyId", coQuanQuanLyId);
        SetParamUtil.setParameter(actionRequest, actionResponse, keyWord);
        actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/dm_co_quan_quan_ly_chuc_vu_list_cv.jsp");
    }

    /**
     * This is function edit or add ChucVu2VaiTroRequest
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @param actionRequest
     * @param actionResponse
     * @throws Exception
     */
    public void editOrAddChucVuVaiTroRequest(ActionRequest actionRequest, ActionResponse actionResponse)
            throws Exception {
        // Get params
        ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
        String keyWord = actionRequest.getParameter("searchKeyWord");
        String actionType = ParamUtil.getString(actionRequest, "actionType");
        String coQuanQuanLyId = ParamUtil.getString(actionRequest, "coQuanQuanLyId");
        String chucVuId = ParamUtil.getString(actionRequest, "chucVuId").trim();
        String vaiTroId = ParamUtil.getString(actionRequest, "vaiTroId").trim();
        String chucVuVaiTroId = ParamUtil.getString(actionRequest, "chucVuVaiTroId").trim();

        if (validationInput(chucVuId, vaiTroId, chucVuVaiTroId, coQuanQuanLyId, actionRequest)) {
            ChucVu2VaiTro doiTuongSuDung = null;
            if (chucVuVaiTroId.trim().length() > 0 && ConvertUtil.convertToLong(chucVuVaiTroId) > 0) {
                try {
                    doiTuongSuDung = ChucVu2VaiTroLocalServiceUtil
                            .fetchChucVu2VaiTro(ConvertUtil.convertToLong(chucVuVaiTroId));
                    doiTuongSuDung.setNguoiSua(themeDisplay.getUser().getEmailAddress());
                    doiTuongSuDung.setNgaySua(new Date());
                    doiTuongSuDung.setChucVuId(ConvertUtil.convertToLong(chucVuId));
                    doiTuongSuDung.setVaiTroId(ConvertUtil.convertToLong(vaiTroId));

                    ChucVu2VaiTroLocalServiceUtil.updateChucVu2VaiTro(doiTuongSuDung);
                    actionResponse.setRenderParameter("CompletedUpdateChucVu2VaiTro",
                            "CompletedUpdateChucVu2VaiTro");
                    actionResponse.setRenderParameter("completed", "completed");
                } catch (Exception es) {
                    SetParamUtil.printException(es);
                    SessionErrors.add(actionRequest, "errorUpdateChucVu2VaiTro");
                }
            } else {
                try {
                    doiTuongSuDung = new ChucVu2VaiTroClp();
                    doiTuongSuDung.setId(CounterLocalServiceUtil.increment(ChucVu2VaiTro.class.getName()));
                    doiTuongSuDung.setChucVuId(ConvertUtil.convertToLong(chucVuId));
                    doiTuongSuDung.setVaiTroId(ConvertUtil.convertToLong(vaiTroId));
                    doiTuongSuDung.setCoQuanQuanLyId(ConvertUtil.convertToLong(coQuanQuanLyId));
                    doiTuongSuDung.setNgaySua(new Date());
                    doiTuongSuDung.setNguoiSua(themeDisplay.getUser().getEmailAddress());
                    doiTuongSuDung.setNgayTao(new Date());
                    doiTuongSuDung.setNguoiTao(themeDisplay.getUser().getEmailAddress());
                    ChucVu2VaiTroLocalServiceUtil.addChucVu2VaiTro(doiTuongSuDung);
                    actionResponse.setRenderParameter("CompletedAddChucVu2VaiTro", "CompletedAddChucVu2VaiTro");
                    actionResponse.setRenderParameter("completed", "completed");
                    chucVuId = "";
                    vaiTroId = "";
                } catch (Exception es) {
                    SetParamUtil.printException(es);
                    SetParamUtil.printError(doiTuongSuDung.toString());
                    SessionErrors.add(actionRequest, "errorAddChucVu2VaiTro");
                }
            }
        }

        // Set the result back to session
        actionResponse.setRenderParameter("ActionType", actionType);
        actionResponse.setRenderParameter("coQuanQuanLyId", coQuanQuanLyId);
        actionResponse.setRenderParameter("chucVuVaiTroId", chucVuVaiTroId);
        actionResponse.setRenderParameter("chucVuId", chucVuId);
        actionResponse.setRenderParameter("vaiTroId", vaiTroId);
        actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/dm_co_quan_quan_ly_chuc_vu_add_cv.jsp");

        SetParamUtil.setParameter(actionRequest, actionResponse, keyWord);
    }

    /**
     * This is function search CoQuanQuanLyRequest
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @param actionRequest
     * @param actionResponse
     * @throws Exception
     */
    public void searchCoQuanQuanLyRequest(ActionRequest actionRequest, ActionResponse actionResponse)
            throws Exception {
        // Get search keyword, the keyword can either be Ten
        String keyWord = ParamUtil.getString(actionRequest, "searchKeyWord");
        String keyWordHidden = ParamUtil.getString(actionRequest, "searchKeyWordHidden");
        if (keyWordHidden.compareTo(keyWord) == 0) {
            keyWord = "";
        }

        List<CoQuanQuanLy> results = findByCoQuanQuanLy(keyWord);

        // Set the result back to session
        actionRequest.setAttribute("SEARCH_REQUEST_RESULT", results);
        actionResponse.setRenderParameter("searchKeyWord", keyWord);
        actionRequest.getPortletSession().setAttribute("searchKeyWord", keyWord);
        actionResponse.setRenderParameter("jspPage",
                "/html/portlet/admin/dm_co_quan_quan_ly_chuc_vu_list_cqql.jsp");
    }

    /**
     * This is function find CoQuanQuanLy by keyWord
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @param keyWord
     * @return List<CoQuanQuanLy>
     */
    public List<CoQuanQuanLy> findByCoQuanQuanLy(String keyWord) {
        List<CoQuanQuanLy> results = null;

        if (keyWord.trim().length() > 0) {
            // Query code request using keyword
            DynamicQuery query = DynamicQueryFactoryUtil.forClass(CoQuanQuanLy.class);

            // This is a test line for display all request if there's no search criteria
            Criterion criteriaTen = RestrictionsFactoryUtil.ilike("ten", "%" + keyWord + "%");
            Criterion criteriaMa = RestrictionsFactoryUtil.ilike("ma", "%" + keyWord + "%");
            Criterion criteria = RestrictionsFactoryUtil.or(criteriaTen, criteriaMa);
            Criterion criteriaTrangThai = RestrictionsFactoryUtil.eq("daXoa", 0);

            // Define search criteria
            query = query.add(RestrictionsFactoryUtil.and(criteria, criteriaTrangThai));

            try {
                results = CoQuanQuanLyLocalServiceUtil.dynamicQuery(query);
            } catch (SystemException e) {
            }
        } else {
            try {
                DynamicQuery query = DynamicQueryFactoryUtil.forClass(CoQuanQuanLy.class);

                // This is a test line for display all request if there's no search criteria
                Criterion criteriaTrangThai = RestrictionsFactoryUtil.eq("daXoa", 0);

                // Define search criteria
                query = query.add(criteriaTrangThai);

                results = CoQuanQuanLyLocalServiceUtil.dynamicQuery(query);
            } catch (SystemException e) {
            }
        }

        if (results == null) {
            results = new ArrayList<CoQuanQuanLy>();
        }
        return results;
    }

    /**
     * This is function find VaiTro by coQuanQuanLyId and chucVuId
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @param coQuanQuanLyId
     * @param chucVuId
     * @return List<VaiTro>
     */
    public List<VaiTro> findVaiTroByCoQuanQuanLyIdAndChucVuId(long coQuanQuanLyId, long chucVuId) {
        List<VaiTro> results = null;

        if (coQuanQuanLyId > 0 && chucVuId > 0) {
            try {
                List<ChucVu2VaiTro> listChucVu2VaiTros = ChucVu2VaiTroLocalServiceUtil
                        .findByIdChucVuAndIdCoQuanQuanLy(chucVuId, coQuanQuanLyId, 0);
                try {
                    List<Object> listVaiTroId = new ArrayList<Object>();
                    for (ChucVu2VaiTro chucVu2VaiTro : listChucVu2VaiTros) {
                        listVaiTroId.add(chucVu2VaiTro.getVaiTroId());
                    }
                    if (listVaiTroId.size() > 0) {
                        DynamicQuery query = DynamicQueryFactoryUtil.forClass(VaiTro.class);
                        Criterion criteriaMa = RestrictionsFactoryUtil.in("id", listVaiTroId.toArray());
                        Criterion criteriaTrangThai = RestrictionsFactoryUtil.eq("daXoa", 0);
                        Criterion criteria = RestrictionsFactoryUtil.and(criteriaTrangThai, criteriaMa);

                        // Define search criteria
                        query = query.add(criteria);

                        results = VaiTroLocalServiceUtil.dynamicQuery(query);
                    }
                } catch (SystemException e) {
                }
            } catch (Exception e) {
            }
        }

        if (results == null) {
            results = new ArrayList<VaiTro>();
        }
        return results;
    }

    /**
     * This is function find ChucVu by coQuanQuanLyId and coQuanQuanLyId
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @param coQuanQuanLyId
     * @return List<ChucVu2VaiTro>
     */
    public List<ChucVu2VaiTro> findChucVuByCoQuanQuanLyId(long coQuanQuanLyId) {

        if (coQuanQuanLyId > 0) {
            try {
                List<ChucVu2VaiTro> listChucVu2VaiTros = ChucVu2VaiTroLocalServiceUtil
                        .findByIdCoQuanQuanLyAndDaXoa(coQuanQuanLyId, 0);
                return listChucVu2VaiTros;
            } catch (Exception e) {
            }
        }

        return new ArrayList<ChucVu2VaiTro>();
    }

    /**
     * This is function find ChucVu by TrangThai
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @return List<ChucVu>
     */
    public List<ChucVu> findChucVuByTrangThai() {
        DynamicQuery query = DynamicQueryFactoryUtil.forClass(ChucVu.class);

        // This is a test line for display all request if there's no search criteria
        Criterion criteriaTrangThai = RestrictionsFactoryUtil.eq("daXoa", 0);

        // Define search criteria
        query = query.add(criteriaTrangThai);

        try {
            return ChucVuLocalServiceUtil.dynamicQuery(query);
        } catch (SystemException e) {
        }
        return new ArrayList<ChucVu>();
    }

    /**
     * This is function find VaiTro by TrangThai
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @return List<VaiTro>
     */
    public List<VaiTro> findVaiTroByTrangThai() {
        DynamicQuery query = DynamicQueryFactoryUtil.forClass(VaiTro.class);

        // This is a test line for display all request if there's no search criteria
        Criterion criteriaTrangThai = RestrictionsFactoryUtil.eq("daXoa", 0);

        // Define search criteria
        query = query.add(criteriaTrangThai);

        try {
            return VaiTroLocalServiceUtil.dynamicQuery(query);
        } catch (SystemException e) {
        }
        return new ArrayList<VaiTro>();
    }

    /**
     * This is  function check validation input
     * Version: 1.0
     *  
     * History: 
     *   DATE        AUTHOR      DESCRIPTION 
     *  ------------------------------------------------- 
     *  3-March-2013  Nam Dinh    Create new
     * @param chucVuId
     * @param vaiTroId
     * @param chucVuVaiTroId
     * @param coQuanQuanLyId
     * @param actionRequest
     * @return boolean
     */
    private boolean validationInput(String chucVuId, String vaiTroId, String chucVuVaiTroId, String coQuanQuanLyId,
            ActionRequest actionRequest) {
        if (chucVuId.trim().length() == 0 || ConvertUtil.convertToLong(chucVuId) == 0) {
            SessionErrors.add(actionRequest, "emptyChucVuIdChucVu2VaiTro");
        }
        if (vaiTroId.trim().length() == 0 || ConvertUtil.convertToLong(vaiTroId) == 0) {
            SessionErrors.add(actionRequest, "emptyVaiTroIdChucVu2VaiTro");
        }

        if (SessionErrors.isEmpty(actionRequest)) {
            DynamicQuery query = DynamicQueryFactoryUtil.forClass(ChucVu2VaiTro.class);

            // This is a test line for display all request if there's no search criteria
            Criterion criteriaChucVu = RestrictionsFactoryUtil.eq("chucVuId", ConvertUtil.convertToLong(chucVuId));
            Criterion criteriaVaiTro = RestrictionsFactoryUtil.eq("vaiTroId", ConvertUtil.convertToLong(vaiTroId));
            Criterion criteriaDaXoa = RestrictionsFactoryUtil.eq("daXoa", 0);
            Criterion criteriaCoQuanQuanLyId = RestrictionsFactoryUtil.eq("coQuanQuanLyId",
                    ConvertUtil.convertToLong(coQuanQuanLyId));

            // Define search criteria
            query = query.add(criteriaChucVu).add(criteriaVaiTro).add(criteriaCoQuanQuanLyId).add(criteriaDaXoa);
            try {
                List<ChucVu2VaiTro> listChucVu2VaiTro = ChucVu2VaiTroLocalServiceUtil.dynamicQuery(query);
                if (listChucVu2VaiTro.size() > 0) {
                    if (chucVuVaiTroId.trim().length() > 0) {
                        ChucVu2VaiTro chucVu2VaiTro = listChucVu2VaiTro.get(0);
                        if (chucVu2VaiTro.getId() != ConvertUtil.convertToLong(chucVuVaiTroId)) {
                            SessionErrors.add(actionRequest, "exitChucVu2VaiTro");
                        }
                    } else {
                        SessionErrors.add(actionRequest, "exitChucVu2VaiTro");
                    }
                }
            } catch (SystemException e) {
            }
        }
        if (SessionErrors.isEmpty(actionRequest)) {
            return true;
        }

        return false;
    }
}