package com.openhis.web.materialmanage.appservice;

import java.util.List;

import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.dto.ItemChargeDetailDto;
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;

/**
 * 物资审批方法
 *
 * @author yuxj
 * @date 2025-07-22
 */
public interface IMaterialReceiptApprovalService {

    /**
     * 采购单同意审批
     *
     * @param busNo 单据号
     * @return 操作结果
     */
    R<?> purchaseOrderAgreeApproval(String busNo);

    /**
     * 根据单据号获取供应单据及供应项相关详细信息
     *
     * @param busNo 单据号
     * @return 供应单据及供应项相关详细信息
     */
    List<SupplyItemDetailDto> getSupplyItemDetail(String busNo);

    /**
     * 获取物品的价格信息
     *
     * @param itemIdList 物品id
     * @return 价格信息
     */
    List<ItemChargeDetailDto> getItemChargeDetail(List<Long> itemIdList);

    /**
     * 入库单据审批通过
     *
     * @param busNo 单据号
     * @return 操作结果
     */
    R<?> purchaseInventoryApproved(String busNo);

    /**
     * 采购退货审批通过
     *
     * @param busNo 单据号
     * @return 操作结果
     */
    R<?> purchaseReturnApproved(String busNo);


     /**
     * 领用出库审批通过
     *
     * @param busNo 单据号
     * @return 操作结果
     */
     R<?> requisitionIssueApproved(String busNo);

     /**
     * 领用退库审批通过
     *
     * @param busNo 单据号
     * @return 操作结果
     */
     R<?> returnIssueApproved(String busNo);


     /**
     * 报损单审批通过
     *
     * @param busNo 单据号
     * @return 操作结果
     */
     R<?> lossReportApproved(String busNo);

     /**
     * 盘点审批通过
     *
     * @param busNo 单据号
     * @return 操作结果
     */
     R<?> productStocktakingApproved(String busNo);
    /**
     * 调入单审批通过
     *
     * @param busNo 单据号
     * @return 操作结果
     */
    R<?> transferInAgreeApproved(String busNo);

    /**
     * 调出单审批通过
     *
     * @param busNo 单据号
     * @return 操作结果
     */
    R<?> transferOutAgreeApproved(String busNo);

}
