package cn.com.countrygarden.bi.main.service.dup;

import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;

import cn.com.countrygarden.bi.main.dto.ContractStatisticalarpojnameDTO;
import cn.com.countrygarden.bi.main.model.PageData;
import cn.com.countrygarden.bi.main.model.dup.ContractStatistical;
import cn.com.countrygarden.bi.main.model.dup.ContractTimedExecute;
import cn.com.countrygarden.bi.main.model.dup.ContranctStaticalDto;

/**
 * 
 * 
 * <pre>
 * 。合同录入统计Service
 * </pre>
 * 
 * @author developer developer@meicloud.com
 * @version 1.00.00
 * 
 *          <pre>
 * 修改记录
 *    修改后版本:     修改人：  修改日期:     修改内容:
 * </pre>
 */
public interface ContractStatisticalService {
	
	
	/**
	 * 查询所有
	 * @param contractStatistical
	 * @return
	 */
	List<ContractStatistical> AllContractStatisticalSelect(ContractStatistical contractStatistical);
	
	/**
	 * 导出所有合同的数据
	 */
	List<ContractStatistical> AllContractStatisticalSelect1(ContractStatistical contractStatistical);
	
	/**
	 * 合同未录入统计的组合查询
	 * @return
	 */
	PageData ContractStatisticalSelect(ContractStatistical object);
	
	/**
	 * 合同未审核的数据
	 */
	PageData contractStatisticalSelectNoExamine(ContractStatistical object);
	
	/**
	 * 合同已审核的数据
	 */
	PageData contractStatisticalSelectYesExamine(ContractStatistical object);
	
	/**
	 * 定时调度插入的接口
	 */
	boolean inserContranctStatical(List<ContractStatistical> object);
	
	/**
	 * 统计数量的接口
	 * @return
	 */
	ContranctStaticalDto selecttotal();
	
	/**
	 * 查询所有的区域
	 */
	List<ContractStatistical> findOrderCode();
	
	/**
	 * 查询对应区域的下的项目
	 * @param OrganCode
	 * @return
	 */
	List<ContractStatistical> findCommName(String OrganCode);
	
	/**
	 * 根据项目名称与区域名称查询项目id与区域代码
	 * @param map
	 * @return
	 */
	Map<String,Object> findCommidAndOrganCode(Map<String,Object> map);
	
	/**
	 * 查询所有的项目--支持模糊查询
	 * @param str
	 * @return
	 */
	List<ContractStatistical> findAllCommName(String str);
	
	/**
	 * 查询所有的流程编号
	 */
	List<String> findAllBipNumber();

	
	/**
	 * 查询未录入的信息.不更新自身表
	 * @param contractStatistical
	 * @return
	 */
	PageData ContractStatisticalSelect1(ContractStatistical contractStatistical);

	/**
	 * 查询调度时间
	 * @return
	 */
	ContractTimedExecute findDateStart();

	/**
	 * 查询区域经理
	 */
	List<ContractStatisticalarpojnameDTO> areaquname(String areaid);

	/**
	 * 查询项目经理
	 */
	List<ContractStatisticalarpojnameDTO> projectname(Integer projectId);
	
    /**
    * 删除已录入的
   * @throws ParseException 
    */
    int DeleteEnteredContractStatistical(ContractStatistical contractStatistical);
}
