package com.dsk.cscec.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.R;
import com.dsk.cscec.domain.CbSceneExpenseChildren;
import com.dsk.cscec.domain.bo.CbSceneExpenseChildrenDataBo;
import com.dsk.cscec.domain.bo.CbSceneExpenseMonthBo;
import com.dsk.cscec.domain.vo.CbSceneExpenseMenuVo;

import java.util.List;

/**
 * 现场经费-工资统筹、其他费用、现场管理费表(CbSceneExpenseChildren)表服务接口
 *
 * @author sxk
 * @since 2024-02-22 09:59:01
 */
public interface CbSceneExpenseChildrenService extends IService<CbSceneExpenseChildren> {
    /**
     * 获取现场经费菜单
     *
     * @param projectId 项目ID
     * @return 菜单
     */
    List<CbSceneExpenseMenuVo> getMenuList(Long projectId);

    /**
     * 现场经费二级分类数据解析
     *
     * @param projectId 项目ID
     * @param cbStage   成本阶段
     * @param username  用户名
     */
    void parseSceneExpenseChildrenData(Long projectId, Integer cbStage, String username) throws Exception;

    /**
     * 获取现场经费二级分类数据
     *
     * @param childrenDataBo 查询体
     * @return 现场经费二级分类数据
     */
    List<CbSceneExpenseChildren> getChildrenData(CbSceneExpenseChildrenDataBo childrenDataBo);

    /**
     * 获取已添加成本数据月份
     *
     * @param monthBo 查询体
     * @return 月份集合
     */
    R<List<String>> getMonthList(CbSceneExpenseMonthBo monthBo);
}
