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

📄 serviceordermgrimpl.java

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

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
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.http.HttpServletRequest;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
import org.springframework.mail.MailSendException;

import com.yuanchung.sales.config.ConfigMgr;
import com.yuanchung.sales.dao.service.CategoryDAO;
import com.yuanchung.sales.dao.service.FaultLevelDAO;
import com.yuanchung.sales.dao.service.ServiceOrderDAO;
import com.yuanchung.sales.dao.service.SourceDAO;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.exception.DateFormatException;
import com.yuanchung.sales.model.customer.Customer;
import com.yuanchung.sales.model.customer.CustomerContact;
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.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.ServiceOrderMgr;
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.CustomerDefinedVo;
import com.yuanchung.sales.vo.service.ServiceOrderDefinedVo;
import com.yuanchung.sales.vo.service.XMLFileVo;

public class ServiceOrderMgrImpl implements ServiceOrderMgr {
	private static Logger logger = Logger.getLogger(ServiceOrderMgrImpl.class);
	private ServiceOrderDAO serviceOrderDAO;
	private CategoryDAO categoryDAO;
	private FaultLevelDAO faultLevelDAO;
	private SourceDAO sourceDAO;
	private SendMail sendMail;
	
	public ServiceOrderDAO getServiceOrderDAO() {
		return serviceOrderDAO;
	}

	public void setServiceOrderDAO(ServiceOrderDAO serviceOrderDAO) {
		this.serviceOrderDAO = serviceOrderDAO;
	}
	public CategoryDAO getCategoryDAO() {
		return categoryDAO;
	}

	public void setCategoryDAO(CategoryDAO categoryDAO) {
		this.categoryDAO = categoryDAO;
	}

	public FaultLevelDAO getFaultLevelDAO() {
		return faultLevelDAO;
	}

	public void setFaultLevelDAO(FaultLevelDAO faultLevelDAO) {
		this.faultLevelDAO = faultLevelDAO;
	}

	public SourceDAO getSourceDAO() {
		return sourceDAO;
	}

	public void setSourceDAO(SourceDAO sourceDAO) {
		this.sourceDAO = sourceDAO;
	}
	
	public SendMail getSendMail() {
		return sendMail;
	}

	public void setSendMail(SendMail sendMail) {
		this.sendMail = sendMail;
	}
	
	//取刚保存的服务单
	public ServiceOrder getServiceOrderByMaxId(){
		return serviceOrderDAO.getServiceOrderByMaxId();
	}
	
	/****************************问题单调用的方法**************************************/	
	//通过状态取得服务单在主面显示
	public Page getServiceOrder(int userId,String userIds,Set<UserFilter> userFilterSet,String path,int currentPage,int rowsPerPage){
		Page page = null;
		int count = 0;
		List<ServiceOrder> serviceOrderList = null;
		try {
			serviceOrderList = serviceOrderDAO.getServiceOrder(userId,userIds, userFilterSet, path, currentPage, rowsPerPage);
			count = serviceOrderDAO.getServiceOrderCount(userId,userIds, userFilterSet);
			page = new Page(path,count,currentPage,rowsPerPage,serviceOrderList);
		} catch (RuntimeException re) {
			logger.debug(re.getMessage());
		}
		return page;
	}
	
	//通过过滤条件搜索服务单
	public Page searchServiceOrder(int userId,String userIds,Set<UserFilter> userFilterSet,String path,int currentPage,int rowsPerPage){
		Page page = null;
		int count = 0;
		List<ServiceOrder> serviceOrderList = null;
		try {
			serviceOrderList = serviceOrderDAO.searchServiceOrder(userId,userIds, userFilterSet, path, currentPage, rowsPerPage);
			count = serviceOrderDAO.searchServiceOrderCount(userId,userIds, userFilterSet);
			page = new Page(path,count,currentPage,rowsPerPage,serviceOrderList);
		} catch (RuntimeException re) {
			logger.debug(re.getMessage());
		}
		return page;
	}
	
	//保存文件信息
	public void saveSOFile(ServiceOrderFile soFile){
		serviceOrderDAO.saveSOFile(soFile);
	}

	//保存处理过程
	public void saveProcessCource(ProcessCource processCource){
		serviceOrderDAO.saveProcessCource(processCource);
	}
	//更新问题单
	public void updateServiceOrder(ServiceOrder serviceOrder){
		serviceOrderDAO.attachDirty(serviceOrder);
	}
	//通过ID删除附件
	public void deleteSOFileById(int soFileId){
		serviceOrderDAO.deleteSOFileById(soFileId);
	}
	// 新增问题单
	public int newServiceOrder(int flag, ServiceOrderForm serviceOrderForm,
			ActionForm form, HttpServletRequest request)
			throws Exception {
		ServiceOrder serviceOrder = new ServiceOrder();
		BeanUtils.copyProperties(serviceOrder, serviceOrderForm);// copy form
		serviceOrder.setState(Constants.SERVICE_ORDER_STATE_NO_DONE);// 默认为未接收服务单
		serviceOrder.setFlag(flag);// 内部填的单
		serviceOrder.setCreateTime(new Date());
		ServiceOrder justSaveSO = null;
		if (serviceOrderForm.getTimeSliceStr() != null) {// 截止日期
			serviceOrder.setTimeSlice(DateTimeTool
					.getDateByStr2(serviceOrderForm.getTimeSliceStr()));
		}
		if (SessionMgr.getCustSession(request) != null) {
			serviceOrder.setCreaterId(SessionMgr.getCustSession(request).getId());
			serviceOrder.setName(SessionMgr.getCustSession(request).getFamilyName());
		}
		if (serviceOrderForm.getCategoryId() != 0) {
			serviceOrder.setCategory(categoryDAO.findById(serviceOrderForm
					.getCategoryId()));
		}
		if (serviceOrderForm.getFaultLevelId() != 0) {// 故障级别
			serviceOrder.setFaultLevel(faultLevelDAO.findById(serviceOrderForm
					.getFaultLevelId()));
		}
		if (serviceOrderForm.getSourceId() != 0) {
			serviceOrder.setSource(sourceDAO.findById(serviceOrderForm
					.getSourceId()));
		}
		if (serviceOrderForm.getCustomerId() != 0) {
			serviceOrder.setCustomer(getCustomerById(serviceOrderForm
					.getCustomerId()));
		}
		if (serviceOrderForm.getContactId() != 0) {
			serviceOrder.setCustomerContact(getContactById(serviceOrderForm
					.getContactId()));
		}
		//******派单
		int userId = 0;
		String userIdStr = request.getParameter("userId");
		logger.debug("工程师的ID是:" + userIdStr);
		if (userIdStr != null && !"".equals(userIdStr)) {
			userId = Integer.parseInt(userIdStr);
		}
		User engineer = serviceOrderDAO.getUserById(
				userId);
		if(engineer!=null){
			serviceOrder.setEngineer(engineer);
		}
		//end
		try {
			getServiceOrderDAO().save(serviceOrder);// 保存服务单
			justSaveSO = getServiceOrderByMaxId();
			request.setAttribute("isSuccess", Constants.SAVESUCCESS);
		} catch (RuntimeException re) {
			logger.debug(re.getMessage());
			throw new ApplicationException(Constants.ADD_SERVICEORDER_EXCEPTION);
		}
		// 上传
		Set<ServiceOrderFile> serviceOrderFileSet = new HashSet<ServiceOrderFile>();
		Hashtable fileh = form.getMultipartRequestHandler().getFileElements();// form是传过来的参数
		for (Iterator it = fileh.keySet().iterator(); it.hasNext();) {
			ServiceOrderFile soFile = new ServiceOrderFile();
			String key = (String) it.next();
			FormFile formfile = (FormFile) fileh.get(key);// 获取一个FormFile
			String fileName = "";
			if (formfile.getFileName() != null
					&& !"".equals(formfile.getFileName())) {
				String path = ConfigMgr.getInstance().getXmlFileVo().getPath();// 取得上传的路径
				logger.debug(formfile.getFileName());
				logger.debug("要上传的路径是:" + path);
				fileName = Upload.upload(formfile, path);
				soFile.setFileName(fileName);
				soFile.setPath(path);
				if (justSaveSO != null) {
					soFile.setServiceOrder(justSaveSO);
				}
				try {
					saveSOFile(soFile);
				} catch (RuntimeException re) {
					logger.debug(re.getMessage());
					throw new ApplicationException(
							Constants.ADD_SERVICEORDER_EXCEPTION);
				}
				serviceOrderFileSet.add(soFile);
			}
		}
		logger.debug("上传的数量=====" + serviceOrderFileSet.size());
		serviceOrder.setServiceOrderFiles(serviceOrderFileSet);
		// 上传结束
		
		// 短信接收与邮件发送-----------------------------
		try {
			String gsmModel = request.getParameter("gsmModel");
			String emailModel = request.getParameter("emailModel");
			if (engineer != null) {
				// 短信
				if (gsmModel != null) {

				}
				// 邮件
				if (emailModel != null && justSaveSO!= null) {
					String subject = "你有一条新的问题单";
					StringBuffer text = new StringBuffer();
//					text.append("<html>");
//					text.append("<head><title>服务请求</title></head>");
//					text.append("<body>");
					text.append("编号:"+justSaveSO.getSerialNum());
					text.append("客户名称:"+justSaveSO.getCustomer().getCustomerName());
					text.append("联系人:"+justSaveSO.getCustomerContact().getName());
					text.append("手机:"+justSaveSO.getCustomerContact().getComPhone());
					text.append("邮箱:"+justSaveSO.getCustomerContact().getEmail());
					text.append("问题描述:"+justSaveSO.getContent());
					text.append("截止日期:"+justSaveSO.getTimeSlice());
//					text.append("</body>");
//					text.append("dimly");
//					sendMail.sendMail(engineer.getEmail(),subject,text.toString());
					sendMail.sendMailWithFile(engineer.getEmail(),subject,text.toString());

⌨️ 快捷键说明

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