⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 relationmanageimpl.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -