package com.mosty.base.feign.service;

import com.mosty.base.model.dto.jcgl.*;
import com.mosty.base.model.entity.jcgl.TbJcglBxd;
import com.mosty.base.model.entity.jcgl.TbJcglJwz;
import com.mosty.base.model.entity.jcgl.TbJcglXfll;
import com.mosty.base.model.entity.jcgl.TbSbGzjr;
import com.mosty.base.model.query.jcgl.TbJcglXfllQueryAllDto;
import com.mosty.base.model.vo.jcgl.TbJcglDsfVo;
import com.mosty.common.base.domain.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

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

/**
 * @author dw
 * @since 2022/7/23
 * 基础管理对外调用接口 feign
 **/
@FeignClient(value = "mosty-jcgl")
public interface MostyJcglFeignService {

    // 根据deptid获取所有的辅警信息
    @PostMapping("/mosty-jcgl/tbJcglXfll/getFjList/{deptid}")
    ResponseResult<List<TbJcglXfllVo>> getFjList(@PathVariable("deptid") String deptid);

    // 根据deptid获取所有的巡逻力量信息
    @PostMapping("/mosty-jcgl/tbJcglXfll/getXfll")
    ResponseResult<List<TbJcglXfllVo>> getXfll(@RequestBody TbJcglXfllQueryAllDto dto);

    // 根据code获取第三方信息
    @GetMapping("/mosty-jcgl/dsf/getDsfInfo/{code}")
    ResponseResult<TbJcglDsfVo> getDsfInfo(@PathVariable("code") String code);

    // 根据ID查询巡防区域
    @GetMapping("/mosty-jcgl/tbJcglXfqy/selectById")
    ResponseResult<TbJcglXfqyDto> getxfqById(@RequestParam String id);

    // 根据ID查询快反点
    @GetMapping("/mosty-jcgl/tpJcglKfd/selectByid")
    ResponseResult<TbJcglKfdDto> getKfdById(@RequestParam String id);

    // 根据ID查询警务站
    @GetMapping("/mosty-jcgl/tbJcglJwz/selectByid")
    ResponseResult<TbJcglJwz> getJwzById(@RequestParam String id);

    // 根据身份证查询巡组力量信息
    @PostMapping("/mosty-jcgl/tbJcglXfll/getXfllBySfz/{sfzh}")
    ResponseResult<TbJcglXfllDto> getXfllBySfz(@PathVariable("sfzh") String sfzh);

    // 根据身份证查询巡组力量信息
    @PostMapping("/mosty-jcgl/tbJcglXfll")
    ResponseResult<Boolean> addXfll(@RequestBody TbJcglXfllDto dto);

    // 根据身份证查询巡组力量信息
    @PutMapping("/mosty-jcgl/tbJcglXfll")
    ResponseResult<Boolean> editXfll(@RequestBody TbJcglXfllDto dto);

    // 删除巡防力量
    @PostMapping("/mosty-jcgl/tbJcglXfll/delXfll/{id}")
    ResponseResult<Void> delXfll(@PathVariable("id") String id);

    // 查询重点区域配置分值列表
    @GetMapping("/mosty-jcgl/fzpz/selectPzfzwtj")
    ResponseResult<List<TbJcglPzfzDto>> getFzList();

    // 添加计算出来的必巡点的数据
    @PostMapping("/mosty-jcgl/tbJcglBxd/createdBxd")
    ResponseResult<Void> createdBxd(@RequestBody List<Map<String, Object>> rList);

    // 查询必巡点信息（根据ID）
    @GetMapping("/mosty-jcgl/tbJcglBxd/selectById")
    ResponseResult<TbJcglBxd> selectBxdById(@RequestParam String id);

    // 查询部门下面人员数量
    @GetMapping("/mosty-jcgl/tbJcglXfll/getRysl")
    ResponseResult<Integer> getRysl(@RequestParam String ssbmdm);

    // 查询感知接入列表
    @PostMapping("/mosty-jcgl/gzjr/getList")
    ResponseResult<List<TbSbGzjr>> getGzjrList(@RequestBody TbSbGzjr dto);

    // 查询巡防部门
    @GetMapping("/mosty-jcgl/tbJcglXfll/getBmAll")
    ResponseResult<List<TbJcglXfll>> getBmAll();

    // 获取所有快反点
    @PostMapping("/mosty-jcgl/tpJcglKfd/getListAll")
    ResponseResult<List<TbJcglKfdDto>> getListKfdAll();

    // 查询所有巡防区域数据
    @PostMapping("/mosty-jcgl/tbJcglXfqy/getListAll")
    ResponseResult<List<TbJcglXfqyDto>> getListXfqyAll();
}
