package com.ruoyi.oa.service;

import com.ruoyi.oa.domain.OaJournalAccount;
import com.ruoyi.oa.domain.vo.OaJournalAccountVo;
import com.ruoyi.oa.domain.bo.OaJournalAccountBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

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

/**
 * 日记账（绑定封账批次，未封账数据batch_id为NULL）Service接口
 *
 * @author Joshi
 * @date 2025-09-09
 */
public interface IOaJournalAccountService {

    /**
     * 查询日记账（绑定封账批次，未封账数据batch_id为NULL）
     */
    OaJournalAccountVo queryById(Long journalId);

    /**
     * 查询日记账（绑定封账批次，未封账数据batch_id为NULL）列表
     */
    TableDataInfo<OaJournalAccountVo> queryPageList(OaJournalAccountBo bo, PageQuery pageQuery);

    /**
     * 查询日记账（绑定封账批次，未封账数据batch_id为NULL）列表
     */
    List<OaJournalAccountVo> queryList(OaJournalAccountBo bo);

    /**
     * 新增日记账（绑定封账批次，未封账数据batch_id为NULL）
     */
    Boolean insertByBo(OaJournalAccountBo bo);

    /**
     * 修改日记账（绑定封账批次，未封账数据batch_id为NULL）
     */
    Boolean updateByBo(OaJournalAccountBo bo);

    /**
     * 校验并批量删除日记账（绑定封账批次，未封账数据batch_id为NULL）信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    int batchUpdate(OaJournalAccountBo bo);
}
