package com.hxzk.gps.service.Company;
import com.hxzk.gps.controller.Company.Results.CompanyDepartmentResult;
import com.hxzk.gps.controller.Company.Results.CompanyResult;
import com.hxzk.gps.controller.Company.Results.CompanyTreeTableDto;
import com.hxzk.gps.entity.Company.TbCompany;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxzk.gps.controller.User.Results.UserTreeTableDto;
import com.hxzk.gps.entity.WarnTongJi.WarnTongjiCompany;
import com.hxzk.gps.util.AuToComplete;
import com.hxzk.gps.util.Result.ReturnMessage;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
*
* 公司服务类
*
*
* @author YuZhiTong
* @since 2025-04-17
*/
public interface TbCompanyService extends IService {
/*
* 公司列表信息
* @param companyTreeTableDto 公司参数信息
* @return 公司信息
* */
CompanyResult FindCompanyInfo(@RequestBody CompanyTreeTableDto companyTreeTableDto);
/*
* 根据当前用户的所属公司ID查询公司部门列表
* @return CompanyDepartmentResult 公司部门列表
* @author YuZhiTong
* @since 2025-05-19
* */
CompanyDepartmentResult FindUserDepartmentCompany();
/*
* 根据当前用户的所属公司ID查询子公司ID列表
* @return List 子公司ID列表
* @author YuZhiTong
* @since 2025-05-19
* */
List getChildCompanyIds(String companyid);
/*
* 根据当前用户的所属公司名称查询子公司名称列表
* @return List 子公司名称列表
* @author YuZhiTong
* @since 2025-05-19
* */
List getChildCompanyNames(String companyname);
/*
* 根据参数ID查询公司名称
* @return 返回公司名称
* @author YuZhiTong
* @since 2025-05-19
* */
String getChildCompanyName(String id);
/*
* 公司下拉列表
* @param company 公司信息
* @return 返回公司下拉列表
* @author YuZhiTong
* @since 2025-05-19
* */
List CompanyAutocomplete(TbCompany company);
List FenceCompanyAutocomplete();
/*
* 新增公司信息
* @param company 公司信息
* @return 返回新增结果
* @author YuZhiTong
* @since 2025-05-19
* */
ReturnMessage add(TbCompany company);
/*
* 修改公司信息
* @param company 公司信息
* @return 返回修改结果
* @author YuZhiTong
* @since 2025-05-19
* */
ReturnMessage update(TbCompany company);
/*
* 删除公司信息
* @param company 公司信息
* @return 返回删除结果
* @author YuZhiTong
* @since 2025-05-19
* */
ReturnMessage delete(TbCompany company);
/*
* 检查公司是否可以删除(检查是否存在绑定数据)
* @param companyId 公司ID
* @return 返回检查结果和详细的绑定数据信息
* @author YuZhiTong
* @since 2025-01-XX
* */
ReturnMessage checkCompanyCanDelete(Integer companyId);
//查询&&更新各个公司的统计
Integer FindCompanyOnlineCount(List companyid); //查询在线人员条数
Integer FindCompanyNoOnlineCount(List companyid); //查询离线人员条数
Integer FindCompanyOnlineCarCount(List companyid); //查询在线车辆条数
Integer FindCompanyNoOnlineCarCount(List companyid); //查询离线车辆条数
Integer FindCompanyOnlineAchorCount(String company); //查询在线基站数量
Integer FindCompanyNoOnlineAchorCount(String company); //查询离线基站数量
Integer FindCompanyWarningCount1(List companyid); //静止报警
Integer FindCompanyWarningCount2(List companyid); //SOS报警
Integer FindCompanyWarningCount3(List companyid); //跌落报警
Integer FindCompanyWarningCount4(List companyid); //缺员报警
Integer FindCompanyWarningCount5(List companyid); //超员报警
Integer FindCompanyWarningCount6(List companyid); //聚集报警
Integer FindCompanyWarningCount7(List companyid); //越界报警
Integer FindCompanyWarningCount8(List companyid); //进入报警
Integer FindCompanyWarningCount9(List companyid); //低电报警
List findCompanyWarn(String company);
//更
Integer UpCompanyWarnCount(String company,Integer count,String title); //查询在线人员条数
}