package com.bonus.material.part.mapper;

import com.bonus.material.ma.domain.Type;
import com.bonus.material.part.domain.PartTypeCheckDetails;
import com.bonus.material.part.domain.PartTypeCheckInfo;
import com.bonus.material.part.domain.PartTypeDto;
import com.bonus.material.part.domain.PartTypeQueryDto;
import com.bonus.material.task.domain.TmTask;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 配件入库管理Mapper接口
 * 
 * @author hongchao
 * @date 2024-01-09
 */
public interface PartAcceptMapper
{

    /**
     * 查询配件类型三级树
     *
     * @param partTypeDto 查询配件类型三级树
     * @return 查询配件类型三级树
     */
    List<PartTypeDto> getTypeTree(PartTypeDto partTypeDto);

    /**
     * 查询库存数量
     * @param id
     * @return
     */
    int getStorageNum(@Param("id") Long id);

    /**
     * 入库
     * @param partTypeCheckDetail
     * @return
     */
    int partTypeWarehouse(PartTypeCheckDetails partTypeCheckDetail);

    /**
     * 修改库存
     * @param partTypeCheckDetail
     * @return
     */
    int updatePartTypeStorage(PartTypeCheckDetails partTypeCheckDetail);

    /**
     * 驳回
     * @param partTypeCheckDetail
     * @return
     */
    int partTypeReject(PartTypeCheckDetails partTypeCheckDetail);

    /**
     * 获取待验收的数量
     * @param taskId
     * @return
     */
    int selectStatus(Long taskId);

    /**
     * 修改任务状态未已完成
     * @param taskId
     * @return
     */
    void updateStatus(Long taskId);


    /**
     * 外层入库
     * @param taskId
     * @return
     */
    int passAll(Long taskId);

    /**
     * 外层驳回
     * @param taskId
     * @return
     */
    int rejectAll(Long taskId);
}
