package com.bonus.gs.sub.evaluate.evaluate.dao;


import com.bonus.gs.sub.evaluate.evaluate.beans.EvaluatePersonBean;
import com.bonus.gs.sub.evaluate.evaluate.beans.OrganizationalBean;
import com.bonus.gs.sub.evaluate.evaluate.beans.TeamEvaluateBean;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author 黑子
 */
@Mapper
public interface OrganizationalDao{

    /**
     * 、查询 组织机构下拉选
     * @param bean
     * @return
     */
    List<OrganizationalBean> getDeptSelected(OrganizationalBean bean);

    /**
     * 外包商下拉选
     * @param bean
     * @return
     */
    List<OrganizationalBean> getOutSourceSelected(OrganizationalBean bean);

    /**
     * 新增人员下拉选
     * @param bean
     * @return
     */
    List<OrganizationalBean> getAddUserSelected(OrganizationalBean bean);

    /**
     * 查询树结构
     * @param bean
     * @return
     */
    List<OrganizationalBean> getTreeList(OrganizationalBean bean);

    /**
     * 新增数据入库
     * @param bean
     * @return
     */
    int addData(OrganizationalBean bean);

    /**
     * 新增部门数据
     * @param bean
     */
    int addDepartData(OrganizationalBean bean);

    /**
     * 新增人员库
     * @param bean
     */
    int addUserData(OrganizationalBean bean);

    /**
     * 删除人员出库记录
     * @param bean
     */
    int deleteUserOut(OrganizationalBean bean);

    /**
     * 修改班组长
     * @param bean
     * @return
     */
    int updateData(OrganizationalBean bean);

    /**
     * 依据id查询详情
     * @param bean
     * @return
     */
    OrganizationalBean getDataDetails(OrganizationalBean bean);

    /**
     * 人员出库
     * @param bean
     * @return
     */
    int userOutData(OrganizationalBean bean);

    /**
     *
     * @param data
     */
    void insertUserOutData(OrganizationalBean data);

    /**
     * 关联id
     * @param bean
     */
    void insertDeptLink(OrganizationalBean bean);

    /**
     * 修改人员组织机构
     * @param bean
     */
    int updateDept(OrganizationalBean bean);

    /**
     * 查询班组下人员
     * @param bean
     * @return
     */
    List<OrganizationalBean> getTeamUser(OrganizationalBean bean);

    /**
     * 人员身份证号码校验
     * @param bean
     * @return
     */
    int  getUserNum(OrganizationalBean bean);

    /**
     * 修改人员数据
     * @param bean
     */
    void updateUserInfo(OrganizationalBean bean);

    /**
     * 同一对分包商下 名称不能重复
     * @param bean
     * @return
     */
    int getTeamName(OrganizationalBean bean);

    /**
     * 查询人员数据进行出库
     * @param bean
     * @return
     */
    List<OrganizationalBean> getUserList(OrganizationalBean bean);


    /**
     * 出场数据插入
     * @param teamEvaluateBean
     */
    int insertTeamData(TeamEvaluateBean teamEvaluateBean);

    /**
     * 班组出场
     * @param bean 实体类
     */
    void theTeamExits(OrganizationalBean bean);
    /**
     * 查询评价人员列表
     * @param bean
     * @return
     */
    List<EvaluatePersonBean> getEvaluatePersonList(EvaluatePersonBean bean);

    List<OrganizationalBean> getLeaderSelect(OrganizationalBean bean);

    void updateUserOutStatus(OrganizationalBean bean);

    void deleteUserOutData(OrganizationalBean bean);

    int getConsIsExistByPro(OrganizationalBean bean);
}
