📄 eventaction.java
字号:
package com.yuanchung.sales.struts.taskevent.action;
import java.lang.reflect.InvocationTargetException;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import com.yuanchung.sales.config.ClassCodeMgr;
import com.yuanchung.sales.config.ConfigMgr;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.model.businessOpportunity.BusinessOpportunity;
import com.yuanchung.sales.model.customer.Customer;
import com.yuanchung.sales.model.customer.CustomerContact;
import com.yuanchung.sales.model.taskEvent.ActivityTask;
import com.yuanchung.sales.model.taskEvent.Event;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.service.RelationManage;
import com.yuanchung.sales.service.taskevent.TaskEventMgr;
import com.yuanchung.sales.struts.taskevent.form.EventForm;
import com.yuanchung.sales.struts.taskevent.form.TaskForm;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.util.DateTimeTool;
import com.yuanchung.sales.util.MonthBean;
import com.yuanchung.sales.util.SessionMgr;
import com.yuanchung.sales.util.StringTool;
import com.yuanchung.sales.vo.taskEvent.ActivityTaskVo;
/**
* @author 陆文邦;
*
* @function 处理日历事件的action
*
* @创建时间:2008-11-18;
*
*/
@SuppressWarnings("unchecked")
public class EventAction extends DispatchAction {
private static Logger logger = Logger.getLogger(EventAction.class); // 记载日志
private TaskEventMgr taskEventMgr;
public TaskEventMgr getTaskEventMgr() {
return taskEventMgr;
}
public void setTaskEventMgr(TaskEventMgr taskEventMgr) {
this.taskEventMgr = taskEventMgr;
}
private RelationManage relationManage;
public RelationManage getRelationManage() {
return relationManage;
}
public void setRelationManage(RelationManage relationManage) {
this.relationManage = relationManage;
}
/**
* @author 陆文邦;
* @function 跳转到添加日历事件的页面
* @param mapping
* @param form
* @param request
* @param response
* @return
* @创建时间:2008-11-18
*/
public ActionForward toAddEvent(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
/** 在跳转到添加页面之前把数据添加到加载上来* */
User user = SessionMgr.getCustSession(request); // 获取当前正在操作的用户;
if (user == null) {
return mapping.findForward("login"); // 如果session不存在用户,重新登陆;
}
request.setAttribute("user", user); // 把用户传到页面上,在request范围获取;
String goStartDate = request.getParameter("goStartDate");// 获取日期字符串;
if (goStartDate != null && !(goStartDate.equals(""))) {
request.setAttribute("goStartDate", goStartDate);
}
String minitime = request.getParameter("minitime");
request.setAttribute("minitime", minitime);
ConfigMgr configMgr = ConfigMgr.getInstance(); // 取出相关项类;
Map<String, String> correlationsMap = configMgr.getAllCorrelations(); // 获取相关项对应的键值对;
if (correlationsMap != null && correlationsMap.size() > 0) {
logger.debug("用户:" + user.getUserName() + " 成功搜索相关项类型!");
request.setAttribute("correlationsMap", correlationsMap); // 把键值对存放到request范围内;
}
return mapping.findForward("toAddEvent"); // 转发到添加任务活动的页面;
}
/**
* @author 陆文邦
* @function 获取日的事件;
* @param mapping;
* @param form
* @param request
* @param response
* @return
* @throws ApplicationException
* time 2008-12-13;
*/
public ActionForward getDateEvents(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
if (user == null) {
return mapping.findForward("login");// 如果session不存在用户,重新登陆;
}
request.setAttribute("user", user);
String dayOfYear = request.getParameter("dayOfYear");
Integer dayOfYearInt = null;
if (dayOfYear != null) {
request.setAttribute("dayOfYear", dayOfYear);
dayOfYearInt = Integer.parseInt(dayOfYear);
}
request.setAttribute("dayOfYear", dayOfYear);
String year = request.getParameter("year");
request.setAttribute("year", year);
Integer yearInt = null;
Integer weekNo = null;
Integer weekOfYear = null;
boolean isFirstDay = false;
boolean isLastDay = false;
if (year != null) {
yearInt = Integer.parseInt(year);
weekNo = DateTimeTool.getWeekNoByDayOfYear(yearInt, dayOfYearInt);// 获取周几;
weekOfYear = DateTimeTool.getWeekOfYear(yearInt, dayOfYearInt);// 年当中的第几周;
isFirstDay = DateTimeTool.firstDayOfYear(yearInt, dayOfYearInt);// 判断是否为该年的第一天;
isLastDay = DateTimeTool.lastDayOfYear(yearInt, dayOfYearInt);// 判断是否为该年最后一天;
request.setAttribute("isFirstDay", isFirstDay);
request.setAttribute("isLastDay", isLastDay);
request.setAttribute("weekNo", weekNo);
request.setAttribute("weekOfYear", weekOfYear);
} else {
String entryDate = request.getParameter("entryDate");
if ((!entryDate.equals("")) && entryDate != null) {
yearInt = Integer
.parseInt((String) entryDate.subSequence(0, 4));
int monthInt = Integer.parseInt((String) entryDate.subSequence(
5, 7)) - 1;
int dayInt = Integer.parseInt((String) entryDate.subSequence(8,
10));
Calendar calTemp = Calendar.getInstance();
calTemp.set(Calendar.YEAR, yearInt);
calTemp.set(Calendar.MONTH, monthInt);
calTemp.set(Calendar.DAY_OF_MONTH, dayInt);
dayOfYearInt = calTemp.get(Calendar.DAY_OF_YEAR);
weekNo = DateTimeTool.getWeekNoByDayOfYear(yearInt,
dayOfYearInt);// 获取周几;
weekOfYear = DateTimeTool.getWeekOfYear(yearInt, dayOfYearInt);// 年当中的第几周;
isFirstDay = DateTimeTool.firstDayOfYear(yearInt, dayOfYearInt);// 判断是否为该年的第一天;
isLastDay = DateTimeTool.lastDayOfYear(yearInt, dayOfYearInt);// 判断是否为该年最后一天;
request.setAttribute("isFirstDay", isFirstDay);
request.setAttribute("isLastDay", isLastDay);
request.setAttribute("weekNo", weekNo);
request.setAttribute("dayOfYear", dayOfYearInt);
request.setAttribute("weekOfYear", weekOfYear);
}
}
MonthBean monthBean = new MonthBean(yearInt, dayOfYearInt, "", "");
request.setAttribute("monthBean", monthBean);
List dateEventList = taskEventMgr.getEventsByDate(yearInt,
dayOfYearInt, Constants.ACTIVEFLAG, user);// 事件列表;
int countEvents = dateEventList.size();// 事件的大小;
request.setAttribute("countEvents", countEvents);
request.setAttribute("dateEventList", dateEventList);
/** ******************搜索任务列表******************** */
String id = request.getParameter("id");
Integer type = null;
if (id != null) {
type = Integer.parseInt(id);// 搜索任务活动的类型;
}
List<ActivityTaskVo> tasksList = taskEventMgr.getAllTasks(
Constants.ACTIVEFLAG, user, type);// 获取全部的活动任务;id为要搜索活动的类型;为null代表全部搜索;
request.setAttribute("tasksList", tasksList);// 把活动任务列表设置到request里面;
if (type == null) {
type = 8;// 如果为空;就是全部的未处理活动;
}
request.setAttribute("typeTask", type);
/** ******************搜索任务列表******************** */
/** ***************设置固定今天的时间****************** */
Calendar cal = Calendar.getInstance();
int nowYear = cal.get(Calendar.YEAR);
int nowDateOfYear = cal.get(Calendar.DAY_OF_YEAR);
request.setAttribute("nowYear", nowYear);
request.setAttribute("nowDateOfYear", nowDateOfYear);
/** ***************设置固定今天的时间****************** */
return mapping.findForward("dateEvents");
}
/**
* @author 陆文邦
* @function 获取周的事件;
* @param mapping;
* @param form
* @param request
* @param response
* @return
* @throws ApplicationException
*/
public ActionForward getWeekEvents(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
if (user == null) {
return mapping.findForward("login");// 如果session不存在用户,重新登陆;
}
request.setAttribute("user", user);
String weekOfYear = request.getParameter("weekOfYear");// 页面上获取年之周;需要用这个参数去计算本周的第一天最后一天的号数;
String year = request.getParameter("year");// 页面上获取年份;
Integer yearInt = null;
if (weekOfYear != null) {
request.setAttribute("weekOfYear", weekOfYear);// 设置周期;
}
if (year != null) {
yearInt = Integer.parseInt(year);// 年份之integer类型;
}
String month = request.getParameter("month");// 页面上获取月份;
Integer monthInt = null;// 月份之integer类型;
if (month != null) {
monthInt = Integer.parseInt(month);
}
Integer weekOfYearInt = null;// 年之周的int类型;
String weekFirstDay = null;// 本周第一天是几月几号;
String weekLastDay = null;// 本周最后一天是几月几号;
int tempMonth = 0;// 临时月;
String wo = request.getParameter("wo");
MonthBean monthBean = null;
if (wo == null && year != null) {// 并且不为选择的日期
monthBean = new MonthBean(yearInt, monthInt, weekOfYear);// 区分对象日历构造函数;
request.setAttribute("monthBean", monthBean);
} else if (wo != null) {
if (wo.equals("1")) {// 下周;
monthBean = new MonthBean(1, 1);// 日历对象;
year = String.valueOf(monthBean.getYear());
tempMonth = monthBean.getMonth() + 1;
if (tempMonth < 10) {
month = "0" + tempMonth;
} else {
month = String.valueOf(tempMonth);
}
request.setAttribute("monthBean", monthBean);
} else if (wo.equals("-1")) {// 上周
monthBean = new MonthBean(wo, "");// 日历对象;
year = String.valueOf(monthBean.getYear());
tempMonth = monthBean.getMonth() + 1;
if (tempMonth < 10) {
month = "0" + tempMonth;
} else {
month = String.valueOf(tempMonth);
}
request.setAttribute("monthBean", monthBean);
}
}
if (weekOfYear != null) {
weekOfYearInt = Integer.parseInt(weekOfYear);// 转化为integer类型;
weekFirstDay = DateTimeTool.getFirstDateByWeek(yearInt, monthInt,
weekOfYearInt);// 获取这周的周日是几号;
weekLastDay = DateTimeTool.getLastDateByWeek(yearInt, monthInt,
weekOfYearInt);// 获取这周的周六是几号;
List dateNoList = DateTimeTool.getDateNos(weekFirstDay);// 获取连续七天的日期的相关信息;
request.setAttribute("weekFirstDay", weekFirstDay);
request.setAttribute("weekLastDay", weekLastDay);
request.setAttribute("dateNoList", dateNoList);// 未来连续七天的日期具体信息,比如:几号,几周,几年;
} else {// 当选择日期的时候跳转;
String entryDate = request.getParameter("entryDate");
if ((!entryDate.equals("")) && entryDate != null) {
int yearInteger = Integer.parseInt((String) entryDate
.subSequence(0, 4));
year = String.valueOf(yearInteger);
int monthInteger = Integer.parseInt((String) entryDate
.subSequence(5, 7)) - 1;
month = String.valueOf(monthInteger);
int dayIntteger = Integer.parseInt((String) entryDate
.subSequence(8, 10));
monthBean = new MonthBean(yearInteger, monthInteger,
dayIntteger, "type");
Calendar calTemp = Calendar.getInstance();
calTemp.set(Calendar.YEAR, yearInteger);
calTemp.set(Calendar.MONTH, monthInteger);
calTemp.set(Calendar.DAY_OF_MONTH, dayIntteger);
weekOfYearInt = calTemp.get(Calendar.WEEK_OF_YEAR);
weekOfYear = weekOfYearInt.toString();
weekFirstDay = DateTimeTool.getFirstDateByWeek(yearInteger,
monthInteger, weekOfYearInt);// 获取这周的第一天是几号;
weekLastDay = DateTimeTool.getLastDateByWeek(yearInteger,
monthInteger, weekOfYearInt);// 获取这周的第七天是几号;
List dateNoList = DateTimeTool.getDateNos(weekFirstDay);// 获取连续七天的日期的相关信息;
request.setAttribute("weekOfYear", weekOfYear);
request.setAttribute("weekFirstDay", weekFirstDay);
request.setAttribute("weekLastDay", weekLastDay);
request.setAttribute("dateNoList", dateNoList);// 未来连续七天的日期具体信息,比如:几号,几周,几年;
request.setAttribute("monthBean", monthBean);
}
}
List weekEvents = taskEventMgr.getEventsByWeek(weekOfYearInt, Integer
.parseInt(year), Constants.ACTIVEFLAG, user);// 获取周事件;
request.setAttribute("weekEvents", weekEvents);// 把周事件放入request范围;
Calendar calendar = Calendar.getInstance();
int currentYear = calendar.get(Calendar.YEAR);// 操作系统的当前年份;
request.setAttribute("currentYear", currentYear);// 页面上传当前年;如果小于当前年就
int weekCount = DateTimeTool
.getWeekCountOfYear(Integer.parseInt(year) - 1);// 当前年有几周;
request.setAttribute("weekCount", weekCount);// 传到页面上;
/** ***************设置固定今天的时间****************** */
Calendar cal = Calendar.getInstance();
int nowYear = cal.get(Calendar.YEAR);
int nowMonth = cal.get(Calendar.MONTH);
int nowWeekOfYear = cal.get(Calendar.WEEK_OF_YEAR);
request.setAttribute("nowYear", nowYear);// 年份;
request.setAttribute("nowMonth", nowMonth);// 月份;
request.setAttribute("nowWeekOfYear", nowWeekOfYear);// 年之周;
/** ***************设置固定今天的时间****************** */
return mapping.findForward("weekEvents");
}
/**
* @author 陆文邦
* @function 获取月的事件;
* @param mapping;
* @param form
* @param request
* @param response
* @return
* @throws ApplicationException
*/
public ActionForward getMonthEvents(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
/** 搜索任务活动列表,把该列表存储到request范围* */
User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
if (user == null) {
return mapping.findForward("login");// 如果session不存在用户,重新登陆;
}
request.setAttribute("user", user);
int tempMonth = 0;// 临时月;
Integer yearInt = null;
Integer monthInt = null;
String year = request.getParameter("year");
if (year != null) {
yearInt = Integer.parseInt(year);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -