package com.ygtx.gxt.service;

import java.util.List;
import com.ygtx.gxt.domain.GxtUserScore;

/**
 * 用户月度评分统计表Service接口
 * 
 * @author ruoyi
 * @date 2025-11-03
 */
public interface IGxtUserScoreService 
{
    /**
     * 查询用户月度评分统计表
     * 
     * @param id 用户月度评分统计表主键
     * @return 用户月度评分统计表
     */
    public GxtUserScore selectGxtUserScoreById(Long id);

    /**
     * 查询用户月度评分统计表列表
     * 
     * @param gxtUserScore 用户月度评分统计表
     * @return 用户月度评分统计表集合
     */
    public List<GxtUserScore> selectGxtUserScoreList(GxtUserScore gxtUserScore);

    /**
     * 查询用户月度评分统计表列表
     *
     * @param gxtUserScore 用户月度评分统计表
     * @return 用户月度评分统计表集合
     */
    public List<GxtUserScore> selectUserAllScore(GxtUserScore gxtUserScore);

    /**
     * 新增用户月度评分统计表
     * 
     * @param gxtUserScore 用户月度评分统计表
     * @return 结果
     */
    public int insertGxtUserScore(GxtUserScore gxtUserScore);

    /**
     * 修改用户月度评分统计表
     * 
     * @param gxtUserScore 用户月度评分统计表
     * @return 结果
     */
    public int updateGxtUserScore(GxtUserScore gxtUserScore);

    /**
     * 批量删除用户月度评分统计表
     * 
     * @param ids 需要删除的用户月度评分统计表主键集合
     * @return 结果
     */
    public int deleteGxtUserScoreByIds(Long[] ids);

    /**
     * 删除用户月度评分统计表信息
     * 
     * @param id 用户月度评分统计表主键
     * @return 结果
     */
    public int deleteGxtUserScoreById(Long id);
    
    /**
     * 根据条件查询用户月度评分统计表列表
     * 
     * @param rtType 查询类型 1-部门所有用户 其他-当前用户
     * @param monthPeriod 月份(yyyy-MM格式)
     * @param userId 用户ID
     * @param deptId 部门ID
     * @return 用户月度评分统计表集合
     */
    public List<GxtUserScore> selectGxtUserScoreListByCondition(Integer rtType, String monthPeriod, Long userId, Long deptId, String permission);
}