package com.ruoyi.oa.service;

import com.ruoyi.oa.domain.OaAccountingBatch;
import com.ruoyi.oa.domain.vo.OaAccountingBatchVo;
import com.ruoyi.oa.domain.bo.OaAccountingBatchBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

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

/**
 * 封账批次（管理每次封账的批次信息，一组封账数据对应一个批次）Service接口
 *
 * @author Joshi
 * @date 2025-09-09
 */
public interface IOaAccountingBatchService {

    /**
     * 查询封账批次（管理每次封账的批次信息，一组封账数据对应一个批次）
     */
    OaAccountingBatchVo queryById(Long batchId);

    /**
     * 查询封账批次（管理每次封账的批次信息，一组封账数据对应一个批次）列表
     */
    TableDataInfo<OaAccountingBatchVo> queryPageList(OaAccountingBatchBo bo, PageQuery pageQuery);

    /**
     * 查询封账批次（管理每次封账的批次信息，一组封账数据对应一个批次）列表
     */
    List<OaAccountingBatchVo> queryList(OaAccountingBatchBo bo);

    /**
     * 新增封账批次（管理每次封账的批次信息，一组封账数据对应一个批次）
     */
    Boolean insertByBo(OaAccountingBatchBo bo);

    /**
     * 修改封账批次（管理每次封账的批次信息，一组封账数据对应一个批次）
     */
    Boolean updateByBo(OaAccountingBatchBo bo);

    /**
     * 校验并批量删除封账批次（管理每次封账的批次信息，一组封账数据对应一个批次）信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
