package com.bonus.material.part.service;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.ma.domain.PartType;
import com.bonus.material.part.domain.MaPartTypeKeeper;
import com.bonus.material.part.domain.PartLeaseDetails;
import com.bonus.material.part.domain.PartLeaseInfo;
import com.bonus.material.part.domain.vo.PartLeaseVo;

import java.util.List;

/**
 * @author : 阮世耀
 * @version : 1.0
 * @PackagePath: com.bonus.material.lease.service
 * @CreateTime: 2024-12-27  13:40
 * @Description: 描述
 */
public interface PartLeaseService {

    /**
     * 查询配件领用信息列表
     * @param partLeaseInfo
     * @return
     */
    List<PartLeaseInfo> selectPartLeaseInfoList(PartLeaseInfo partLeaseInfo);

    /**
     * 新增配件领用信息
     * @param partLeaseInfo
     * @return
     */
    int insertPartLeaseInfo(PartLeaseInfo partLeaseInfo);

    /**
     * 查询配件领用详情
     * @param partLeaseDetails
     * @return
     */
    PartLeaseVo selectPartLeaseDetailsList(PartLeaseDetails partLeaseDetails);

    /**
     * 查询配件申请级别列表
     * @param partType
     * @return
     */
    AjaxResult selectPartTreeList(PartType partType);

    /**
     * 审核领料任务
     * @param partLeaseInfo
     * @return
     */
    AjaxResult auditPartLeaseInfo(PartLeaseInfo partLeaseInfo);

    /**
     * 根据三级id查询一二级列表
     * @param partType
     * @return
     */
    AjaxResult selectPartTreeListByLevel(PartType partType);

    /**
     * 新增库管员配置
     * @param typeKeepers
     * @return
     */
    AjaxResult insertTypeKeeper(MaPartTypeKeeper typeKeepers);

    /**
     * 解绑配件库管员配置
     * @param typeKeepers
     * @return
     */
    AjaxResult deleteTypeKeeper(List<MaPartTypeKeeper> typeKeepers);

    /**
     * 根据二级id查询三级列表
     * @param partType
     * @return
     */
    AjaxResult selectPartList(PartType partType);
}
