?? timesheetreqhandler.java.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);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -