package com.ruoyi.oa.service;

import com.ruoyi.oa.domain.SysOaWarehouseTask;
import com.ruoyi.oa.domain.vo.SysOaWarehouseTaskVo;
import com.ruoyi.oa.domain.bo.SysOaWarehouseTaskBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import javax.validation.constraints.NotNull;
import java.util.Collection;
import java.util.List;

/**
 * 采购计划Service接口
 *
 * @author hdka
 * @date 2025-03-30
 */
public interface ISysOaWarehouseTaskService {

    /**
     * 查询采购计划
     */
    SysOaWarehouseTaskVo queryById(Long taskId);

    /**
     * 查询采购计划列表
     */
    TableDataInfo<SysOaWarehouseTaskVo> queryPageList(SysOaWarehouseTaskBo bo, PageQuery pageQuery);

    /**
     * 查询采购计划列表
     */
    List<SysOaWarehouseTaskVo> queryList(SysOaWarehouseTaskBo bo);

    /**
     * 新增采购计划
     */
    Boolean insertByBo(SysOaWarehouseTaskBo bo);

    /**
     * 修改采购计划
     */
    Boolean updateByBo(SysOaWarehouseTaskBo bo);

    /**
     * 校验并批量删除采购计划信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    List<SysOaWarehouseTaskVo> queryByMasterId(@NotNull(message = "主键不能为空") Long masterId);

    /**
     * 新增采购计划
     * @param boList
     * @return
     */
    Boolean addBatch(List<SysOaWarehouseTaskBo> boList);

    int updateByBoBatch(List<SysOaWarehouseTaskBo> bo);

    int updateToWare(SysOaWarehouseTaskBo bo);

}
