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

📄 timesheetreqhandler.java.svn-base

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

import java.util.List;
import java.util.Map;

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.project.ProjectInfo;
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.RsWebInfo;
import com.nsi.control.web.handles.ReqHandler;
import com.nsi.control.web.util.RsWebInfoUtil;
import com.nsi.control.web.util.WebModelUtil;
import com.nsi.control.web.util.TsHeaderUtil;
import com.nsi.util.ValHelper;

public class TimeSheetReqHandler implements ReqHandler
{
	private static Log log = LogFactory.getLog(TimeSheetReqHandler.class);
	/**
	 * @see com.nsi.control.web.handles.ReqHandler#processRequest(javax.servlet.http.HttpServletRequest)
	 */
	public NsiEvent processRequest(HttpServletRequest request,HttpServletResponse response) throws NsiEventException
	{
		String action = request.getParameter("action");
		String resourceid = request.getParameter("resourceid");
		String sdate = request.getParameter("startweek").trim();
		RsWebInfo rswebinfo = new RsWebInfo(resourceid);
		Map<String, ProjectInfo> projectmap = RsWebInfoUtil.getInstance().setProjectmap(resourceid);
		Map<String,Map<String,String>> activitymap = RsWebInfoUtil.getInstance().setActivitymap(resourceid);
		Map<String,List<String>> remarkmap = RsWebInfoUtil.getInstance().setRemarkmap(resourceid, sdate);
		Map<String,List<String[]>> projectactmap = RsWebInfoUtil.getInstance().setProjectactmap(resourceid);
		List<String[]> actcategorylist = RsWebInfoUtil.getInstance().setActcategorylist();
		List<String[]> availableprojectlist = RsWebInfoUtil.getInstance().setAvailableprojectlist(resourceid, sdate);
		rswebinfo.setProjectmap(projectmap);
		rswebinfo.setActivitymap(activitymap);
		rswebinfo.setRemarkmap(remarkmap);
		rswebinfo.setProjectactmap(projectactmap);
		rswebinfo.setActcategorylist(actcategorylist);
		rswebinfo.setAvailableprojectlist(availableprojectlist);
		NsiEvent nsievent = null;
		if( ValHelper.getInstance().isNotNullAndEmpty(action))
		{
			if(action.equalsIgnoreCase("DisplayTimeSheet")) nsievent = createDisplayTimeSheetEvent(request,resourceid,sdate);
			else if(action.equalsIgnoreCase("UpdateTimeSheet")) nsievent = createUpdateTimeSheetEvent(request,resourceid,sdate);
			else if(action.equalsIgnoreCase("AddTimeSheet"))
			{
				nsievent = createUpdateTimeSheetEvent(request,resourceid,sdate);
				setAddInfo(rswebinfo, request);
			}
		}
		request.getSession().setAttribute("rsinfo", rswebinfo);
		return nsievent;
	}
	private NsiEvent createDisplayTimeSheetEvent(HttpServletRequest request, String resourceid, String sdate ) throws NsiEventException
	{
		TimeSheetEvent event = new TimeSheetEvent(0);
		ModelManager mm = (ModelManager)request.getSession().getAttribute(AppConstants.ModelManagerKey);
		String timesheetid = request.getParameter("timesheetid").trim();
		String modifyuser = ((ModelManager)request.getSession().getAttribute(AppConstants.ModelManagerKey)).getLoginuser().getResourceid();
		if( ValHelper.getInstance().isNullOrEmpty( timesheetid ) ){
			TsHeaderUtil.getInstance().insertResourceNewTsHead(sdate,resourceid,modifyuser);
                        timesheetid = TsHeaderUtil.getInstance().getTimeSheetId(sdate,resourceid);
		}
		TsInfo info = new TsInfo();
		info.setResourceid(resourceid);
		info.setStartweek(sdate);
		info.setTimesheetid(timesheetid);
		WebModelUtil.getInstance().getTimeSheetModel(mm).copy(info);
		event.setResourceid(resourceid);
		event.setStartweek(sdate);
		event.setTimesheetid(timesheetid);
		return event;
	}
	private NsiEvent createUpdateTimeSheetEvent(HttpServletRequest request,String resourceid, String sdate) throws NsiEventException
	{
		TimeSheetEvent event = new TimeSheetEvent(2);
		ModelManager mm = (ModelManager)request.getSession().getAttribute(AppConstants.ModelManagerKey);
		String timesheetid = request.getParameter("timesheetid").trim();
		String finalized = request.getParameter("finalize").trim();
		String userrole = mm.getLoginuser().getUserrole();
		log.debug("createUpdateTimeSheetEvent() -- user role[" + userrole + "]");
		// Only admin user has the privilege to perform "unfinalize" operation
		if(("U".equals(finalized)) && !"1".equals(userrole))
		{
			throw new NsiEventException("Only RMS admin has the privilege to perform this function.");
		}
		TsInfo info = new TsInfo();
		info.setResourceid(resourceid);
		info.setStartweek(sdate);
		info.setTimesheetid(timesheetid);
		info.setFinalized(finalized);
		WebModelUtil.getInstance().getTimeSheetModel(mm).copy(info);
		int rownum = Integer.parseInt(request.getParameter("rownum"));
		for (int i = 0; i < rownum; i++)
		{
			TsDetails tsdetails = new TsDetails();
			tsdetails.setTsdetailid(request.getParameter("tsdetailid" + i));
			tsdetails.setTimesheetid(timesheetid);
			tsdetails.setProjectid(request.getParameter("projectid" + i));
			log.debug("createUpdateTimeSheetEvent() -- projactid[" + request.getParameter("projactid" + i) + "]");
			tsdetails.setProjactid(request.getParameter("projactid" + i));
			tsdetails.setSubtotal(request.getParameter("totalupdate" + i));
			tsdetails.setSun(request.getParameter("sunupdate" + i));
			tsdetails.setMon(request.getParameter("monupdate" + i));
			tsdetails.setTue(request.getParameter("tueupdate" + i));
			tsdetails.setWed(request.getParameter("wedupdate" + i));
			tsdetails.setThu(request.getParameter("thuupdate" + i));
			tsdetails.setFri(request.getParameter("friupdate" + i));
			tsdetails.setSat(request.getParameter("satupdate" + i));
			info.getDetaillist().add(tsdetails);
		}
		event.setTimesheetid(timesheetid);
		event.setLoginUser(mm.getLoginuser().getResourceid());
		event.setResourceid(resourceid);
		event.setStartweek(sdate);
		event.setInfo(info);
		return event;
	}
	private void setAddInfo(RsWebInfo rswebinfo, HttpServletRequest request)
	{
		String addprojectid = request.getParameter("projselected");
		String addnum = request.getParameter("addlines");
		String actcategory = request.getParameter("activitycategory");
		rswebinfo.setAddprojectid(addprojectid);
		rswebinfo.setAddnum(addnum);
		rswebinfo.setActcategory(actcategory);
	}
}

⌨️ 快捷键说明

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