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

📄 eventaction.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
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 + -