⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proactreqhandler.java.svn-base

📁 一个timesheet程序,用来统计开发人员的度量衡web在线程序.用于软件行业
💻 SVN-BASE
字号:
package com.nsi.components.proactivity;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.nsi.components.util.ActInfoUtil;
import com.nsi.constants.AppConstants;
import com.nsi.control.event.NsiEvent;
import com.nsi.control.exceptions.NsiEventException;
import com.nsi.control.web.ModelManager;
import com.nsi.control.web.handles.ReqHandler;
import com.nsi.control.web.util.WebModelUtil;
import com.nsi.util.ValHelper;

/**
 * @author Chris Ye, created on Oct 8, 2008
 *
 * ProActReqHandler
 */
public class ProActReqHandler implements ReqHandler
{
	private static Log log = LogFactory.getLog(ProActReqHandler.class);
	/**
	 * @see com.nsi.control.web.handles.ReqHandler#processRequest(javax.servlet.http.HttpServletRequest)
	 */
	public NsiEvent processRequest(HttpServletRequest request,HttpServletResponse response) throws NsiEventException
	{
		NsiEvent event = null;
		String action = request.getParameter("action");
		if( ValHelper.getInstance().isNotNullAndEmpty(action))
		{
			String actcatid = request.getParameter("actcatid");
			String projstatus = request.getParameter("projectstatus") != null ? request.getParameter("projectstatus") : "";
			ProActWebInfo info = new ProActWebInfo(projstatus, actcatid);
			String inserttype = request.getParameter("inserttype");
			if(action.equalsIgnoreCase("updateProAct")) event = createUpdateProActivityEvent(request);
			else if(action.equalsIgnoreCase("displayProAct")) event = createDisplayProActivityEvent(request);
			else if(action.equalsIgnoreCase("addProAct"))
			{
				setAddInfo(info, request, inserttype);
				if("2".equals(inserttype))
				{
					event = createUpdateProActivityEvent(request);
				}
				else
				{
					event = createAddProActivityEvent(request);
				}
			}
			request.getSession().setAttribute("actwebinfo", info);
		}
		return event;
	}
	private NsiEvent createDisplayProActivityEvent(HttpServletRequest req) throws NsiEventException
	{
		ProActivityEvent event = new ProActivityEvent(1);
		String projectid = req.getParameter("projectid").trim();
		ProActivityInfo info = new ProActivityInfo();
		info.setProjectid(projectid);
		ModelManager mm = (ModelManager)req.getSession().getAttribute(AppConstants.ModelManagerKey);
		WebModelUtil.getInstance().getProActivityModel(mm).copy(info);
		event.setInfo(info);
		return event;
	}
	private NsiEvent createUpdateProActivityEvent(HttpServletRequest req) throws NsiEventException
	{
		ProActivityEvent event = new ProActivityEvent(2);
		ModelManager mm = (ModelManager)req.getSession().getAttribute(AppConstants.ModelManagerKey);
		String loginuser = mm.getLoginuser().getResourceid();
		String projectid = req.getParameter("projectid").trim();
		ProActivityInfo info = new ProActivityInfo();
		info.setProjectid(projectid);
		int rows = prepareActivityInfo( req,info,projectid);	
		log.debug("createUpdateProActivityEvent() -- rows[" + rows + "]");
		WebModelUtil.getInstance().getProActivityModel(mm).copy(info);
		event.setLoginUser(loginuser.trim());
		event.setInfo(info);
		return event;
	}
	private NsiEvent createAddProActivityEvent(HttpServletRequest req) throws NsiEventException
	{
		ProActivityEvent event = new ProActivityEvent(2);
		ModelManager mm = (ModelManager)req.getSession().getAttribute(AppConstants.ModelManagerKey);
		String loginuser = mm.getLoginuser().getResourceid();
		String projectid = req.getParameter("projectid").trim();
		ProActivityInfo info = new ProActivityInfo();
		info.setProjectid(projectid);
		int rows = prepareActivityInfo( req,info,projectid);		
		String actcatid = req.getParameter("actcatid").trim();
		String projectcode = req.getParameter("projectcode");
		List<ActInfo> actlist = ActInfoUtil.getInstance().getCollection(actcatid);
		if( !actlist.isEmpty())
		{
			int size = actlist.size();
			for (int i = 0; i < size; i++)
			{
				boolean exist = false;
				ProActDetail detail = new ProActDetail();
				String actid = actlist.get(i).getActid();
				for (int j = 0; j < rows; j++)
				{
					String inputactid = req.getParameter("actid" + j).trim();
					exist = actid.equals(inputactid);
					if(exist)
					{
						log.debug("createAddProActivityEvent() -- actid[" + actid + "], inputactid[" + inputactid + "]");
						break;
					}
				}
				detail.setActid(actid);
				if(!exist)
				{
					detail.setProactid(AppConstants.EMPTY_STRING);
					detail.setProjectid(projectid);
					detail.setActive("T");
					if( (ValHelper.getInstance().isNotNullAndEmpty(projectcode)) && "INT".equals(projectcode.substring(0, 3)))
					{
						detail.setBillable("F");
					}
					else  
					{
						detail.setBillable("T");
					}
					info.getDetaillist().add(detail);
				}
			}
		}
		WebModelUtil.getInstance().getProActivityModel(mm).copy(info);
		event.setLoginUser(loginuser.trim());
		event.setInfo(info);
		return event;
	}
	private void setAddInfo(ProActWebInfo info, HttpServletRequest req, String inserttype )
	{
		String addnum = "0";
		if("2".equals(inserttype))
		{
			addnum = req.getParameter("addlines");
		}
		info.setAddnum(addnum.trim());
	}
	private int prepareActivityInfo(HttpServletRequest req, ProActivityInfo info, String projectid)
	{
		int rows = Integer.parseInt(req.getParameter("rownum"));
		for (int i = 0; i < rows; i++)
		{
			ProActDetail detail = new ProActDetail();
			detail.setProactid(req.getParameter("proactid" + i).trim());
			detail.setProjectid(projectid);
			detail.setActid(req.getParameter("actid" + i).trim());
			detail.setActive(req.getParameter("active" + i).trim());
			detail.setBillable(req.getParameter("billable" + i).trim());
			info.getDetaillist().add(detail);
		}
		return rows;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -