📄 relationmanageimpl.java
字号:
package com.yuanchung.sales.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import com.yuanchung.sales.config.ClassCodeMgr;
import com.yuanchung.sales.constants.CorrelationConstant;
import com.yuanchung.sales.dao.RelationManageDAO;
import com.yuanchung.sales.dao.busiOpport.BoStageHistoryDAO;
import com.yuanchung.sales.dao.busiOpport.BusiOpportDAO;
import com.yuanchung.sales.dao.customer.ContactDAO;
import com.yuanchung.sales.dao.customer.CustomerDAO;
import com.yuanchung.sales.dao.taskEvent.EventDAO;
import com.yuanchung.sales.dao.taskEvent.TaskDAO;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.exception.IllegalParameterException;
import com.yuanchung.sales.exception.ObjNotFoundException;
import com.yuanchung.sales.exception.SystemException;
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.taskEvent.ActivityTask;
import com.yuanchung.sales.model.taskEvent.Event;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.util.DateTimeTool;
import com.yuanchung.sales.util.StringTool;
import com.yuanchung.sales.vo.CustomerVo;
import com.yuanchung.sales.vo.DeleteItemVo;
import com.yuanchung.sales.vo.busiOpport.BusinessOpportunityVo;
import com.yuanchung.sales.vo.contact.ContactVo;
import com.yuanchung.sales.vo.taskEvent.ActivityTaskVo;
import com.yuanchung.sales.vo.taskEvent.EventVo;
public class RelationManageImpl implements RelationManage{
private static Logger logger = Logger.getLogger(RelationManage.class);
private RelationManageDAO relationManageDao;
public RelationManageDAO getRelationManageDao() {
return relationManageDao;
}
public void setRelationManageDao(RelationManageDAO relationManageDao) {
this.relationManageDao = relationManageDao;
}
private CustomerDAO customerDao;
public void setCustomerDao(CustomerDAO customerDao) {
this.customerDao = customerDao;
}
private BusiOpportDAO busiOpportDao;
public void setBusiOpportDao(BusiOpportDAO busiOpportDao) {
this.busiOpportDao = busiOpportDao;
}
private ContactDAO contactDao;
public void setContactDao(ContactDAO contactDao) {
this.contactDao = contactDao;
}
private TaskDAO taskDAO;
public void setTaskDAO(TaskDAO taskDAO) {
this.taskDAO = taskDAO;
}
private EventDAO eventDAO;
public void setEventDAO(EventDAO eventDAO) {
this.eventDAO = eventDAO;
}
private BoStageHistoryDAO boshDAO;
/**
* @return the boshDAO
*/
public BoStageHistoryDAO getBoshDAO() {
return boshDAO;
}
/**
* @param boshDAO the boshDAO to set
*/
public void setBoshDAO(BoStageHistoryDAO boshDAO) {
this.boshDAO = boshDAO;
}
/**
* 根据具体实体查找关联实体
* @param entityACode查找实体编码名称
* @param entityBCode 外键名
* @param entityBId 关联值
* @return 返回查找的实体集
*/
public List getEntities(int entityACode, int entityBCode, int entityBId)
throws ApplicationException {
try{
switch(entityACode){
case ClassCodeMgr.CUSTOMER_CONTACTINT://查找联系人
if(entityBCode == ClassCodeMgr.CUSTOMERINT){//若是客户
return customerDao.findContactByCustomerId(entityBId);
}
if(entityBCode == ClassCodeMgr.BUSINESS_OPPORTINT){//若是业务机会
//return contactDao.getById(entityBId);
}
case ClassCodeMgr.BUSINESS_OPPORTINT://查找业务机会
if(entityBCode == ClassCodeMgr.CUSTOMERINT){//若是客户
return customerDao.findBusiOpportByCustomerId(entityBId);
} else if (entityBCode == ClassCodeMgr.CUSTOMER_CONTACTINT) {//若是联系人
return contactDao.getBusiOpportsByContactId(entityBId);
}
// case ClassCodeMgr.BUSINESS_OPPORTINT://查找业务机会
// if(entityBCode == ClassCodeMgr.CUSTOMER_CONTACTINT){//若是联系人
// return busiOpportDao.getBusiOpportsByContactId(entityBId);
// }
default:
return null;
}
}catch(Exception e){
e.printStackTrace();
logger.error("搜索数据异常...");
throw new ObjNotFoundException(Constants.WITHOUTDATA);
}
}
/**活动--->任务,事件
* 根据相关项查找任务
* @param relationId 相关项ID
* @param recordId 相关项记录ID
* @param executeState 执行状态 3表示已处理,其余表示未处理
* @return 返回活动集
* @throws ApplicationException 异常处理
*/
public List<ActivityTaskVo> getActivityRasksByRelation(String relationId, int recordId, int executeState)
throws ApplicationException {
try{
List activityRasks = relationManageDao.getActivityRasksByRelation(relationId, recordId, executeState);
logger.debug("我的活动..."+activityRasks);
return activityRasksToActivityVos(activityRasks);
}catch(Exception e){
logger.error(e.getMessage());
e.printStackTrace();
throw new ObjNotFoundException(Constants.WITHOUTDATA);
}
}
/**活动--->任务,事件
* 根据相关项查找事件
* @param relationId 相关项ID
* @param recordId 相关项记录ID
* @param isOverdue 是否是过期事件
* @return
* @throws ApplicationException
*/
public List<EventVo> getEventByRelation(String relationId, int recordId, boolean isOverdue)
throws ApplicationException {
try{
//若相关项为空
if(!StringTool.isNotBlank(relationId)) {
logger.error("the relation param is illegal!");
throw new ApplicationException("the relation param is illegal!");
}
List events = relationManageDao.getEventByRelation(relationId, recordId, isOverdue);
logger.debug("状态"+isOverdue+"的事件///"+events);
return eventToEventVos(events);
}catch(Exception e){
e.printStackTrace();
throw new ApplicationException(Constants.WITHOUTDATA);
}
}
/**
* 活动--->任务
* @param contactId联系人ID
* @param executeState执行状态
* @return
* @throws ApplicationException
*/
public List getActivityRasks(int contactId, int executeState) throws ApplicationException {
try{
List activityRasks = relationManageDao.getActivityRasks(contactId, executeState);
return activityRasksToActivityVos(activityRasks);
}catch(Exception e){
e.printStackTrace();
logger.error(Constants.DATABASEFINDDATAEXCEPTION);
throw new ApplicationException(Constants.DATABASEFINDDATAEXCEPTION);
}
}
/**
* 查找是否过期的事件
* @param contactId
* @param isNotOverdue
* @return
* @throws ApplicationException
*/
public List getEvents (int contactId, boolean isNotOverdue) throws ApplicationException {
try{
List events = relationManageDao.getEvents(contactId, isNotOverdue);
return eventToEventVos(events);
}catch(Exception e) {
e.printStackTrace();
logger.error("find events error");
throw new ApplicationException("find events error");
}
}
//将事件PO集转化成VO集
public List<EventVo> eventToEventVos(List events)throws ApplicationException {
try{
List<EventVo> eventList = new ArrayList<EventVo>();
for(Object o : events) {
Event e = (Event)o;
CustomerContact contact = e.getCustomerContact();
User assigner = customerDao.getUserById(e.getAssignerId());
if(contact != null) {
eventList.add(new EventVo(e.getId(), e.getUser(), e.getSubject(),
e.getEndTime(), e.getFunctionId(), e.getRecordId(), getRecordName(e.getFunctionId(), e.getRecordId()),
contact.getId(), contact.getName(),
e.getLastModifyTime(), e.getModifyManId(), assigner.getId(), assigner.getFamilyName()));
}else {
eventList.add(new EventVo(e.getId(), e.getUser(), e.getSubject(),
e.getEndTime(), e.getFunctionId(), e.getRecordId(), getRecordName(e.getFunctionId(), e.getRecordId()),
e.getLastModifyTime(), e.getModifyManId(), assigner.getId(), assigner.getFamilyName()));
}
}
return eventList;
}catch(Exception e){
e.printStackTrace();
throw new ApplicationException(Constants.WITHOUTDATA);
}
}
//将任务PO集转化成VO集
public List<ActivityTaskVo> activityRasksToActivityVos(List activityRasks)throws ApplicationException {
try{
List<ActivityTaskVo> activityRaskVoList = new ArrayList<ActivityTaskVo>();
for(Object o : activityRasks) {
ActivityTask ar = (ActivityTask)o;
logger.debug("任务为空吗.."+ar);
User assigner = customerDao.getUserById(ar.getAssignerId());
logger.debug("难道找不到用户:"+ar.getAssignerId());
logger.debug("用户为空吗"+assigner);
CustomerContact contact = ar.getCustomerContact();
logger.debug("联系人为空吗..."+contact);
if(contact != null) {//若联系人不为空
activityRaskVoList.add(new ActivityTaskVo(ar.getId(), ar.getSubject(), ar.getExecuteState(),
ar.getFunctionId(), ar.getRecordId(),getRecordName(ar.getFunctionId(), ar.getRecordId()), ar.getFinalTime(), ar.getBeFirst(), assigner.getId(), assigner.getFamilyName(), ar.getLastModifyTime(),
contact.getId(), contact.getName()));
}else {
activityRaskVoList.add(new ActivityTaskVo(ar.getId(), ar.getSubject(), ar.getExecuteState(),
ar.getFunctionId(), ar.getRecordId(),getRecordName(ar.getFunctionId(), ar.getRecordId()), ar.getFinalTime(), ar.getBeFirst(), assigner.getId(), assigner.getFamilyName(), ar.getLastModifyTime()));
}
}
return activityRaskVoList;
}catch(Exception e){
e.printStackTrace();
throw new ApplicationException(Constants.WITHOUTDATA);
}
}
//查找相关项的名称
public String getRecordName(String functionId, Integer recordId) throws ApplicationException {
try{
if(!StringTool.isNotBlank(functionId) || recordId == null) {
//若相关项为空
return "";
}
int function = Integer.parseInt(functionId);
String recordName = "";
switch(function) {
case ClassCodeMgr.CUSTOMERINT:
Customer customer = customerDao.getById(recordId);//查找客户
recordName = customer.getCustomerName();
break;
case ClassCodeMgr.BUSINESS_OPPORTINT://查找业务机会
BusinessOpportunity busiOpport = busiOpportDao.getById(recordId);
recordName = busiOpport.getBusiOpportName();
break;
}
return recordName;
}catch(Exception e) {
e.printStackTrace();
logger.error("find relation recordName error");
throw new ApplicationException("");
}
}
//将联系人PO集转化成VO集
public List<ContactVo> contactsToContactVos(List contacts)throws ApplicationException {
try{
List<ContactVo> contactList = new ArrayList<ContactVo>();
for(Object o : contacts){
CustomerContact contact = (CustomerContact)o;
contactList.add(new ContactVo(contact.getId(), contact.getName(), contact.getPosition(),
contact.getMobilePhone(), contact.getEmail()));
}
return contactList;
}catch(Exception e){
e.printStackTrace();
throw new ApplicationException(Constants.WITHOUTDATA);
}
}
//将业务机会PO集转化成VO集
public List<BusinessOpportunityVo> busiOpportToBusiOpportVos(List busiOpports)throws ApplicationException {
try{
List<BusinessOpportunityVo> busiOpportList = new ArrayList<BusinessOpportunityVo>();
if(busiOpports != null){
for(Object o : busiOpports){
BusinessOpportunity busiOpport = (BusinessOpportunity)o;
busiOpportList.add(new BusinessOpportunityVo(busiOpport.getId(),
busiOpport.getCustomer(), busiOpport.getBusiOpportName(),
busiOpport.getStageOf(), busiOpport.getPreTransactionDate()));
}
}
return busiOpportList;
}catch(Exception e){
e.printStackTrace();
throw new ApplicationException(Constants.WITHOUTDATA);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -