📄 serviceorderaction.java
字号:
/*
* 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 + -