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

📄 serviceorderaction.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.yuanchung.sales.struts.service.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.net.SocketException;
import java.net.URLDecoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import javax.mail.MessagingException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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.apache.struts.upload.FormFile;

import com.yuanchung.sales.service.admin.authorization.AuthorizationMgr;
import com.yuanchung.sales.config.ConfigMgr;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.model.admin.Rights;
import com.yuanchung.sales.model.customer.Customer;
import com.yuanchung.sales.model.customer.CustomerContact;
import com.yuanchung.sales.model.service.Category;
import com.yuanchung.sales.model.service.FaultLevel;
import com.yuanchung.sales.model.service.ProcessCource;
import com.yuanchung.sales.model.service.ServiceOrder;
import com.yuanchung.sales.model.service.ServiceOrderFile;
import com.yuanchung.sales.model.service.Source;
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.service.CategoryMgr;
import com.yuanchung.sales.service.service.FaultLevelMgr;
import com.yuanchung.sales.service.service.ServiceOrderMgr;
import com.yuanchung.sales.service.service.SourceMgr;
import com.yuanchung.sales.struts.service.form.ServiceOrderForm;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.util.DateTimeTool;
import com.yuanchung.sales.util.Page;
import com.yuanchung.sales.util.SessionMgr;
import com.yuanchung.sales.util.StringTool;
import com.yuanchung.sales.util.Upload;
import com.yuanchung.sales.util.emailutil.SendMail;
import com.yuanchung.sales.vo.service.ServiceOrderDefinedVo;
import com.yuanchung.sales.vo.service.XMLFileVo;

/**
 * MyEclipse Struts Creation date: 12-04-2008
 * 
 * XDoclet definition:
 * 
 * @struts.action path="/serviceOrder" name="serviceOrderForm"
 *                parameter="method" scope="request"
 */
public class ServiceOrderAction extends DispatchAction {
	private static Logger logger = Logger.getLogger(ServiceOrderAction.class);
	private ServiceOrderMgr serviceOrderMgr;
	private CategoryMgr categoryMgr;
	private FaultLevelMgr faultLevelMgr;
	private SourceMgr sourceMgr;
	private SendMail sendMail;
	private AuthorizationMgr authorizationMgr;
	public ServiceOrderMgr getServiceOrderMgr() {
		return serviceOrderMgr;
	}

	public void setServiceOrderMgr(ServiceOrderMgr serviceOrderMgr) {
		this.serviceOrderMgr = serviceOrderMgr;
	}

	public CategoryMgr getCategoryMgr() {
		return categoryMgr;
	}

	public void setCategoryMgr(CategoryMgr categoryMgr) {
		this.categoryMgr = categoryMgr;
	}

	public FaultLevelMgr getFaultLevelMgr() {
		return faultLevelMgr;
	}

	public void setFaultLevelMgr(FaultLevelMgr faultLevelMgr) {
		this.faultLevelMgr = faultLevelMgr;
	}

	public SourceMgr getSouceMgr() {
		return sourceMgr;
	}

	public void setSourceMgr(SourceMgr sourceMgr) {
		this.sourceMgr = sourceMgr;
	}

	public SendMail getSendMail() {
		return sendMail;
	}

	public void setSendMail(SendMail sendMail) {
		this.sendMail = sendMail;
	}
	
	public AuthorizationMgr getAuthorizationMgr() {
		return authorizationMgr;
	}

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

	/**
	 * 取得所需的对象到页面新增服务单 Method getObjectToPage hwb
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward getObjectToPage(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) {
		String forward = "newServiceOrder";
		List<Category> categoryList = null;
		List<FaultLevel> faultLevelList = null;
		List<Source> sourceList = null;
		String serialNum = new SimpleDateFormat("yyyyMMdd")
				.format(new Date());
		String createTime = new SimpleDateFormat("yyyy年MM月dd日hh时mm分")
				.format(new Date());
		try {
			categoryList = categoryMgr.findAll();
			faultLevelList = faultLevelMgr.findAll();
			sourceList = sourceMgr.findAll();
			ServiceOrder serviceOrder = serviceOrderMgr
					.getServiceOrderByMaxId();
			if (serviceOrder != null) {
				Integer id = serviceOrder.getId() + 1;
				if (id.toString().length() == 1) {
					serialNum = serialNum + "000" + id.toString();
				} else if (id.toString().length() == 2) {
					serialNum = serialNum + "00" + id.toString();
				} else if (id.toString().length() == 3) { 
					serialNum = serialNum + "0" + id.toString();
				}
			}else{
				serialNum = serialNum+"0001";
			}
		} catch (RuntimeException re) {
			logger.error(re.getMessage());
			throw new ApplicationException(re.getMessage());
		}
		request.setAttribute("serialNum", serialNum);
		request.setAttribute("categoryList", categoryList);
		request.setAttribute("faultLevelList", faultLevelList);
		request.setAttribute("sourceList", sourceList);
		request.setAttribute("createTime", createTime);
		return mapping.findForward(forward);
	}

	/**
	 * 新增服务单 hwb
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 * @throws Exception 
	 */
	public ActionForward newServiceOrder(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		int flag = 0;
		String flagStr = request.getParameter("flag");
		if (flagStr != null && !"".equals(flagStr)) {
			flag = Integer.parseInt(flagStr);
		}
		//判断上传的文件是否符合要求
		String resultMsg = serviceOrderMgr.checkFile(form);
		if(resultMsg!=null){
			request.setAttribute("message",resultMsg);
			return getObjectToPage(mapping, form, request, response); 
		}
		String param = request.getParameter("param");// 表示保存并新增的标识
		ServiceOrderForm serviceOrderForm = (ServiceOrderForm) form;
		int id = 0;// 定义新增问题单的ID
		try {
			id = serviceOrderMgr.newServiceOrder(flag, serviceOrderForm, form,
					request);
			request.setAttribute("message", Constants.SAVESUCCESS);
		} catch (RuntimeException re) {
			logger.debug(re.getMessage());
			throw new ApplicationException(re.getMessage());
		}
		// end-----------------------------------------
		if (param != null) {
			return getObjectToPage(mapping, form, request, response);
		}
		request.setAttribute("id", id);
		return viewServiceOrder(mapping, form, request, response);
	}

	

	/**
	 * 获取所有未处理,已处理,已回访的服务单 hwb
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws ApplicationException
	 */
	@SuppressWarnings("unchecked")
	public ActionForward getServiceOrder(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {
		String forward = "serviceOrderIndex";
		User user = SessionMgr.getCustSession(request);
		
		// 2009-02-09 add 数据范围
		Rights rights = SessionMgr.getJspRightsControl(request)
				.get("4").getRightsMap().get("404");
		String style = rights.getStyle();
		String userIds = authorizationMgr.findUserDataRange(rights.getId(), user);
		//end
		
		Page soPage = null;
		List<UserDefined> userDefinedList = new ArrayList<UserDefined>();
		int type = Constants.ALLSERVICEORDER_INT;// 表示取服务单自定义选项
		String path = (String) request.getRequestURI();
		path = path + "?method=getServiceOrder";
		String currentPage_str = request.getParameter("currentPage"); // 获取当前码
		logger.debug("--currentPage--:" + currentPage_str);
		int currentPage = 1; // 初始化
		if (currentPage_str != null && !"".equals(currentPage_str)) {
			currentPage = Integer.parseInt(currentPage_str);
		}
		logger.debug("==path==:" + path);
		int rowsPerPage = Constants.PAGECOUNT;
		int isDefined = Constants.IS_DEFINED_YES;// 用户默认选项标识
		Set<UserFilter> userFilterSet = null;// 过滤值
		Set<UserField> userFiledSet = null;// 显示字段
		String[] serviceOrderField = null;// 服务单字段
		try {
			userDefinedList = serviceOrderMgr.getServiceOrderDAO()
					.getUserDefined(type, user);
			logger.debug("自定义选项==" + userDefinedList.size());
			UserDefined userDefined = serviceOrderMgr.getUserDefinedOption(
					isDefined, user);
			userFilterSet = userDefined.getUserFilters();
			logger.debug("过滤名size:" + userFilterSet.size());
			userFiledSet = userDefined.getUserFields();
			Iterator<UserField> ufiled = userFiledSet.iterator();
			while (ufiled.hasNext()) {
				serviceOrderField = ufiled.next().getFieldName().split(",");
			}
			soPage = serviceOrderMgr.getServiceOrder(user.getId(),userIds,userFilterSet, path,
					currentPage, rowsPerPage);
			logger.debug("问题单共:" + soPage.getAllCount());
		} catch (RuntimeException re) {
			logger.debug(re.getMessage());
			throw new ApplicationException(
					Constants.SEARCH_SERVICEORDER_EXCEPTION);
		}
		request.setAttribute("userDefinedList", userDefinedList);
		request.setAttribute("serviceOrderField", serviceOrderField);
		request.setAttribute("soPage", soPage);
		return mapping.findForward(forward);
	}

	

	/**
	 * 获取服务单到页面 hwb
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws ApplicationException
	 */
	public ActionForward getServiceOrderToPage(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {
		logger.debug("开始取服务单");
		String forward = "";
		if (request.getParameter("forward") != null
				&& !"".equals(request.getParameter("forward"))) {
			forward = (String) request.getParameter("forward");
		} else if (request.getAttribute("forward") != null
				&& !"".equals((String) request.getAttribute("forward"))) {
			forward = (String) request.getAttribute("forward");
		}
		int id = 0;
		String idStr = request.getParameter("id");
		if (idStr != null && !"".equals(idStr)) {
			id = Integer.parseInt(idStr);
		} else if (request.getAttribute("id") != null) {
			id = Integer.parseInt((String) request.getAttribute("id"));
		}
		ServiceOrder serviceOrder = new ServiceOrder();
		List<Category> categoryList = new ArrayList<Category>();
		Set<ServiceOrderFile> serviceOrderFileSet = null;
		Set<ProcessCource> processCourceSet = null;
		User creater = new User();
		try {
			logger.debug("要取的ID是==" + id);
			serviceOrder = serviceOrderMgr.getServiceOrderDAO().findById(id);
			creater = serviceOrderMgr.getUserById(serviceOrder.getCreaterId());
			categoryList = categoryMgr.getCategoryDAO().findAll();// 取所有类别
			serviceOrderFileSet = serviceOrder.getServiceOrderFiles();
			processCourceSet = serviceOrder.getProcessCources();
		} catch (RuntimeException re) {
			logger.debug(re.getMessage());
			throw new ApplicationException(
					Constants.SEARCH_SERVICEORDER_EXCEPTION);
		}
		User user = SessionMgr.getCustSession(request);
		if (user != null) {
			request.setAttribute("user", user);
		}
		request.setAttribute("creater",creater);
		request.setAttribute("forward", forward);
		request.setAttribute("serviceOrder", serviceOrder);
		request.setAttribute("categoryList", categoryList);
		request.setAttribute("serviceOrderFileSet", serviceOrderFileSet);
		request.setAttribute("processCourceSet", processCourceSet);
		return mapping.findForward(forward);
	}

	/**
	 * 完成服务单 hwb
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws ApplicationException
	 */
	public ActionForward finishServiceOrder(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {
		ServiceOrderForm serviceOrderForm = (ServiceOrderForm) form;
		logger.debug("开始取服务单");
		int id = 0;
		String idStr = request.getParameter("id");
		if (idStr != null && !"".equals(idStr)) {
			id = Integer.parseInt(idStr);
		}
		ServiceOrder serviceOrder = new ServiceOrder();
		try {
			logger.debug("要取的ID是==" + id);
			serviceOrder = serviceOrderMgr.getServiceOrderDAO().findById(id);
			serviceOrder.setState(Constants.SERVICE_ORDER_STATE_DONE_END);
			serviceOrderMgr.updateServiceOrder(serviceOrder);
			request.setAttribute("message", Constants.SAVESUCCESS);
		} catch (RuntimeException re) {
			logger.debug(re.getMessage());
			throw new ApplicationException(
					Constants.MODIFY_SERVICEORDER_EXCEPTION);
		}
		request.setAttribute("serviceOrder", serviceOrder);
		request.setAttribute("id", id);
		return viewServiceOrder(mapping, form, request, response);
	}

	/**
	 * 回访服务单 hwb
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws ApplicationException
	 */
	public ActionForward visitServiceOrder(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {
		ServiceOrderForm serviceOrderForm = (ServiceOrderForm) form;

⌨️ 快捷键说明

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