package com.njcn.csdevice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.param.CsUserPinsParam;
import com.njcn.csdevice.pojo.po.CsUserPins;
import com.njcn.csdevice.pojo.vo.CsLedgerVO;

import java.util.List;

/**
 * <p>
 * 用户置顶表 服务类
 * </p>
 *
 * @author xy
 * @since 2026-03-04
 */
public interface ICsUserPinsService extends IService<CsUserPins> {

    boolean engineeringPinToTop(CsUserPinsParam param);

    List<CsUserPins> getPinToTopList();

    /**
     * 针对台账树中存在置顶的数据进行排序
     *
     * @param list 置顶数据
     * @param tree 台账树
     * @param level 树的层级
     * 如果第一层不是工程，并且是5层树，level = 5 ，5层树层级必须是 0:设备类型 1:工程 2:项目 3:设备 4:监测点
     * 如果第一层是工程，level = 4 ，4层树层级必须是 0:工程 1:项目 2:设备 3:监测点，其余层级的树也可以使用level = 4，只要是工程、项目、设备、监测点这样的结构就行
     */
    void channelTree(List<CsUserPins> list, List<CsLedgerVO> tree, Integer level);

}
