package com.hfkj.service;

import com.hfkj.entity.BsCompany;
import com.hfkj.entity.BsOrganization;
import com.hfkj.entity.SecUser;

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

/**
 * @ClassName BsCompanyService
 * @Description
 * @Author 杜江
 * @Date 2020/7/23 11:40
 * @Version 1.0
 */
public interface BsCompanyService {

    /**
     *
     * @Title: getCompanyById
     * @Description: 根据id查询公司
     * @author: 杜江
     * @Date: 2020/7/23 15:17
     * @param: [id]
     * @return: com.shinwoten.train.entity.BsCompany
     * @throws
     */
    BsCompany getCompanyById(Long id);



    /**
     *
     * @Title: findPage
     * @Description: 分页查询公司列表
     * @author: 杜江
     * @Date: 2020/7/6 17:25
     * @param: [map]
     * @return: java.util.List<com.shinwoten.plat.entity.SecCompany>
     * @throws
     */
    List<BsCompany> findPage(Map<String, String> map);

    /**
     *
     * @Title: addCompanyInfo
     * @Description: 添加公司
     * @author: 杜江
     * @Date: 2020/7/2 16:55
     * @param: [secCompany, secUser, secOrganization]
     * @return: void
     * @throws
     */
    void addCompanyInfo(BsCompany bsCompany, SecUser secUser, BsOrganization secOrganization) throws Exception;

    /**
     *
     * @Title: updateCompany
     * @Description: 修改公司
     * @author: 杜江
     * @Date: 2020/7/2 16:47
     * @param: [baseCompany]
     * @return: int
     * @throws
     */
    int updateCompany(BsCompany secCompany);

    /**
     *
     * @Title: getCompany
     * @Description: 条件查询公司
     * @author: 杜江
     * @Date: 2020/7/2 16:54
     * @param: [map]
     * @return: java.util.List<com.shinwoten.plat.entity.SecCompany>
     * @throws
     */
    List<BsCompany> getCompany(Map<String, String> map);

    /**
     *
     * @Title: updateCompanyAndDept
     * @Description: 修改公司和组织架构
     * @author: 杜江
     * @Date: 2020/7/2 17:01
     * @param: [secCompany, secOrganization]
     * @return: void
     * @throws
     */
    void updateCompanyAndDept(BsCompany secCompany, SecUser secUser, BsOrganization secOrganization);

    /**
     *
     * @Title: selectCompanyByName
     * @Description: 根据公司名称查询
     * @author: 杜江
     * @Date: 2020/7/2 17:52
     * @param: [name]
     * @return: com.shinwoten.plat.entity.SecCompany
     * @throws
     */
    BsCompany selectCompanyByName(String name);

    /**
     *
     * @Title: selectCompanyByRegion
     * @Description: 查询区域下是否存在公司
     * @author: 杜江
     * @Date: 2020/7/27 11:52
     * @param: [regionId]
     * @return: com.shinwoten.train.entity.BsCompany
     * @throws
     */
    BsCompany selectCompanyByRegion(String regionId);
}
