package com.mosty.qwzx.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.qwzx.TbQwZbpbInsertOrUpdateDto;
import com.mosty.base.model.dto.qwzx.TbQwZbpbZqDto;
import com.mosty.base.model.entity.qwzx.TbQwZbpbZq;
import com.mosty.base.model.query.qwzx.TbQwZbpbQuery;
import com.mosty.base.model.query.qwzx.TbQwZbpbSearchMyQuery;
import com.mosty.base.model.vo.qwzx.TbQwZbpbZqMyVo;
import io.swagger.annotations.ApiOperation;

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

/**
 * @author dw
 * @since 2022/8/3
 **/
public interface TbQwZbpbService {

    @ApiOperation("新增值班排班")
    Integer addEntity(TbQwZbpbInsertOrUpdateDto dto);

    @ApiOperation("修改值班报备信息")
    Integer updateEntity(TbQwZbpbInsertOrUpdateDto dto);

    @ApiOperation("删除值班报备信息")
    void deleteBatch(List<String> ids);

    @ApiOperation("删除单条值班报备信息")
    void deleteEntity(String id);

    @ApiOperation("查询值班排班列表信息--分页")
    IPage<TbQwZbpbInsertOrUpdateDto> selectPage(TbQwZbpbQuery dto);

    @ApiOperation("查询值班排班详情信息")
    TbQwZbpbInsertOrUpdateDto getInfo(String id);

    @ApiOperation("分页查询我的值班排班")
    IPage<TbQwZbpbInsertOrUpdateDto> getMyZbpb(TbQwZbpbSearchMyQuery dto);

    @ApiOperation("查询当前时间的值班排班情况，发送定时任务(定时任务)")
    void checkThisTimeZbpb();

    @ApiOperation("APP获取我的值班排班信息")
    TbQwZbpbZqMyVo getMyZbpbToday();

    @ApiOperation("根据周期ID查询周期详细信息")
    TbQwZbpbZqDto getZbpbZqInfo(String id);

    @ApiOperation("每月一日添加每日警力")
    void addMrjl();

    @ApiOperation("根据时间查询月份排班、报备情况")
    List<Map<String, Object>> getZbbbByMonth(String time);

    @ApiOperation("根据月份导出值班排班表情况")
    List<Map<String, Object>> exportData(String time, String pbid);

    @ApiOperation("查询部门月排班情况")
    List<Map<String, Object>> getDeptByMonth(String time);
}
