package com.mosty.base.feign.service;

import com.mosty.base.model.dto.yjzl.GetLastYjDto;
import com.mosty.base.model.dto.yjzl.TbYjxxDTO;
import com.mosty.base.model.dto.yjzl.TbZlxxInsertDto;
import com.mosty.base.model.entity.lzother.TAlarmYjZl;
import com.mosty.base.model.entity.lzother.TAlarmYjgj;
import com.mosty.base.model.entity.rh.RhMyhtWarn;
import com.mosty.base.model.entity.trs.VwAlermYjgl;
import com.mosty.base.model.entity.wzzx.TbWzSbsswz;
import com.mosty.base.model.entity.yjzl.TbYjxx;
import com.mosty.base.model.entity.yjzl.TbZlxx;
import com.mosty.base.model.query.yjzl.TbYjxxQuery;
import com.mosty.base.model.query.yjzl.TbZlxxQuery;
import com.mosty.base.model.vo.lzother.TAlarmYjZlVo;
import com.mosty.base.model.vo.trs.VwAlermYjzlVo;
import com.mosty.base.model.vo.wzzx.TbWzSblswzVo;
import com.mosty.base.model.vo.yjzl.TbFzJlVo;
import com.mosty.common.base.domain.ResponseResult;
import com.mosty.common.token.JwtSysUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author dw
 * @since 2022/7/23
 * 预警指令对外调用接口 feign
 **/
@FeignClient(value = "mosty-yjzl")
public interface MostyYjzlFeignService {

    // 根据内容信息查询预警数据
    @PostMapping("/mosty-yjzl/tbYjxx/getPageList")
    ResponseResult getPageList(@RequestBody TbYjxxQuery dto);

    // 根据内容信息查询警情数据
    @PostMapping("/mosty-yjzl/tbZl/selectInstructList")
    ResponseResult selectInstructList(@RequestBody TbZlxxQuery dto);

    // 同步拓尔思预警指令
    @PostMapping("/mosty-yjzl/tbZl/addTrsZl")
    ResponseResult<Void> addTrsZl(@RequestBody VwAlermYjzlVo dto);

    // 获取最后一条TRS推送的指令信息
    @PostMapping("/mosty-yjzl/tbZl/getLastZlxx")
    ResponseResult<TbZlxx> getLastZlxx();

    // 根据条件查询最新的预警信息
    @PostMapping("/mosty-yjzl/tbYjxx/getLastYj")
    ResponseResult<TbYjxx> getLastYj(@RequestBody GetLastYjDto dto);

    // 同步拓尔思预警指令
    @PostMapping("/mosty-yjzl/tbZl/addTrsYj")
    ResponseResult<Void> addTrsYj(@RequestBody VwAlermYjgl dto);

    // 添加泸州拓尔思预警信息
    @PostMapping("/mosty-yjzl/tbYjxxLz/addYjxx")
    ResponseResult<Void> addYjxx(@RequestBody TAlarmYjgj item);

    // 添加指令信息
    @PostMapping("/mosty-yjzl/tbZl/addZl")
    ResponseResult<Void> addZl(@RequestBody TbZlxxInsertDto dto);

    // 修改预警信息是否发送指令
    @PostMapping("/mosty-yjzl/tbYjxx/updateYjxxSffszl/{id}")
    ResponseResult<Void> updateYjxxSffszl(@PathVariable("id") String id);

    // 查询预警信息
    @PostMapping("/mosty-yjzl/tbYjxx/getYjxx30Day")
    ResponseResult<List<TbYjxx>> getYjxx30Day(@RequestBody TbYjxxQuery dto);

    // 查询犯罪预测数量
    @GetMapping("/mosty-yjzl/tbFzyc/getFzyjCount")
    ResponseResult<Integer> getFzyjCount(@RequestParam("ssbmdm") String ssbmdm,
                                         @RequestParam("time") String time, @RequestParam("sfxl") String sfxl);

    // 查询指令的数量
    @GetMapping("/mosty-yjzl/tbZl/getZlCount")
    ResponseResult<Integer> getZlCount(@RequestParam("ssbmdm") String ssbmdm,
                                       @RequestParam("time") String time, @RequestParam("zlzxzt") String zlzxzt);


    // 修改预警信息是否发送指令
    @PostMapping("/mosty-yjzl/tbFzycXljl/addBySbwz")
    ResponseResult<Void> addBySbwz(@RequestBody TbFzJlVo vo);


    // 添加融合数据
    @PostMapping("/mosty-yjzl/tbYjxx/saveHryj")
    ResponseResult<Void> saveHryj(@RequestBody RhMyhtWarn dto);

    // 下发警情指令
    @GetMapping("/mosty-yjzl/tbZl/andJqZl")
    ResponseResult<Void> andJqZl(@RequestParam("ssbmid") String ssbmid,@RequestParam("jqid") String jqid, @RequestParam("bbids") String bbids, @RequestParam("zlxflx") String zlxflx);

}
