reportdaoimpl.java

来自「基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰」· Java 代码 · 共 139 行

JAVA
139
字号
package com.yuanchung.sales.dao.report.impl;

import java.io.UnsupportedEncodingException;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.yuanchung.sales.dao.report.ReportDAO;
import com.yuanchung.sales.model.report.Report;

/**
 * 报表DAO
 * @author gzq
 *
 */
public class ReportDAOImpl extends ReportBaseDAOImpl implements ReportDAO {
	private static final Log log = LogFactory.getLog(ReportDAOImpl.class);
	/**
	 * 保存报表
	 * @param report  报表
	 */
	public void save(Report transientInstance) {
		log.debug("saving Report instance");
		getHibernateTemplate().save(transientInstance);
		log.debug("save successful");
	}

	/**
	 * 删除报表
	 * @param report  报表
	 */
	public void delete(Report persistentInstance) {
		log.debug("deleting Report instance");
		getHibernateTemplate().delete(persistentInstance);
		log.debug("delete successful");
	}

	/**
	 * 根据ID读取报表
	 * @param id  报表ID
	 * @return
	 */
	public Report findById(java.lang.Integer id) {
		log.debug("getting Report instance with id: " + id);
		return (Report) getHibernateTemplate().get("com.yuanchung.sales.model.report.Report", id);
	}

	/**
	 * 读取所有报表
	 * @return  List<Report>
	 */
	public List findAll() {
		log.debug("finding all Report instances");
		return getHibernateTemplate().find("from Report");
	}
	/**
	 * 根据时间范围获得新增客户数
	 * @param startDate  开始日期
	 * @param endDate    结束日期
	 * @return List(){month,customerCount}
	 */
	public List getNewCreatedCustomerCount(String startDate,String endDate){
		StringBuilder hqlSB = new StringBuilder();
		hqlSB.append("select ");
		hqlSB.append("concat(extract(year from inDate),'-',extract(month from inDate)),");
		hqlSB.append("count(*) ");
		hqlSB.append("from Customer ");
		hqlSB.append("where ");
		hqlSB.append("inDate between ? and ? group by concat(extract(year from inDate),'-',extract(month from inDate))");
		return getHibernateTemplate().find(hqlSB.toString(), new Object[]{startDate,endDate});
	}
	/**
	 * 获得已忽视的客户数
	 * @param startDate  开始日期
	 * @param endDate    结束日期
	 * @return List(){month,customerCount}
	 */
	public List getIgnoredCustomerCount(String startDate,String endDate){
		StringBuilder sqlSB = new StringBuilder();
		sqlSB.append("select ");
		sqlSB.append("concat(extract(year from create_date),'-',extract(month from create_date)),");
		sqlSB.append("count(*) ");
		sqlSB.append("from activity_task ");
		sqlSB.append("where recordId is not null and ");
		sqlSB.append("datediff(now(), cast(create_date as date)) > 60 and ");
		sqlSB.append("create_date between :startDate and :endDate ");
		sqlSB.append("group by ");
		sqlSB.append("concat(extract(year from create_date),'-',extract(month from create_date));");
		
		List lst = this.getSession().createSQLQuery(sqlSB.toString()).setString("startDate", startDate).setString("endDate", endDate).list();
		if(lst != null && lst.size() > 0){
			for(int i=0,len=lst.size();i<len;i++){
				Object[] objs = (Object[])lst.get(i);
				byte[] strBytes = (byte[])objs[0];
				try {
					objs[0] = new String(strBytes, "UTF-8");
				} catch (UnsupportedEncodingException e) {
					log.error(this.getClass(), e);
				}
			}
		}
		
		return lst;
	}
	/**
	 * 获得最近联系的客户数
	 * @param startDate  开始日期
	 * @param endDate    结束日期
	 * @return List(){month,customerCount}
	 */
	public List getRecentlyContactCustomerCount(String startDate,String endDate){
		StringBuilder sqlSB = new StringBuilder();
		sqlSB.append("select ");
		sqlSB.append("concat(extract(year from create_date),'-',extract(month from create_date)),");
		sqlSB.append("count(*) ");
		sqlSB.append("from activity_task ");
		sqlSB.append("where recordId is not null and ");
		sqlSB.append("datediff(now(), cast(create_date as date)) < 30 and ");
		sqlSB.append("create_date between :startDate and :endDate ");
		sqlSB.append("group by ");
		sqlSB.append("concat(extract(year from create_date),'-',extract(month from create_date))");
		
		List lst = this.getSession().createSQLQuery(sqlSB.toString()).setString("startDate", startDate).setString("endDate", endDate).list();
		if(lst != null && lst.size() > 0){
			for(int i=0,len=lst.size();i<len;i++){
				Object[] objs = (Object[])lst.get(i);
				byte[] strBytes = (byte[])objs[0];
				try {
					objs[0] = new String(strBytes, "UTF-8");
				} catch (UnsupportedEncodingException e) {
					log.error(this.getClass(), e);
				}
			}
		}
		
		return lst;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?