package com.dsk.cscec.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.EditAdvisoryBodyInfoBo;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyExistVo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;

/**
 * 咨询机构(SysAdvisoryBody)表服务接口
 *
 * @author sxk
 * @since 2023-12-12 10:12:09
 */
public interface AdvisoryBodyService extends IService<AdvisoryBody> {
    /**
     * 获取所有企业列表(咨询机构)数据
     *
     * @param advisoryBodySearchBo 查询实体
     * @param pageQuery            分页对象
     * @return 所有数据
     */
    TableDataInfo<AdvisoryBodySearchVo> queryAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery);

    /**
     * 校验咨询机构是否存在
     *
     * @param advisoryBodyName 咨询机构名称
     * @return 校验结果
     */
    AdvisoryBodyExistVo checkAdvisoryBodyExist(String advisoryBodyName);

    /**
     * 编辑咨询机构结算信息
     * 包含:
     * 新增咨询机构(advisory_body表)
     * 新增/更新咨询机构与项目关联信息(advisory_body_project表)
     *
     * @param editInfoBo 编辑信息
     * @return 编辑结果
     */
    Integer editAdvisoryBody(EditAdvisoryBodyInfoBo editInfoBo);

    /**
     * 每小时更新一次咨询机构经营范围
     */
    void updateAdvisoryBodyBusinessScope();
}

