package com.blueland.bpm.manage.countAnalysis.dao;

/**
 * @author dsl
 * @version 1.0
 * @since  首页统计dao
 */
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.blueland.bpm.common.base.BaseIbatis3Dao;
import com.blueland.bpm.identity.model.Userrole;



@Repository
public class ProcessMonitorDao extends BaseIbatis3Dao<Userrole,String>{
	/**
	 * 待办最多流程
	 * @param params 
	 * @return
	 */
	public List<Map<String,Object>> getDoProcesss(Map<String, Object> params) {
		return getSqlSessionTemplate().selectList("getDoProcesss",params);
	}
	/**
	 * 耗时最长的流程
	 * @param params 
	 * @return
	 */
	public List<Map<String, Object>> getUseTimeMaxProcess(Map<String, Object> params) {
		return getSqlSessionTemplate().selectList("getUseTimeMaxProcess",params);
	}
	/**
	 * 超时最多的流程
	 * @param params 
	 * @return
	 */
	public List<Map<String, Object>> getOutTimeProcess(Map<String, Object> params) {
		return getSqlSessionTemplate().selectList("getOutTimeProcess",params);
	}
	/**
	 * 创建最多的流程
	 * @return
	 */
	public List<Map<String, Object>> getCreateProcess() {
		return getSqlSessionTemplate().selectList("getCreateProcess");
	}
	/**
	 * 节点平均耗时
	 * @param params 
	 * @return
	 */
	public List<Map<String, Object>> getActAvgUseTime(Map<String, Object> params) {
		return getSqlSessionTemplate().selectList("getActAvgUseTime",params);
	}
	/**
	 * 待办流程最多的节点
	 * @param params 
	 * @return
	 */
	public List<Map<String, Object>> getDoTaskMaxAct(Map<String, Object> params) {
		return getSqlSessionTemplate().selectList("getDoTaskMaxAct",params);
	}
	/**
	 * 人员分析详情
	 * @param params 
	 * @return
	 */
	public List<Map<String, Object>> getTopUserTask(Map<String, Object> params) {
		return getSqlSessionTemplate().selectList("getTopUserTask",params);
	}
	/**
	 * 通过应用id获取应用信息
	 * @param appId
	 * @return
	 */
	public Map<String, Object> getAppById(String appId) {
		return getSqlSessionTemplate().selectOne("getAppById",appId);
	}
	/**
	 * 待办最多流程 统计人数和待办流程总数
	 * @return
	 */
	public Map<String, Object> getDoTotalProcesss() {
		return getSqlSessionTemplate().selectOne("getDoTotalProcesss");
	}
	/**
	 * 超时处理最多的流程 统计人数和超时流程总数
	 * @return
	 */
	public List<Map<String, Object>> getOutTimeProcessTotal() {
		return getSqlSessionTemplate().selectList("getOutTimeProcessTotal");
	}
	/**
	 * 创建最多的流程统计
	 * @return
	 */
	public Map<String, Object> getCreateProcessTotal() {
		return getSqlSessionTemplate().selectOne("getCreateProcessTotal");
	}
	/**
	 * 平均耗时最长的流程-统计总数
	 * @return
	 */
	public Map<String, Object> getUseTimeMaxProcessTotal() {
		return getSqlSessionTemplate().selectOne("getUseTimeMaxProcessTotal");
	}
	/**
	 *  节点平均耗时统计
	 * @return
	 */
	public Map<String, Object> getActAvgUseTimeTotal() {
		return getSqlSessionTemplate().selectOne("getActAvgUseTimeTotal");
	}
	
}
