package com.njcn.csdevice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.dto.DevDetailDTO;
import com.njcn.csdevice.pojo.dto.LineParamDTO;
import com.njcn.csdevice.pojo.param.CsLedgerParam;
import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;

import java.util.List;

/**
 * <p>
 * 台账表 服务类
 * </p>
 *
 * @author xuyang
 * @since 2023-05-31
 */
public interface ICsLedgerService extends IService<CsLedger> {

    /**
     * 获取终端台账树
     * @return
     */
    List<CsLedgerVO> getLedgerTree();

    /**
     * 获取终端台账树
     * @return
     */
    List<CsLedgerVO> getLineTree(String type);

    List<CsLedgerVO> appLineTree();

    /**
     * 终端三层树 
     * @return
     */
    List<CsLedgerVO> getDeviceTree(String type);

    /**
     * 新增台账数据
     * @param csLedgerParam
     */
    CsLedger addLedgerTree(CsLedgerParam csLedgerParam);

    /**
     * 删除台账数据
     * @param id
     */
    void deleteLedgerTree(String id);

    /**
     * 更新台账数据
     * @param csLedgerParam
     */
    void updateLedgerTree(CsLedgerParam.Update csLedgerParam);

    /**
     * 根据监测点Id查询装置
     * @param lineId
     * @return
     */
    String findDevByLineId(String lineId);

    /**
     * 根据id查询数据
     * @param id
     * @return
     */
    CsLedger findDataById(String id);

    List<CsLedgerVO> getProjectTree();

    List<CsLedger> queryLine(LineParamDTO lineParamdto);

    DevDetailDTO queryDevDetail(String devId);

    List<CsLedgerVO> getztProjectTree();


//    List<CsLedgerVO> objTree();

    /**
     * 根据设备集合获取项目和工程
     * @param id
     * @return
     */
    List<CsLedgerVO> getProAndEngineer(List<String> id);

    CsLedgerVO cldTree();

    List<DevDetailDTO> getInfoByIds(List<String> list);

    List<DevDetailDTO> getDevInfoByEngineerIds(List<String> list);

    List<DevDetailDTO> getEngineeringHaveDevs(List<String> list);

    List<CsLedger> queryByPid(String pid);

}
