package cn.superdesk.uniorder.service.organisation;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.dao.entity.organisation.SysOrganization;
import cn.superdesk.uniorder.dto.param.operationCenter.base.OperationCenterParam;
import cn.superdesk.uniorder.dto.param.organisation.SysOrgQueryParam;
import cn.superdesk.uniorder.dto.vo._function.select.SelectOptionOrg;
import cn.superdesk.uniorder.dto.vo.sys.SysOrgVo;
import cn.superdesk.uniorder.dto.vo.sys.SysSelectVo;
import cn.superdesk.uniorder.service.base.BaseService;

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

/**
 * @Description: Java类作用描述
 * @Author: linjinyu
 * @CreateDate: 9/3/20 3:45 PM
 * @UpdateUser: linjinyu
 * @UpdateDate: 9/3/20 3:45 PM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface SysOrganizationService extends BaseService<SysOrganization> {


    SysOrganization getByOutOrgId(Long outOrgId);

    List<SysOrganization> findByOutOrgId(Long outOrgId);

    List<SysOrganization> findByOutOrgIds(List<Long> outOrgIds);

    List<String> convertOutOrgIds2OrgNames(List<Long> outOrgIds);

    List<SysOrganization> findByOutOrgName(String outOrgName);

    List<SysOrganization> findByTvHeadData();

    R<List<SelectOptionOrg>> getProjectSelect(Map<String, Object> params, int pageNum, int pageSize);


    /****************************************** kafka start ******************************************/

    void mergeReceiveOrganization(String message);

    void deleteReceiveOrganization(String message);

    /****************************************** kafka   end ******************************************/


    Long countOutOrg();


    List<SysOrgVo> getOrgList(SysOrgQueryParam param);



    List<SysSelectVo> selectOrgList(Map<String,Object> params);

    /**
     * 福利商城 项目 通过企业查找项目
     */
    List<SysSelectVo> getOrgListByEnterprise(SysOrgQueryParam params);

    /**
     *  福利商城 和 服务之窗
     *  项目来源不同
     *  福利商城-通过企业表 获取
     *  服务之窗-通过项目表 获取
     */
    List<SysSelectVo> selectOrgListByPlatform(SysOrgQueryParam params);

}
