package cn.cecep.talroad.service;

import cn.cecep.talroad.domain.PcFactory;
import cn.cecep.talroad.vo.PcFactoryLicensingStatusVo;
import cn.cecep.talroad.vo.PcFactoryVo;
import cn.cecep.talroad.vo.PcProfessionLicensingStatusVo;
import cn.cecep.talroad.vo.PwxkFactoryVo;
import cn.cecep.talroad.vo.analysis.FactoryOutletVo;
import cn.cecep.talroad.vo.query.PcFactoryQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

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

/**
 * 企业基本信息Service接口
 *
 * @author szhpt
 * @date 2023-01-11*/
public interface IPcFactoryService extends  IService<PcFactory>
{

    List<Map<String, Object>> getDeviceType(String id);

    List<PcFactoryVo> search(Page<PcFactoryVo> page, PcFactoryQuery.SearchVo searchVo, String home,String regionCode);

    /**
     * 获取指定企业标签描述
     * @return
     */
    List<String> getLabel(String factoryId, Boolean isMain);

    /**
     * 批量获取指定企业标签描述
     * @param factoryIds 企业id列表
     * @param isMain 是否重点标签 为null则查全部标签
     * @return
     */
    Map<String, List<String>> getLabel(List<String> factoryIds, Boolean isMain);

    PcFactoryVo getInfo(String id);

    void batchCreateLabel();


    /**
     * 定时更新 企业与接入数据类型关联表
     */
    void timingUpdateAdslFactory();

    PcFactory selectPcFactoryById(String factoryId);

    List<PcFactoryVo.WarningRank> getWarningRank();

    FactoryOutletVo selectByFactoryAndOutletId(String factoryId, String outletId);

    void editBatch(PcFactory[] pcFactoryArr);

    PcFactoryLicensingStatusVo licenSingStatusList();

    PcProfessionLicensingStatusVo professionStatusChart();

    List<PwxkFactoryVo> selectPwxkList(Page<PwxkFactoryVo> page, PcFactoryQuery.SearchVo searchVo);
}
