package com.mosty.rwzx.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mosty.base.model.dto.rwzx.TbRwTaskStatisticsDto;
import com.mosty.base.model.entity.rwzx.TbRwTask;
import com.mosty.base.model.entity.rwzx.TbRwTaskLog;
import com.mosty.base.model.entity.rwzx.TbRwTaskUser;
import com.mosty.base.model.entity.rwzx.TbRwTaskUserAll;
import com.mosty.base.model.query.rwzx.TbRwTaskInnerQuery;
import com.mosty.base.model.vo.base.DeptInfoVo;
import com.mosty.base.model.vo.rwzx.TbRwTaskRankingVo;
import com.mosty.base.model.vo.rwzx.TbRwTaskVo;
import com.mosty.common.config.entity.SysDictItem;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

@Mapper
public interface TbRwTaskMapper extends BaseMapper<TbRwTask> {

    @ApiOperation("查询字典")
    List<SysDictItem> selectDict(@Param("dictName") String dictName);

    @ApiOperation("排名统计")
    List<TbRwTaskRankingVo> getTaskRanking(TbRwTaskStatisticsDto dto);

    @ApiOperation("获取我的任务列表")
    List<TbRwTaskUser> getMyRwList(Map<String, Object> map);

    @ApiOperation("获取我的任务数量")
    int getMyRwCount(Map<String, Object> map);

    @ApiOperation("根据任务状态查询任务数量")
    Integer getCount(@Param("rwjxzt") String rwjxzt,
                     @Param("time") Date time,
                     @Param("sfzh") String sfzh);

    @ApiOperation("任务中心首页部门任务完成情况排名接口")
    List<Map<String, Object>> getTaskByDept();

    @ApiOperation("根据部门查询任务完成情况")
    int getCountByDept(String ssbmdm, String type);

    @ApiOperation("查询任务数量")
    List<Map<String, Object>> myRwCount(@Param("sfzh") String sfzh, @Param("ssbmid") String ssbmid);

    @ApiOperation("APP统计任务列表的数量")
    List<Map<String, Object>> rwCountByState(Map<String, Object> map);

    @ApiOperation("查询登录用户的已处理的任务数量")
    Integer getYclTask(@Param("sfzh") String sfzh,
                       @Param("ssbmid") String ssbmid);

    @ApiOperation("查询我的任务已完成列表")
    List<TbRwTaskUserAll> getMyRwListYwc(Map<String, Object> map);

    @ApiOperation("查询我的任务已完成数量")
    int getMyRwCountYwc(Map<String, Object> map);

    @ApiOperation("查询任务数量")
    int checkHasNewTask(@Param("sfzh") String sfzh,
                        @Param("ssbmid") String ssbmid,
                        @Param("time") String time);
}
