package abacus.springboot.example.pi;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import abacus.springboot.example.api.view.ApiBillHg;
import abacus.springboot.example.api.view.ApiBillHgItem;
import abacus.springboot.example.api.view.ApiBillHgPayment;
import abacus.springboot.example.api.view.ApiJcBill;
import abacus.springboot.example.api.view.ApiJcBillHgSearchItem;
import abacus.springboot.example.api.view.ApiJcBillItem;
import abacus.springboot.example.api.view.ApiJcBillSearch;
import abacus.springboot.example.api.view.JcBillCount;
import abacus.springboot.example.api.view.JcCodeFlow;
import abacus.springboot.example.api.view.JcProduct;
import abacus.springboot.example.api.view.JcProductBillSouce;
import abacus.springboot.example.dao.JcBillHg;

/**
 * <p>Title:ApiJcBillAccess</p>
   <p>Description: 底层实现-interface</p>
   @author chuanZeng 
   @date 2026年8月18日
 */
public interface ApiJcBillAccessIF {

	/**
	 * 	稽查收货查询
	 * @param keyword
	 * @param status
	 * @param pageable
	 * @return
	 * @throws RuntimeException
	 */
	public Page<ApiJcBillSearch> queryApiJcBillSearch(String keyword, String employee, String status, Pageable pageable) throws RuntimeException;

	/**
	 * 	稽查收货主单查询
	 * @param id
	 * @return
	 * @throws RuntimeException
	 */
	public ApiJcBill queryApiJcBillById(String id) throws RuntimeException;
	
	/**
	 * 	稽查收货明细
	 * @param billId
	 * @return
	 * @throws RuntimeException
	 */
	public List<ApiJcBillItem> queryApiJcBillItemByBIllId(String billId) throws RuntimeException;
	
	
	/**
	 * 	回购列表查询
	 * @param keyword
	 * @param status
	 * @param pageable
	 * @return
	 * @throws RuntimeException
	 */
	public Page<ApiJcBillHgSearchItem> queryApiJcBillHgSearchItem(String keyword, String employee, String status, Pageable pageable) throws RuntimeException;
	
	/**
	 * 回购；查询品种和件数汇总
	 * @param ids
	 * @return
	 * @throws RuntimeException
	 */
	public List<JcBillCount> queryJcBillCount(List<String> ids) throws RuntimeException;

	/**
	 * 	回购：主单查询
	 * @param id
	 * @return
	 * @throws RuntimeException
	 */
	public ApiBillHg queryApiBillHgById(String hgId) throws RuntimeException;

	/**
	 * 	回购：明细查询
	 * @param billId
	 * @return
	 * @throws RuntimeException
	 */
	public List<ApiBillHgItem> queryApiBillHgItemByHgId(String hgId) throws RuntimeException;

	/**
	 * 	回购：支付明细查询
	 * @param billId
	 * @return
	 * @throws RuntimeException
	 */
	public List<ApiBillHgPayment> queryApiBillHgPaymentByHgId(String hgId) throws RuntimeException;
	
	public List<ApiBillHgPayment> queryApiBillHgPaymentByHgId(List<String> hgIds) throws RuntimeException;


	/**
	 * 	根据物流码，查询出库相关信息
	 * @param code
	 * @return
	 * @throws RuntimeException
	 */
	public List<JcCodeFlow> queryJcCodeFlow(List<String> codes) throws RuntimeException;

	/**
	 * 	稽查货品查询-单号查询
	 * @param product
	 * @param stockInId
	 * @param hgId
	 * @return
	 * @throws RuntimeException
	 */
	public List<JcProduct> queryJcProduct(String product, String stockInId, String hgId) throws RuntimeException;
	
	/**
	 * 	稽查货品查询-单号查询
	 * @param product
	 * @param stockInId
	 * @param hgId
	 * @return
	 * @throws RuntimeException
	 */
	public List<JcProduct> queryJcProduct(String product, String stockInId) throws RuntimeException;
	
	/**
	 * 	根据稽查单号，查询对应的货品编号
	 * @param billIds
	 * @return
	 * @throws RuntimeException
	 */
	public List<JcProductBillSouce> queryJcProductBillSouce(List<String> billIds)throws RuntimeException;
	
	
	public List<JcBillHg> qeryJcBillHgs(List<String> billids) throws RuntimeException;
}





























































