package com.mosty.base.manager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.jcgl.TbJcglZnzbSearchDto;
import com.mosty.base.model.dto.qwzx.AppSearchQuery;
import com.mosty.base.model.query.jcgl.TbJcglZyzbQuery;
import com.mosty.base.model.vo.jcgl.TbJcglZnzbVo;
import com.mosty.base.model.entity.jcgl.TbJcglZnzb;
import com.mosty.base.model.query.jcgl.TbJcglZnzbQuery;
import io.swagger.annotations.ApiOperation;

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

public interface TpjcglZnzbService {

    @ApiOperation("新增只能设备")
    int addZnzb(TbJcglZnzb tbJcglZnzb);

    @ApiOperation("查询智能设备")
    IPage<TbJcglZnzbVo> getZnzb(TbJcglZnzb tbJcglZnzb, IPage<TbJcglZnzb> page);

    @ApiOperation("编辑智能设备")
    void editZnzb(TbJcglZnzb tbJcglZnzb);

    @ApiOperation("删除智能设备")
    void deleteZnzb(List<String> id);

    @ApiOperation("根据id查询智能装备")
    TbJcglZnzbVo selectZbxq(String id);

    @ApiOperation("查询智能设备")
    IPage<TbJcglZnzb> znzbDqtx(TbJcglZnzbQuery tbJcglZnzb, IPage<TbJcglZnzb> page);

    @ApiOperation("检查装备到期和是否故障")
    Object checkZnzb();

    @ApiOperation("查询附近的智能装备")
    IPage<TbJcglZnzbVo> getFjzbList(TbJcglZnzbSearchDto dto);

    @ApiOperation("app获取智能装备信息")
    IPage<TbJcglZnzbVo> getZnzbList(AppSearchQuery dto);

    @ApiOperation("下发智能")
    void xfZnzb(TbJcglZnzb zb);

    @ApiOperation("回退智能")
    void htZnzb(String id);

    @ApiOperation("报损")
    void bsZnzb(String id);

    @ApiOperation("查询智能设备")
    List<TbJcglZnzb> getZyzb(TbJcglZyzbQuery tbJcglZyzbQuery);

    @ApiOperation("资源装备统计")
    Map<String, Object> zyZbtj(String ssbmdm);

    @ApiOperation("设备类型统计")
    List<Map<String, Object>> sblxTj(String type, String ssbmdm);

    @ApiOperation("导入智能装备")
    String importData(List<TbJcglZnzb> userList, boolean updateSupport);

}
