📄 busiopportaction.java
字号:
package com.yuanchung.sales.struts.busiOpport.action;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 com.yuanchung.sales.config.ClassCodeMgr;
import com.yuanchung.sales.config.ConfigMgr;
import com.yuanchung.sales.constants.CorrelationConstant;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.exception.IllegalParameterException;
import com.yuanchung.sales.model.admin.Rights;
import com.yuanchung.sales.model.businessOpportunity.BusinessOpportunity;
import com.yuanchung.sales.model.businessOpportunity.BusinessOpportunityStageHistory;
import com.yuanchung.sales.model.customer.Customer;
import com.yuanchung.sales.model.customer.CustomerContact;
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.busiOpport.BoStageHistoryMgr;
import com.yuanchung.sales.service.busiOpport.BusiOpportMgr;
import com.yuanchung.sales.struts.busiOpport.form.BusiOpportForm;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.util.DateTimeTool;
import com.yuanchung.sales.util.SessionMgr;
import com.yuanchung.sales.util.StringTool;
import com.yuanchung.sales.util.XPage;
import com.yuanchung.sales.vo.CustomerVo;
import com.yuanchung.sales.vo.busiOpport.BusiOpportDefinedVo;
import com.yuanchung.sales.vo.busiOpport.BusinessOpportunityVo;
import com.yuanchung.sales.vo.contact.ContactRoleVo;
import com.yuanchung.sales.vo.contact.ContactVo;
import com.yuanchung.sales.vo.taskEvent.ActivityTaskVo;
import com.yuanchung.sales.vo.taskEvent.CorrelationVo;
import com.yuanchung.sales.vo.taskEvent.EventVo;
import com.yuanchung.sales.vo.user.UserVo;
public class BusiOpportAction extends DispatchAction {
private static Logger logger = Logger.getLogger(BusiOpportAction.class);
private BusiOpportMgr busiOpportMgr;
private BoStageHistoryMgr boshMgr;
private AuthorizationMgr authorizationMgr;
public void setAuthorizationMgr(AuthorizationMgr authorizationMgr) {
this.authorizationMgr = authorizationMgr;
}
public void setBusiOpportMgr(BusiOpportMgr busiOpportMgr) {
this.busiOpportMgr = busiOpportMgr;
}
private RelationManage relationManage;
public RelationManage getRelationManage() {
return relationManage;
}
public void setRelationManage(RelationManage relationManage) {
this.relationManage = relationManage;
}
/**
* 新建业务机会
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws ApplicationException
*/
public ActionForward newCreateBusiOpport(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws ApplicationException {
BusiOpportForm busiOpportForm = (BusiOpportForm) form;
BusinessOpportunity busiOpport = new BusinessOpportunity();
User user = SessionMgr.getCustSession(request);
busiOpport.setUser(user);// 添加用户
// 根据客户名称查找客户
int customerId = busiOpportForm.getCustomerId();
logger.debug("客户ID。。。" + customerId);
String forward = "busiOpportCorrelation";// 跳转到业务机会相关页面
try {
Customer customer = busiOpportMgr.getCustomerById(customerId);
busiOpport.setCustomer(customer);
// 给其指定一个id by 张明强 注:如果ID自动增长的话,到阶段历史那边取ID不好取
int boID = StringTool.createID();
logger.debug("--boID值是多少--:" + boID);
busiOpport.setId(boID); // ID
busiOpport.setBusiOpportName(busiOpportForm.getBusiOpportName());// 业务机会名称
busiOpport
.setBusinessDescribe(busiOpportForm.getBusinessDescribe());// 业务机会描述
busiOpport.setInvolveProduct(busiOpportForm.getInvolveProduct());// 涉及产品
busiOpport.setCreatDate(DateTimeTool
.getCurrentDate("yyyy-MM-dd HH:mm:ss"));// 默认创建当前时间
busiOpport.setPreTransactionDate(busiOpportForm
.getPreTransactionDate());// 结束日期
busiOpport.setStageOf(busiOpportForm.getStageOf());// 所属阶段
busiOpport.setProbability(busiOpportForm.getProbability());// 可能性
busiOpport.setPredictAmount(busiOpportForm.getPredictAmount());// 预计金额
busiOpport.setDecisionMan(busiOpportForm.getDecisionMan());// 决策人
busiOpport.setFlag(1);// 默认为激活
busiOpport.setCompeteDescribe(busiOpportForm.getCompeteDescribe());// 竞争描述
busiOpport.setModifyManId(user.getId());// 修改人ID
busiOpport.setLastModifyTime(DateTimeTool.dateToStrFormat(
"yyyy-MM-dd HH:mm:ss", new Date()));// 修改时间
// 保存业务机会
busiOpportMgr.addBusiOpport(busiOpport);
// 保存业务机会的阶段历史 by 张明强加
BusinessOpportunityStageHistory bosh = new BusinessOpportunityStageHistory();
// bosh.setId(boID);
bosh.setStageName(busiOpportForm.getStageOf()); // 阶段名词
bosh.setPredictAmount(busiOpportForm.getPredictAmount()); // 金额
bosh.setProbability(busiOpportForm.getProbability()); // 可能性
bosh.setPretransactionDate(busiOpportForm.getPreTransactionDate()); // 结束日期
bosh.setLastModifyTime(DateTimeTool.dateToStrFormat(
"yyyy-MM-dd HH:mm:ss", new Date())); // 修改时间
logger.debug("这个值正确吗???" + user.getId());
bosh.setModifyManId(user.getId()); // 修改人的ID
bosh.setBusinessOpportunityId(boID);
try {
boshMgr.addBoStageHistory(bosh);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute(Constants.ERRMSG, Constants.ERRORSYSTEM);
throw new ApplicationException("添加阶段历史失败异常!");
}
// 保存业务机会的阶段历史 结束
// 查找出最新保存的业务机会
BusinessOpportunity busiOpportLast = busiOpportMgr
.getBusiOpportDao().getLastestBusiOpport();
int contactId = busiOpportForm.getContactId();
logger.debug("联系人ID。。。" + contactId);
if (contactId > 0) {// 若是在联系人管理创建业务机会
// 根据联系人ID查找联系人
CustomerContact contact = busiOpportMgr.getBusiOpportDao()
.getContactById(contactId);
List<ContactVo> contacts = new ArrayList<ContactVo>();
ContactVo contactVo = new ContactVo(contact.getId(), contact
.getName(), contact.getCustomer().getId(), contact
.getCustomer().getCustomerName(),
contact.getComPhone(), contact.getEmail(), null, null);
contacts.add(contactVo);
request.setAttribute("contacts", contactVo);
}
String param = request.getParameter("param");
logger.debug("参数为空吗" + param);
if (param != null && param.equals("newAgain")) {// 若是保存并新建
forward = "newBusiOpport";
} else {
try {
BusinessOpportunityVo busiOpportVo = new BusinessOpportunityVo();
BeanUtils.copyProperties(busiOpportVo, busiOpportLast);
request.setAttribute("busiOpportVo", busiOpportVo);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute(Constants.ERRMSG,
Constants.ERRORSYSTEM);
throw new ApplicationException("the data copy exception");
}
}
// 显示历史阶段 by 张明强
try {
BusinessOpportunityStageHistory boshVO = new BusinessOpportunityStageHistory();
BeanUtils.copyProperties(boshVO, bosh);
List<BusinessOpportunityStageHistory> boshList = new ArrayList<BusinessOpportunityStageHistory>();
boshList.add(boshVO);
request.setAttribute("boshList", boshList);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute(Constants.ERRMSG, Constants.ERRORSYSTEM);
throw new ApplicationException("the data copy exception");
}
// 显示历史阶段 结束
} catch (Exception e) {
request.setAttribute(Constants.ERRMSG, Constants.UNABLESAVEUSER);
}
return mapping.findForward(forward);
}
/**
* 查找所有的客户
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws ApplicationException
*/
public ActionForward allCustomer(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
User user = SessionMgr.getCustSession(request);
String forward = "customerList";
if (user != null) {
// 查找所有的客户
List<CustomerVo> customers = busiOpportMgr.getCustomerByUser(user,
Constants.ACTIVEFLAG);
String currentPage = request.getParameter("currentPage");
XPage xpage = new XPage(request.getContextPath()
+ "/busiOpport.do?method=allCustomer", customers.size(), 1,
8, customers);
if (currentPage != null && !currentPage.equals("")) {
xpage.setCurrentItems(Integer.parseInt(currentPage));
} else {
xpage.setCurrentItems(1);
}
xpage.setPageBar();
request.setAttribute("xpage", xpage);
} else {
request.setAttribute("loginerror", Constants.MESSAGE);
forward = "userLogin";
}
return mapping.findForward(forward);
}
/**
* 所有业务机会
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws ApplicationException
*/
public ActionForward allBusiOpport(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
User user = SessionMgr.getCustSession(request);
// 2009-02-24 add
Rights rights = SessionMgr.getJspRightsControl(request).get("3")
.getRightsMap().get("304");
String style = rights.getStyle();
String userIds = authorizationMgr.findUserDataRange(rights.getId(),
user);
logger.debug("userIds : " + userIds);
// end add
// 根据用户和类型查找业务机会选项
List<UserDefined> busiOpportOptions = new ArrayList<UserDefined>();
if (Constants.STYLE_BLOCK.equals(style)) {// 2009-02-23 add 数据范围
busiOpportOptions = busiOpportMgr.getOptionsByUserAndType(user,
Constants.ALLBUSIOPPORT_INT);// 根据用户获取所有用户自定义选项
}
request.setAttribute("busiOpportOptions", busiOpportOptions);
// List<BusinessOpportunityVo> busiOpports = busiOpportMgr
// .getAllBusiOpport(user);
List<BusinessOpportunityVo> busiOpports = busiOpportMgr
.getAllBusiOpport(userIds, request);
String currentPage = request.getParameter("currentPage");
XPage xpage = new XPage(request.getContextPath()
+ "/busiOpport.do?method=allBusiOpport", busiOpports.size(), 1,
10, busiOpports);
if (currentPage != null && !currentPage.equals("")) {
xpage.setCurrentItems(Integer.parseInt(currentPage));
} else {
xpage.setCurrentItems(1);
}
xpage.setPageBar();
request.setAttribute("xpage", xpage);
return mapping.findForward("busiOpportList");
}
/**
* 创建新选项
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws ApplicationException
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -