package com.openhis.web.pharmacyWarehousemanage.appservice;

import javax.servlet.http.HttpServletRequest;

import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.dto.ItemChargeDetailDto;
import com.openhis.web.inventorymanage.dto.ReceiptApprovalSearchParam;
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
import com.openhis.web.pharmacyWarehousemanage.dto.PharmacyWarehouseInitDto;
import com.openhis.web.pharmacyWarehousemanage.dto.PharmacyWarehouseSearchParam;

import java.util.List;

/**
 * 药库审批方法
 *
 * @author yuxj
 * @date 2025-07-22
 */
public interface IPharmacyWarehouseReceiptApprovalService {

    /**
     * 采购单同意审批
     *
     * @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<?> productTransferApproved(String busNo);


    //
    // /**
    // * 审批驳回
    // *
    // * @param busNo 单据号
    // * @return 操作结果
    // */
    // R<?> reject(String busNo);

}
