package com.bonus.sgzb.material.service;

import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.material.domain.PurchaseCheckInfo;
import com.bonus.sgzb.material.domain.PurchaseInput;
import com.bonus.sgzb.material.domain.PurchasePartDetails;
import com.bonus.sgzb.material.domain.PurchasePartInfo;
import com.bonus.sgzb.material.vo.NoticeInfoVO;

import java.util.List;

/**
* @description 新购配件
* @author hay
* @date   2024/1/16 13:29
*/
public interface IPurchaseAccessoryService
{
    /**
     * 新增新购配件任务
     * @param purchasePartInfo
     * @return 结果
     */
    public int insertPurchaseAccessory(PurchasePartInfo purchasePartInfo);

    /**
     * 查询新购配件任务purchase_part_info列表
     *
     * @param purchasePartInfo 新购配件任务purchase_part_info
     * @return 新购配件任务purchase_part_info集合
     */
    List<PurchasePartInfo> selectPurchasePartInfoList(PurchasePartInfo purchasePartInfo);

    /**
     * 查询新购配件任务purchase_part_info
     * @param taskId
     * @param keyWord
     * @return
     */
    PurchasePartInfo selectPurchasePartInfoByTaskId(Long taskId, String keyWord);

    /**
     * 修改新购配件任务purchase_part_info
     * @param purchasePartInfo
     * @return
     */
    int updatePurchaseCheckInfo(PurchasePartInfo purchasePartInfo);

    /**
    * 删除新购配件任务
    * @param  taskIds
    * @return int
    */
    AjaxResult deletePurchasePartInfoByTaskIds(Long[] taskIds);

    /**
    * 新购配件入库列表
    * @param purchasePartInfo
    * @return List<PurchasePartInfo>
    */
    List<PurchasePartInfo> selectPutInListList(PurchasePartInfo purchasePartInfo);

    /**
     *  新购配件验收
     * @param purchasePartDetailsList
     * @return
     */
    int updatePurchaseCheckDetails(List<PurchasePartDetails> purchasePartDetailsList);

    /**
    * 获取配件信息
    * @param level 等级
    * @return List<PurchasePartInfo>
    */
    List<PurchasePartInfo> getPartList(String level);

    /**
     * 获取新购配件入库详细信息
     * @param purchasePartDetails
     * @return
     */
    List<PurchasePartDetails> selectPutinDetails(PurchasePartDetails purchasePartDetails);

    /**
     * 新购配件入库审核
     * @param purchasePartDetails
     * @return
     */
    int checkInput(List<PurchasePartDetails> purchasePartDetails);

    /**
    * 新购配件导出
    * @param  bean
    * @return List<PurchasePartInfo>
    */
    List<PurchasePartInfo> exportList(PurchasePartInfo bean);

    /**
     * 新购配件入库导出
     * @param  bean
     * @return List<PurchasePartDetails>
     */
    List<PurchasePartDetails> inputExport(PurchasePartDetails bean);

    /**
     * 新购配件验收单
     * @param taskId
     * @param keyWord
     * @return 结果
     */
    PurchasePartInfo getAcceptanceForm(Long taskId, String keyWord);

    /**
    * 新购配件入库单
    * @param purchasePartDetails
    * @return 结果
    */
    List<PurchasePartDetails> warehousingEntry(PurchasePartDetails purchasePartDetails);
}
