package com.zcloud.personnel.positioning.service;

import com.alibaba.cola.dto.PageResponse;
import com.zcloud.personnel.positioning.api.PersonnelPositioningBiServiceI;
import com.zcloud.personnel.positioning.command.query.PersonnelPositioningBiQueryExe;
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 lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * BI large-screen query service implementation.
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
@Service
@AllArgsConstructor
public class PersonnelPositioningBiServiceImpl implements PersonnelPositioningBiServiceI {
    private final PersonnelPositioningBiQueryExe personnelPositioningBiQueryExe;

    @Override
    public BiOverviewCO queryOverview() {
        return personnelPositioningBiQueryExe.queryOverview();
    }

    @Override
    public List<BiCompanyLocationCO> listCompanyLocation(Integer portArea) {
        return personnelPositioningBiQueryExe.listCompanyLocation(portArea);
    }

    @Override
    public PageResponse<BiAreaFenceCO> listCompanyFence(BiCompanyFenceQry qry) {
        return personnelPositioningBiQueryExe.listCompanyFence(qry);
    }

    @Override
    public PageResponse<BiPersonLocationCO> listPersonLocation(BiPersonLocationQry qry) {
        return personnelPositioningBiQueryExe.listPersonLocation(qry);
    }

    @Override
    public List<BiPersonPositionCO> listPersonPosition(BiPersonPositionQry qry) {
        return personnelPositioningBiQueryExe.listPersonPosition(qry);
    }

    @Override
    public BiCompanyOnlinePersonStatCO queryCompanyOnlinePersonStat(BiCompanyOnlinePersonQry qry) {
        return personnelPositioningBiQueryExe.queryCompanyOnlinePersonStat(qry);
    }

    @Override
    public BiPersonTraceCO queryPersonTrace(BiPersonTraceQry qry) {
        return personnelPositioningBiQueryExe.queryPersonTrace(qry);
    }

    @Override
    public PageResponse<BiAreaFenceCO> listAreaFence(BiAreaFenceQry qry) {
        return personnelPositioningBiQueryExe.listAreaFence(qry);
    }

    @Override
    public List<BiAreaFenceCO> listAllAreaFence() {
        return personnelPositioningBiQueryExe.listAllAreaFence();
    }

    @Override
    public BiAreaFenceCO queryAreaFenceById(Long id) {
        return personnelPositioningBiQueryExe.queryAreaFenceById(id);
    }
}
