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.model.RoleModel;
import com.lz.modules.app.model.TaskModel;
import com.lz.modules.flow.entity.StaffRole;
import com.lz.modules.sys.entity.SysMenuEntity;
import com.lz.modules.sys.entity.SysRoleEntity;

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

/**
* <p>
* 流转关系表 服务类
* </p>
*
* @author quyixiao
* @since 2020-08-18
*/
public interface StaffRoleService extends IService<StaffRole> {



	StaffRole selectStaffRoleById(Long id);


	Long insertStaffRole(StaffRole staffRole);


	int updateStaffRoleById(StaffRole staffRole);


	int updateCoverStaffRoleById(StaffRole staffRole);


	int deleteStaffRoleById(Long id);


    StaffRole selectByStaffId(Long staffId);

	List<StaffRole> selectByRole(String departmentLevel);

    PageUtils queryPage(Map<String, Object> params);

	void deleteBatchIds(List<Long> asList);

    SysRoleEntity getRole(Long id);

	List<SysMenuEntity> selectMenuList();

	List<StaffRole> selectByGroupId(Long id);

	List<StaffRole> selectStaffRolesByStaffId(List<Long> mIds);

    R selectRoleInfoBy(RoleModel roleModel);

	R selectRoleDetail(RoleModel roleModel);

	R roleAddOrUpdate(RoleModel roleModel);

	R delete(RoleModel roleModel);

	List<StaffRole> selectAllByStaffId(Long userId);

	Map<String, Integer> getRoleByUserId(Long userId);
	//获取主管理员
    List<StaffRole> selectMastRoles();
	//获取管理全部考评组
	List<StaffRole> selectAllGroupManageRoles();

	List<StaffRole> selectAllStaffRoleByDepartmentLevel(List<String> asList);
	//获取指定组的请按不管理人员
	List<StaffRole> selectByEvaluationGroupId(Long id);

	StaffRole selectStaffRolesByStaffIdDepartmentLevelList(Long loginUserId, List<String> asList);

    R taskComment(TaskModel roleModel);

	R commentList(TaskModel taskModel);
}