package com.bonus.material.part.service;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.part.domain.*;
import com.bonus.material.purchase.domain.PurchaseCheckInfo;
import com.bonus.material.purchase.domain.dto.PurchaseCheckDto;
import com.bonus.material.purchase.domain.dto.PurchaseQueryDto;


import java.util.List;

/**
 * 配件新购管理Service接口
 *
 * @author hongchao
 * @date 2025-01-08
 */
public interface IPartArrivedService {

    /**
     * 获取配件新购类型树结构
     *
     * @param partId,partName 配件新购管理
     * @return 配件新购管理集合
     */
    List<PartTypeDto> getTypeTree(Long partId, String partName);

    /**
     * 新增新购验收任务
     *
     * @param partTypeCheckDto 新购验收任务dto
     * @return 结果
     */
    AjaxResult insertPartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto);

    /**
     * 查询新购验收任务列表
     *
     * @param partTypeQueryDto 新购验收任务
     * @return 新购验收任务集合
     */
    List<PartTypeCheckInfo> selectPartTypeCheckInfoList(PartTypeQueryDto partTypeQueryDto);

    /**
     * 查询新购验收任务
     *
     * @param partTypeQueryDto 新购验收请求条件封装dto
     * @return 新购验收任务
     */
    PartTypeCheckDto selectPartTypeCheckInfoById(PartTypeQueryDto partTypeQueryDto);

    /**
     * 修改新购验收任务
     *
     * @param partTypeCheckDto 新购验收任务
     * @return 结果
     */
    boolean updatePartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto);

    /**
     * 删除新购验收任务
     *
     * @param partTypeQueryDto 需要删除的新购验收任务主键集合
     * @return 结果
     */
    int deletePartInfo(PartTypeQueryDto partTypeQueryDto);

    /**
     * 查询附件列表
     *
     * @param bmPartFileInfo 查询附件列表
     * @return 查询附件列表
     */
    List<BmPartFileInfo> getPartFilelist(BmPartFileInfo bmPartFileInfo);

    /**
     * 根据任务id查询入库单
     *
     * @param partTypeQueryDto 入库单
     * @return 入库单
     */
    PartTypeCheckDto getInBoundForm(PartTypeQueryDto partTypeQueryDto);
}
