package com.mosty.qwzx.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.qwzx.TbQwXfpbAddAndEditDto;
import com.mosty.base.model.dto.qwzx.TbQwXfpbZqDto;
import com.mosty.base.model.dto.qwzx.TbQwXzSearchDto;
import com.mosty.base.model.entity.qwzx.TbQwXfpbZq;
import com.mosty.base.model.entity.qwzx.TbQwZbpbZq;
import com.mosty.base.model.query.qwzx.TbQwXfpbQuery;
import com.mosty.base.model.query.qwzx.TbQwXfpbSearchMyQuery;
import com.mosty.base.model.vo.qwzx.TbQwXfpbZqMyVo;
import com.mosty.base.model.vo.qwzx.TbQwXfpbZqVo;
import io.swagger.annotations.ApiOperation;

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


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

    @ApiOperation("新增巡防排班")
    int addEntity(TbQwXfpbAddAndEditDto dto);

    @ApiOperation("巡防排班修改")
    Integer editEntity(TbQwXfpbAddAndEditDto dto);

    @ApiOperation("删除单条巡防排班")
    Integer delEntity(String id);

    @ApiOperation("批量删除巡防排班")
    void delBatch(List<String> ids);

    @ApiOperation("查询巡防排班分页")
    IPage<TbQwXfpbAddAndEditDto> getPageList(TbQwXfpbQuery dto);

    @ApiOperation("查询巡防排班详细信息")
    TbQwXfpbAddAndEditDto getInfo(String id);

    @ApiOperation("分页查询我的巡防排班")
    IPage<TbQwXfpbAddAndEditDto> getMyXfpb(TbQwXfpbSearchMyQuery dto);

    @ApiOperation("APP获取我的排班信息")
    TbQwXfpbZqMyVo getMyXfpbToday();

    @ApiOperation("查询本月的巡防排班信息")
    IPage<TbQwXfpbZqVo> getThisMonthPbList(TbQwXzSearchDto dto);

    @ApiOperation("查询当前时间的巡防排班情况，发送消息提醒报备")
    void checkThisTimeXfpb();

    @ApiOperation("根据周期Id查询排班信息")
    TbQwXfpbZqMyVo getPbZq(String id,String time);

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

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

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


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


}
