package com.palmnest.dao.estateserve;

import java.util.List;
import java.util.Map;

import com.palmnest.application.bean.Page;
import com.palmnest.dao.GenericDao;
import com.palmnest.model.estateserve.AppUser;
import com.palmnest.model.property.TbOrganization;
import com.palmnest.model.property.VirtualArchitecture;

/**
 * 企业管理Dao类
 *
 * @author longmeizhen
 */
public interface VirtualArchDao extends GenericDao<VirtualArchitecture, Integer> {

	/**
	 * 分页信息
	 *
	 * @param floorId
	 * @param roomId
	 * @param isZuStatus
	 * @param virName
	 * @param pageNo
	 * @param pageSize
	 * @return
	 * @throws Exception
	 */
	public Page queryVirtualArchList(String orgId, String floorId, String roomId, String isZuStatus, String virName, int pageNo, int pageSize) throws Exception;

	/**
	 * 根据企业ID获取负责人信息
	 *
	 * @param virId
	 * @return
	 * @throws Exception
	 */
	public List<AppUser> getAppUserByVirAndIsRes(int virId) throws Exception;

	public List<VirtualArchitecture> getVirByParamt(String floorId, String roomId, String isZuStatus, String virName, int pageNo, int pageSize) throws Exception;

	public List<VirtualArchitecture> getVirByCode(String code) throws Exception;

	public List<VirtualArchitecture> getVirByName(String name) throws Exception;

	public List<VirtualArchitecture> getVirByName(String name, String orgId) throws Exception;

	public List<TbOrganization> getBuild() throws Exception;

	public Page getVirByIds(int pageNo, int pageSize, String virIds) throws Exception;

	public List<VirtualArchitecture> getVirByEnLess() throws Exception;

	public List<VirtualArchitecture> getVirByRoomId(String roomIds) throws Exception;

	public List<VirtualArchitecture> getVirListByBuildId(String buildId, String virName);

	public List<Map<String, Object>> getVirByStartTime(String startTime, String endTime) throws Exception;

	/**
	 * 获取该项目下所有有效的企业
	 *
	 * @param orgId
	 * @return
	 */
	public List<Map<String, Object>> getVirInfoDtoByOrgId(String orgId, String virtName);

	public List<VirtualArchitecture> getVirByCode(String code, String orgId) throws Exception;

	List<VirtualArchitecture> getVirByOrgIdAndVirName(Integer virtualId, Integer level, int orgId, String virName);

	List<VirtualArchitecture> getVirByOrgIdAndNoAgant(Integer id, int orgId, String virName);

	/**
	 * 获取企业统计数据
	 *
	 * @param orgId
	 * @param dateType
	 * @param date
	 * @param endDate
	 * @return
	 */
	List<Map<String, Object>> getVirtualDataByInfo(String orgId, int dateType, String date, String endDate);

	/**
	 * 根据房间号获取企业
	 *
	 * @param roomId
	 * @return
	 */
	List<Map<String, Object>> getVirtualByRoomId(String roomId);

	/**
	 * 获取代理企业统计数据
	 *
	 * @return
	 */
	List<Map<String, Object>> getVirtualArchAgent();
}
