?? serviceordermgrimpl.java
字號:
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 + -