package com.zcloud.personnel.positioning.api;

import com.alibaba.cola.dto.PageResponse;
import com.zcloud.personnel.positioning.dto.BiAreaFenceQry;
import com.zcloud.personnel.positioning.dto.BiCompanyOnlinePersonQry;
import com.zcloud.personnel.positioning.dto.BiCompanyFenceQry;
import com.zcloud.personnel.positioning.dto.BiPersonLocationQry;
import com.zcloud.personnel.positioning.dto.BiPersonPositionQry;
import com.zcloud.personnel.positioning.dto.BiPersonTraceQry;
import com.zcloud.personnel.positioning.dto.clientobject.BiAreaFenceCO;
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyLocationCO;
import com.zcloud.personnel.positioning.dto.clientobject.BiCompanyOnlinePersonStatCO;
import com.zcloud.personnel.positioning.dto.clientobject.BiOverviewCO;
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonLocationCO;
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonPositionCO;
import com.zcloud.personnel.positioning.dto.clientobject.BiPersonTraceCO;

import java.util.List;

/**
 * BI大屏查询服务。
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
public interface PersonnelPositioningBiServiceI {
    BiOverviewCO queryOverview();

    List<BiCompanyLocationCO> listCompanyLocation(Integer portArea);

    PageResponse<BiAreaFenceCO> listCompanyFence(BiCompanyFenceQry qry);

    PageResponse<BiPersonLocationCO> listPersonLocation(BiPersonLocationQry qry);

    List<BiPersonPositionCO> listPersonPosition(BiPersonPositionQry qry);

    BiCompanyOnlinePersonStatCO queryCompanyOnlinePersonStat(BiCompanyOnlinePersonQry qry);

    BiPersonTraceCO queryPersonTrace(BiPersonTraceQry qry);

    PageResponse<BiAreaFenceCO> listAreaFence(BiAreaFenceQry qry);

    List<BiAreaFenceCO> listAllAreaFence();

    BiAreaFenceCO queryAreaFenceById(Long id);
}
