package com.dsk.cscec.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.CbDirectExpense;
import com.dsk.cscec.domain.bo.AddCbDirectExpenseBo;
import com.dsk.cscec.domain.vo.CbDirectExpenseDataDetailVo;
import com.dsk.cscec.domain.vo.CbDirectExpenseMenuVo;

import java.util.List;

/**
 * 直接费成本表(CbDirectExpense)表服务接口
 *
 * @author sxk
 * @since 2024-02-05 14:43:34
 */
public interface CbDirectExpenseService extends IService<CbDirectExpense> {
    /**
     * 获取直接费菜单
     *
     * @param projectId 项目ID
     * @return 直接费菜单
     */
    CbDirectExpenseMenuVo getMenuList(Long projectId);

    /**
     * 直接费数据解析
     *
     * @param projectId 项目ID
     * @param cbStage   成本阶段
     */
    void parseDirectExpenseData(Long projectId, Integer cbStage) throws Exception;

    /**
     * 获取直接费数据详情
     *
     * @param menuId 菜单ID
     * @return 数据详情
     */
    List<CbDirectExpenseDataDetailVo> getDataDetail(Long menuId);

    /**
     * 新增直接费费用项
     *
     * @param addBo 费用项
     * @return 新增结果
     */
    Integer addExpense(AddCbDirectExpenseBo addBo);

    /**
     * 删除直接费费用项
     *
     * @param id 费用ID
     * @return 删除结果
     */
    Integer deleteExpense(Long id);
}
