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

📄 taskaction.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
package com.yuanchung.sales.struts.taskevent.action;

import java.lang.reflect.InvocationTargetException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Timer;

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

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 org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.yuanchung.sales.config.ClassCodeMgr;
import com.yuanchung.sales.config.ConfigMgr;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.model.admin.Rights;
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.model.userDefined.UserDefined;
import com.yuanchung.sales.model.userDefined.UserField;
import com.yuanchung.sales.model.userDefined.UserFilter;
import com.yuanchung.sales.service.RelationManage;
import com.yuanchung.sales.service.admin.authorization.AuthorizationMgr;
import com.yuanchung.sales.service.taskevent.TaskEventMgr;
import com.yuanchung.sales.struts.taskevent.form.TaskForm;
import com.yuanchung.sales.util.AlertTaskEvent;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.util.DateTimeTool;
import com.yuanchung.sales.util.MonthBean;
import com.yuanchung.sales.util.PageController;
import com.yuanchung.sales.util.SessionMgr;
import com.yuanchung.sales.util.StringTool;
import com.yuanchung.sales.util.XPage;
import com.yuanchung.sales.vo.taskEvent.Activity;
import com.yuanchung.sales.vo.taskEvent.ActivityDefinedVo;
import com.yuanchung.sales.vo.taskEvent.ActivityTaskVo;

/**
 * @author 福建圆创软件;
 * 
 * @function 处理活动任务的action
 * 
 */
@SuppressWarnings("unchecked")
// 剔除未检查的警告;
public class TaskAction extends DispatchAction {

	private static Logger logger = Logger.getLogger(TaskAction.class);// 记载日志

	private TaskEventMgr taskEventMgr;// spring注入实现类;

	private AuthorizationMgr authorizationMgr;// spring注入实现类;

	public void setAuthorizationMgr(AuthorizationMgr authorizationMgr) {
		this.authorizationMgr = authorizationMgr;
	}

	public void setTaskEventMgr(TaskEventMgr taskEventMgr) {// spring注入mgr
		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
	 */
	public ActionForward toAddTask(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		/** 在跳转到添加页面之前把数据添加到加载上来* */
		ServletContext serveltContext = request.getSession().getServletContext();
		WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(serveltContext);
		User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
		if (user == null) {
			return mapping.findForward("login");// 如果session不存在用户,重新登陆;
		}
		request.setAttribute("user", user);// 把用户传到页面上,在request范围获取;
		ConfigMgr configMgr = ConfigMgr.getInstance();// 取出相关项类;
		Map<String, String> correlationsMap = configMgr.getAllCorrelations();// 获取相关项对应的键值对;
		if (correlationsMap != null && correlationsMap.size() > 0) {
			logger.debug("用户:" + user.getUserName() + " 在 " + new Date()
					+ " 成功搜索相关项类型!");
			request.setAttribute("correlationsMap", correlationsMap);// 把键值对存放到request范围内;
		}
		return mapping.findForward("toAddTask");// 转发到添加任务活动的页面;
	}

	/**
	 * @author 陆文邦;
	 * @function 在添加任务活动的时候dwr显示所有的用户
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 */
	public ActionForward allUser(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {
		/** 搜索全部的用户,把用户封装成list以供dwr来调用* */
		User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
		// 2009-02-09 add 数据范围
		Rights rights = SessionMgr.getJspRightsControl(request).get("1")
				.getRightsMap().get("104");
		String style = rights.getStyle();
		String userIds = authorizationMgr.findUserDataRange(rights.getId(),
				user);
		// **获取数据权限结束;
		String type = request.getParameter("type");// 判断是否任务搜索用户,提供单用户多用户;
		request.setAttribute("type", type);
		if (user == null) {
			return mapping.findForward("login");// 如果session不存在用户,重新登陆;
		}
		List<User> users = taskEventMgr.getAllUsers(userIds);// 搜索全部用户;
		// 2009-02-07 modify
		request.setAttribute("users", users);
		// 2009-02-07 modify
		String path = "/task.do?method=allUser";// 执行方法的路径;
		encasePage(request, path, users);// 把用户列表装载成分页,传入到page里面;

		logger.debug("用户:" + user.getUserName() + " 在 " + new Date()
				+ " 搜索用户列表!");
		return mapping.findForward("userList");// 返回dwr跳转的搜索页面上;
	}

	/**
	 * @author 陆文邦;
	 * @function 在添加任务活动的时候dwr显示所有的联系人;
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 */
	public ActionForward allContactPeople(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {

		/** 搜索全部联系人,封装成list,以供dwr形式调用* */
		User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
		if (user == null) {
			return mapping.findForward("login");// 如果session不存在用户,重新登陆;
		}
		List<CustomerContact> customerContacts = taskEventMgr
				.getAllCustomerContacts(Constants.ACTIVEFLAG);

		/** 把联系人列表封装成分页形式* */
		String path = "/task.do?method=allContactPeople";
		encasePage(request, path, customerContacts);// 把联系人列表装载成分页,传入到page里面;

		logger.debug("用户:" + user.getUserName() + " 在 " + new Date()
				+ " 搜索联系人列表!");
		return mapping.findForward("customerContactsList");// 返回联系人列表;
	}

	/**
	 * @author 陆文邦;
	 * @function 根据选择的相关项类型来搜索相关记录;
	 * @param mapping
	 * @param form
	 * @param request
	 */
	public ActionForward allSelectFunctionRecord(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {

		/** 根据页面上选择的相关项里面来查找具体类型的列表* */
		User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
		if (user == null) {
			return mapping.findForward("login");// 如果session不存在用户,重新登陆;
		}
		String functionId = request.getParameter("functionId");// 获取页面上传过来的相关项id;
		logger.debug("相关项的ID..." + functionId);
		Integer id = Integer.parseInt(functionId);
		switch (id) {
		case 1: {
			findRecord(request, functionId, id);// 调用搜索相关的记录;
			logger.debug("用户:" + user.getUserName() + " 在 " + new Date()
					+ " 搜索客户列表!");
			return mapping.findForward("customerList");
		}
		case 2: {
			findRecord(request, functionId, id);// 调用搜索相关的记录
			logger.debug("用户:" + user.getUserName() + " 在 " + new Date()
					+ " 搜索业务机会列表!");
			return mapping.findForward("opportList");
		}
		}
		return null;// 不会跳转到这边,只是语句形式需要;
	}

	/**
	 * @author 陆文邦;
	 * @function 添加任务活动;
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 */
	public ActionForward addTask(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
		if (user == null) {
			return mapping.findForward("login");// 如果session不存在用户,重新登陆;
		}
		TaskForm taskForm = (TaskForm) form;
		String userStr = request.getParameter("moreId");
		logger.debug("自动转换为传真---------------------:" + userStr);
		String task = taskForm.getTask();
		String path = request.getContextPath();
		logger.debug("获取的任务保存类型:" + task);
		ActivityTask taskPojo = handleTask(form, request);// 把页面上的任务活动bean组装成持久类pojo;
		if (taskEventMgr.addTask(taskPojo, userStr, path, user)) {// 判断是否保存成功;

			if (task.equals("a")) {
				logger.debug("用户:" + user.getUserName() + " 成功添加任务活动!");
				// 在此判断来源,以返回正确的路径;
				String type = request.getParameter("type");
				Integer oid = null;
				if (request.getParameter("oid") != null) {
					oid = Integer.parseInt(request.getParameter("oid"));
				}
				if ("event".equals(type) && oid != null) {
					return new ActionForward("/event.do?method=detailEvent&id="
							+ oid, true);// 来源是事件的详细信息;
				} else if ("task".equals(type) && oid != null) {
					return new ActionForward("/task.do?method=detailTask&id="
							+ oid, true);// 来源是任务的详细信息;
				} else {
					return new ActionForward("/inc/index.jsp", true);// 来源是首页;
				}
			} else if (task.equals("b")) {
				logger.debug("用户:" + user.getUserName() + " 成功添加任务活动!");
				return new ActionForward("/task.do?method=toAddTask", true);// 返回添加任务页面;
			} else {
				logger.debug("用户:" + user.getUserName() + " 成功添加任务活动!");
				return new ActionForward("/task.do?method=toAddTask", true);// 返回添加事件页面;
			}
		} else {
			logger.debug("用户:" + user.getUserName() + " 在 " + new Date()
					+ " 添加任务活动失败!");
			return mapping.getInputForward();// 返回添加页面;
		}
	}

	/**
	 * @author 陆文邦;
	 * @function 根据条件查找活动任务;
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws ApplicationException
	 */
	public ActionForward getAllTasks(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		/** 搜索任务活动列表,把该列表存储到request范围* */
		User user = SessionMgr.getCustSession(request);// 获取当前正在操作的用户;
		if (user == null) {
			return mapping.findForward("login");// 如果session不存在用户,重新登陆;
		}

		/** 用户会话中的标记,是否第一登陆* */
		HttpSession session = request.getSession();
		int longTime = 1000 * 60 * 30;

⌨️ 快捷键说明

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