📄 busiopportmgriml.java
字号:
package com.yuanchung.sales.service.busiOpport.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;
import com.yuanchung.sales.constants.SystemConstant;
import com.yuanchung.sales.dao.busiOpport.BusiOpportDAO;
import com.yuanchung.sales.dao.util.UtilDAO;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.model.admin.Rights;
import com.yuanchung.sales.model.businessOpportunity.BusinessOpportunity;
import com.yuanchung.sales.model.businessOpportunity.ContactBusiopport;
import com.yuanchung.sales.model.customer.ConRole;
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.admin.authorization.AuthorizationMgr;
import com.yuanchung.sales.service.busiOpport.BusiOpportMgr;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.util.PageController;
import com.yuanchung.sales.util.SessionMgr;
import com.yuanchung.sales.util.StringTool;
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.right.WebRightsView;
public class BusiOpportMgrIml implements BusiOpportMgr {
private static Logger logger = Logger.getLogger(BusiOpportMgrIml.class);
private BusiOpportDAO busiOpportDao;
private AuthorizationMgr authorizationMgr;
private UtilDAO utilDao;
public UtilDAO getUtilDao() {
return utilDao;
}
public void setUtilDao(UtilDAO utilDao) {
this.utilDao = utilDao;
}
public void setAuthorizationMgr(AuthorizationMgr authorizationMgr) {
this.authorizationMgr = authorizationMgr;
}
public void setBusiOpportDao(BusiOpportDAO busiOpportDao) {
this.busiOpportDao = busiOpportDao;
}
public BusiOpportDAO getBusiOpportDao() {
return busiOpportDao;
}
// 根据ID查找客户
public Customer getCustomerById(int customerId) throws ApplicationException {
try {
return busiOpportDao.getCustomerById(customerId);
} catch (Exception e) {
e.printStackTrace();
throw new ApplicationException(Constants.WITHOUTDATA);
}
}
// 增加业务机会
public boolean addBusiOpport(BusinessOpportunity busiOpport)
throws ApplicationException {
try {
busiOpportDao.save(busiOpport);
} catch (Exception e) {
throw new ApplicationException(Constants.ADDBUSIOPPORTEXCEPTION);
}
return true;
}
// 搜索所有的客户
public List<CustomerVo> getCustomerByUser(User user, int flag)
throws ApplicationException {
List customers = busiOpportDao.getCustomerByUser(user, flag);
List<CustomerVo> result = new ArrayList<CustomerVo>();
try {
for (Object o : customers) {
Customer c = (Customer) o;
// 将客户po封装成vo
result.add(new CustomerVo(c.getId(), c.getCustomerName(), c
.getCreateTime(), c.getLegalRepresent(),
c.getBizType(), c.getRegisterCapital(), c
.getIndustryOf(), c.getEmployeeNum(), c
.getRegionOf(), c.getCommunAddr(),
c.getPhone(), c.getFax(), c.getZipCode(), c
.getWebSite(), c.getEmail(),
c.getHonestGrade(), c.getManagerLevel(), c
.getBreedVisualize(), c.getCustomerState(), c
.getCustomerSource(), c.getRemark(), c
.getProvince(), c.getCity(), c.getCounty(), c
.getUser()));
}
return result;
} catch (Exception e) {
throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
}
}
// 根据名称模糊查询客户
public List<CustomerVo> getCustomerByNamelike(String customerName,
HttpServletRequest request) throws ApplicationException {
System.out.println("有到这里吗:" + customerName);
User user = SessionMgr.getCustSession(request);
List customers = busiOpportDao
.getCustomerByNamelike(user, customerName);
List<CustomerVo> result = new ArrayList<CustomerVo>();
try {
for (Object o : customers) {
Customer c = (Customer) o;
// 将客户po封装成vo
result.add(new CustomerVo(c.getId(), c.getCustomerName(), c
.getCreateTime(), c.getLegalRepresent(),
c.getBizType(), c.getRegisterCapital(), c
.getIndustryOf(), c.getEmployeeNum(), c
.getRegionOf(), c.getCommunAddr(),
c.getPhone(), c.getFax(), c.getZipCode(), c
.getWebSite(), c.getEmail(),
c.getHonestGrade(), c.getManagerLevel(), c
.getBreedVisualize(), c.getCustomerState(), c
.getCustomerSource(), c.getRemark(), c
.getProvince(), c.getCity(), c.getCounty(), c
.getUser()));
}
return result;
} catch (Exception e) {
throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
}
}
// 搜索所有的业务机会
@SuppressWarnings("unchecked")
public List<BusinessOpportunityVo> getAllBusiOpport(User user)
throws ApplicationException {
List<BusinessOpportunityVo> result = new ArrayList<BusinessOpportunityVo>();
List<BusinessOpportunity> busiOpports = busiOpportDao
.getBusiOpport(user);
System.out.println("有几个业务机会" + busiOpports);
try {
for (Object o : busiOpports) {
BusinessOpportunity bo = (BusinessOpportunity) o;
// 将客户po封装成vo
result.add(new BusinessOpportunityVo(bo.getId(), bo
.getCustomer(), bo.getBusiOpportName(),
bo.getStageOf(), bo.getPreTransactionDate(),"y","y"));
}
return result;
} catch (Exception e) {
throw new ApplicationException(Constants.FINDBUSIOPPORTEXCEPTION);
}
}
@SuppressWarnings("unchecked")
public List<BusinessOpportunityVo> getAllBusiOpport(String userIds,
HttpServletRequest request) throws ApplicationException {
List<BusinessOpportunityVo> result = new ArrayList<BusinessOpportunityVo>();
User user = SessionMgr.getCustSession(request);
// 删除(数据范围)
Rights delRights = SessionMgr.getJspRightsControl(request).get("3")
.getRightsMap().get("303");
String delUserIds = authorizationMgr.findUserDataRange(delRights
.getId(), user);
logger.debug("delUserIds : " + delUserIds);
// 修改(数据范围)
Rights modifyRights = SessionMgr.getJspRightsControl(request).get("3")
.getRightsMap().get("302");
String modifyUserIds = authorizationMgr.findUserDataRange(modifyRights
.getId(), user);
List<BusinessOpportunity> busiOpports = busiOpportDao
.getBusiOpport(userIds);
System.out.println("有几个业务机会" + busiOpports);
try {
for (Object o : busiOpports) {
String delRightsFlag = "n";
String modifyRightsFlag = "n";
BusinessOpportunity bo = (BusinessOpportunity) o;
if (authorizationMgr.isRights(bo.getUser().getId(),
delUserIds)) {
delRightsFlag = "y";
}
if (authorizationMgr.isRights(bo.getUser().getId(),
modifyUserIds)) {
modifyRightsFlag = "y";
}
// 将客户po封装成vo
result.add(new BusinessOpportunityVo(bo.getId(), bo
.getCustomer(), bo.getBusiOpportName(),
bo.getStageOf(), bo.getPreTransactionDate(),
delRightsFlag, modifyRightsFlag));
}
return result;
} catch (Exception e) {
throw new ApplicationException(Constants.FINDBUSIOPPORTEXCEPTION);
}
}
// 初始化用户自定义选项
public UserDefined initUserDefined(User user, String definedName, int type,
Date inDate) throws ApplicationException {
return new UserDefined(user, definedName, type, inDate);
}
// 增加用户自定义选项
public void addUserDefined(UserDefined userDefined)
throws ApplicationException {
try {
busiOpportDao.saveUserDefined(userDefined);
} catch (Exception e) {
throw new ApplicationException(Constants.ADDUSERDEFINEDEXCEPTION);
}
}
// 将值转换字段
public String getStringByField(String fieldInt) {
int field = Integer.parseInt(fieldInt);
String str = "";
switch (field) {
case 1:
str = "busiOpportName";
break;
case 2:
str = "customerName";
break;
case 3:
str = "businessDescribe";
break;
case 4:
str = "involveProduct";
break;
case 5:
str = "preTransactionDate";
break;
case 6:
str = "stageOf";
break;
case 7:
str = "probability";
break;
case 8:
str = "predictAmount";
break;
case 9:
str = "decisionMan";
break;
case 10:
str = "decisionMan";
break;
case 11:
str = "creatDate";
break;
}
return str;
}
// 增加用户过滤选项
public UserFilter initUserFilter(UserDefined userDefined,
String filterName, String operatorName, String operator,
String filterValue, String filter) throws ApplicationException {
return new UserFilter(userDefined, filterName, operatorName, operator,
filterValue, filter);
}
// 增加用户过滤
public void addUserFilter(UserFilter userFilter)
throws ApplicationException {
try {
busiOpportDao.saveUserFilter(userFilter);
} catch (Exception e) {
throw new ApplicationException(Constants.ADDUFILTEREXCEPTION);
}
}
// 初始化用户显示字段
public UserField initUserFiled(UserDefined userDefined, String optionFields)
throws ApplicationException {
return new UserField(userDefined, optionFields);
}
// 增加用户显示字段
public void addUserFiled(UserField userField) throws ApplicationException {
try {
busiOpportDao.saveUserField(userField);
} catch (Exception e) {
throw new ApplicationException(Constants.ADDFIELDEXCEPTION);
}
}
// 根据用户和类型查找选项
public List<UserDefined> getOptionsByUserAndType(User user, int type)
throws ApplicationException {
return busiOpportDao.getUserDefinedByUserAndType(user, type);
}
// 根据id搜索客户选项
public UserDefined getUserDefinedById(int optionId)
throws ApplicationException {
try {
return busiOpportDao.getUserDefinedById(optionId);
} catch (Exception e) {
throw new ApplicationException(Constants.SEARCHOPTIONEXCEPTION);
}
}
// 将客户选项po封装成vo
public BusiOpportDefinedVo transaformBusiOpportDefinedPoToVo(
UserDefined userDefined) throws ApplicationException {
BusiOpportDefinedVo cdVo = null;
if (userDefined != null) {
List<UserFilter> userFilters = busiOpportDao
.getUserFilterByOption(userDefined);
UserField userField = busiOpportDao
.getUserFieldByOption(userDefined);// 搜索显示字段
List<String> preField = new ArrayList<String>();
String[] fieldArray = userField.getFieldName().split(",");// 将显示字段转换成数组
for (String o : fieldArray) {// 搜索用户自定义客户字段
preField.add(o);
}
List<String> noUserFields = filterString(preField);// 提取剩余的字段
cdVo = new BusiOpportDefinedVo(userDefined.getId(), userDefined
.getDefinedName(), userDefined.getType(), userFilters,
noUserFields, preField);
}
return cdVo;
}
// 过滤字符串
public static String[] contactField = new String[] { "业务机会名称", "客户名称",
"业务机会描述", "涉及产品", "预计成交日期", "所属阶段", "成功概率", "预计金额", "决策人", "竞争情况描述" };
public List<String> filterString(List<String> preField) {
Set<String> fieldSet = new HashSet<String>();
for (int i = 0; i < preField.size(); i++) {
fieldSet.add(preField.get(i));
}
List<String> enableField = new ArrayList<String>();
for (String s : contactField) {// 遍历预选项
if (!fieldSet.contains(s)) {
enableField.add(s);
}
}
return enableField;
}
// 修改用户选项
public boolean updateOption(UserDefined userDefined)
throws ApplicationException {
try {
busiOpportDao.updateUserDefined(userDefined);
} catch (Exception e) {
e.printStackTrace();
throw new ApplicationException(Constants.UPDATEOPTIONEXCEPTION);
}
return true;
}
// 根据id搜索用户过滤条件
public UserFilter getUserFilterById(String filterId)
throws ApplicationException {
try {
return busiOpportDao.getUserFilter(Integer.parseInt(filterId));
} catch (Exception e) {
throw new ApplicationException(Constants.SEARCHFILTEREXCEPTION);
}
}
// 修改用户选项
public boolean updateUserFilter(UserFilter userFilter)
throws ApplicationException {
try {
busiOpportDao.updateUserFilter(userFilter);
return true;
} catch (Exception e) {
throw new ApplicationException(Constants.UPDATEFILTEREXCEPTION);
}
}
// 根据选项搜索显示字段
public UserField getUserFieldByOption(UserDefined userDefined)
throws ApplicationException {
try {
return busiOpportDao.getUserFieldByOption(userDefined);
} catch (Exception e) {
throw new ApplicationException(Constants.SEARCHFIELDEXCEPTION);
}
}
// 修改显示字段
public boolean updateUserField(UserField userField)
throws ApplicationException {
try {
busiOpportDao.updateUserField(userField);
} catch (Exception e) {
throw new ApplicationException(Constants.UPDATEFIELDEXCEPTION);
}
return true;
}
// 根据选项搜索相应的显示字段
public List<String> getDefinedField(String optionId,
HttpServletRequest request) throws ApplicationException {
List<String> fields = null;
UserDefined ud = null;
if (StringTool.isNotBlank(optionId)) {
fields = new ArrayList<String>();
// 用户自定义选项
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -