package com.lz.modules.flow.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.common.utils.PageUtils;
import com.lz.common.utils.R;
import com.lz.modules.app.entity.StaffSimpleInfo;
import com.lz.modules.flow.entity.EvaluationGroup;
import com.lz.modules.flow.req.EvaluationGroupReq;
import com.lz.modules.performance.dto.CheckStaffDto;
import com.lz.modules.performance.req.CheckStaffReq;
import com.lz.modules.sys.entity.SysUserEntity;

import java.util.List;

/**
* <p>
* 考评组表 服务类
* </p>
*
* @author quyixiao
* @since 2020-10-13
*/
public interface EvaluationGroupService extends IService<EvaluationGroup> {



	EvaluationGroup selectEvaluationGroupById(Long id);


	Long insertEvaluationGroup(EvaluationGroup evaluationGroup);


	int updateEvaluationGroupById(EvaluationGroup evaluationGroup);


	int updateCoverEvaluationGroupById(EvaluationGroup evaluationGroup);


	R deleteEvaluationGroupById(Long id);

	//获取参与考核的所有人员
	List<String> selectAllStaffIdsByGroupId(Long id);


	PageUtils selectEvaluationGroupByReq(EvaluationGroupReq req, SysUserEntity sysUserEntity);

	List<EvaluationGroup> selectEvaluationGroupByIds(List<Long> ids);

	List<EvaluationGroup> selectEvaluationGroupByNotIds(List<Long> ids);

	EvaluationGroup selectEvaluationGroupByName(String name);
	//获取考核组里面所有参与的人员信息，去除重复，去除离职
	List<StaffSimpleInfo> selectAllStaffSimpleInfoByGroupId(EvaluationGroup evaluationGroup);

	void deleteByCopyIds(List<Long> ids,Long startId);

	R checkStaff(CheckStaffReq checkStaffReq);

	String getEvaluationCopyIdsByEvaluationIds(String evaluationIds,Long startId);

    EvaluationGroup selectEvaluationGroupByCopyId(Long copyId, Long startId);
}