package com.ruoyi.oa.service;

import com.ruoyi.oa.domain.vo.SysOaCostAllVo;
import com.ruoyi.oa.domain.vo.SysOaCostRow;
import com.ruoyi.oa.domain.vo.SysOaCostVo;
import com.ruoyi.oa.domain.bo.SysOaCostBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 项目成本分析Service接口
 *
 * @author ruoyi
 * @date 2025-03-04
 */
public interface ISysOaCostService {

    /**
     * 查询项目成本分析
     */
    SysOaCostVo queryById(Long costId);

    /**
     * 查询项目成本分析列表
     */
    TableDataInfo<SysOaCostVo> queryPageList(SysOaCostBo bo, PageQuery pageQuery);

    /**
     * 查询项目成本分析列表
     */
    List<SysOaCostVo> queryList(SysOaCostBo bo);

    /**
     * 新增项目成本分析
     */
    Boolean insertByBo(SysOaCostBo bo);

    /**
     * 修改项目成本分析
     */
    Boolean updateByBo(SysOaCostBo bo);

    /**
     * 校验并批量删除项目成本分析信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);



    /**
     * 项目成本分析改进
     *
     * @param bo
     * @param pageQuery
     * @return
     */
    TableDataInfo<SysOaCostAllVo> calcProjectCostList(SysOaCostBo bo, PageQuery pageQuery);

    /**
     * 项目成本查询详情改进
     * @param projectId
     * @return
     */
    SysOaCostRow calcProjectDetail(Long projectId);
}
