package com.mosty.base.feign.service;

import com.mosty.base.model.dto.qwzx.TbQwJlDto;
import com.mosty.base.model.dto.qwzx.TbQwXfbbQueryByJlDto;
import com.mosty.base.model.dto.qwzx.TbQwXfbbVo;
import com.mosty.base.model.entity.qwzx.TbQwJl;
import com.mosty.base.model.entity.qwzx.TbQwXfbb;
import com.mosty.common.base.domain.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import javax.websocket.server.PathParam;
import java.util.List;
import java.util.Map;

/**
 * @author dw
 * @since 2022/8/29
 * 勤务中心对外调用接口 feign
 **/
@FeignClient(value = "mosty-qwzx")
public interface MostyQwzxFeignService {

    // 根据报备ID获取报备详情
    @GetMapping("/mosty-qwzx/tbQwXfbb/{id}")
    ResponseResult<TbQwXfbbVo> getBbInfo(@PathVariable("id") String id);

    // 根据报备ID查询巡组下的人员列表
    @GetMapping("/mosty-qwzx/tbQwXfbb/getJlxxByBbid/{id}")
    ResponseResult<List<TbQwJlDto>> getJlxxByBbid(@PathVariable("id") String id);

    // 查询范围内的最近的巡组信息
    @GetMapping("/mosty-qwzx/tbQwXfbb/getBbxxByJi")
    ResponseResult<TbQwXfbb> getBbxxByJi(@RequestBody TbQwXfbbQueryByJlDto dto);

    // 根据设备ID查询该设备所在的巡组
    @PostMapping("/mosty-qwzx/tbQwXfbb/getBbList/{sbid}")
    ResponseResult<List<TbQwXfbb>> getBbList(@PathVariable("sbid") String sbid);

    // 根据设备ID查询该设备所在的巡组
    @PostMapping("/mosty-qwzx/tbQwXfbb/getClBbList/{gpsId}")
    ResponseResult<List<TbQwXfbb>> getClBbList(@PathVariable("gpsId") String gpsId);

    // 查询报备信息详情
    @GetMapping("/mosty-qwzx/tbQwXfbb/getBbxxInfo")
    ResponseResult<TbQwXfbb> getBbxxInfo(@RequestParam String id);

    // 查询部门的报备的数量
    @PostMapping("/mosty-qwzx/tbQwXfbb/getBbCount")
    ResponseResult<Integer> getBbCount(@RequestParam("ssbmdm") String ssbmdm, @RequestParam("time") String time);

    // 根据巡区获取报备id
    @GetMapping("/mosty-qwzx/tbQwXfbb/getBbidByXq")
    ResponseResult<List<TbQwXfbb>> getBbidByXq(@RequestParam String xqid);

    // 查询部门时长、里程
    @PostMapping("/mosty-qwzx/tbQwXfbb/getScLc")
    ResponseResult<Map<String, Integer>> getScLc(@RequestParam("ssbmdm") String ssbmdm, @RequestParam("time") String time);

    /**
     * 查询我今天的报备new
     * @param bblx 报备类型
     * @return 报备信息
     */
    @GetMapping("/mosty-qwzx/tbQwXfbb/getMybbTodayNew")
    ResponseResult<TbQwXfbb> getMyXfbbTodayNew(@RequestParam String bblx);

    /**
     * 查询勤务警力信息（根据报备ID和巡防警力ID）
     * @param id 报备ID
     * @param xfllId 巡防警力ID
     * @return 勤务警力信息
     */
    @GetMapping("/mosty-qwzx/tbQwXfbb/selectQwJlByBbInfo")
    ResponseResult<TbQwJl> selectQwJlByBbInfo(@RequestParam("id") String id, @RequestParam("xfllId") String xfllId);

}
