package com.mosty.yszx.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.yszx.TbYsGajgAndGlbmDto;
import com.mosty.base.model.dto.yszx.TbYsGajgByJwdDto;
import com.mosty.base.model.dto.yszx.TbYsGajgDto;
import com.mosty.base.model.dto.yszx.TbYsGajgGlbmDto;
import com.mosty.base.model.entity.yszx.TbYsGajg;
import com.mosty.base.model.vo.yszx.TbYsGajgGlbmVo;
import com.mosty.base.model.vo.yszx.TbYsGajgQuery;
import com.mosty.base.model.vo.yszx.TbYsGajgVo;
import com.mosty.common.core.business.entity.vo.Base64Str;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @author dw
 * @since 2022/7/20
 **/
public interface TbYsGajgService {

    @ApiOperation("公安机关要素新增")
    int insertEntity(TbYsGajgDto dto);

    @ApiOperation("公安机关要素修改")
    void updateEntity(TbYsGajgDto dto);

    @ApiOperation("根据来源修改公安机关要素")
    void updateEntityByLY(TbYsGajgDto dto);

    @ApiOperation("公安机关要素详情查询")
    TbYsGajgVo getInfo(String id);

    @ApiOperation("查询公安机关列表")
    IPage<TbYsGajgVo> getPageList(TbYsGajgQuery dto);

    @ApiOperation("删除公安机关要素")
    void delEntity(String id);

    @ApiOperation("删除公安机关要素")
    void delEntity(TbYsGajgDto dto);

    @ApiOperation("根据经纬度判断所属公安机关")
    TbYsGajgVo getGajgByJwd(TbYsGajgByJwdDto dto);

    @ApiOperation("公安机关要素新增--添加关联部门")
    int addGajg(TbYsGajgAndGlbmDto dto);

    @ApiOperation("公安机关要素修改--修改关联部门")
    void editGajg(TbYsGajgAndGlbmDto dto);

    @ApiOperation("查询公安机关关联部门")
    List<TbYsGajgGlbmDto> getGlbmList(String id);

    @ApiOperation("查询公安机关列表（包含关联部门ID）")
    List<TbYsGajgGlbmVo> getGajgList(TbYsGajgQuery dto);
}
