package cn.superdesk.uniorder.service.accounting.unified.supplier;

import cn.superdesk.uniorder.common.enums.accounting.AccountingOrderDimCreateByEnum;
import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.dao.entity.accounting.unified.supplier.AccountingUnifiedSupplier;
import cn.superdesk.uniorder.dao.entity.accounting.unified.supplier.AccountingUnifiedSupplierOrder;
import cn.superdesk.uniorder.dao.entity.accounting.unified.supplier.AccountingUnifiedSupplierXGoods;
import cn.superdesk.uniorder.dao.entity.base.UnifiedOrderGoods;
import cn.superdesk.uniorder.service.base.BaseService;
import com.github.pagehelper.PageInfo;

import java.util.Date;
import java.util.List;
import java.util.Map;


/**
 * @Description:
 * @Author: linjinyu
 * @Email linjinyu@avic-s.com
 * @CreateDate: 2020-10-23 17:19:13
 * @UpdateUser: linjinyu
 * @UpdateDate: 2020-10-23 17:19:13
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface AccountingUnifiedSupplierXGoodsService extends BaseService<AccountingUnifiedSupplierXGoods> {


	/****************************************** extends BaseService 部分 start ******************************************/

	int insertSelective(AccountingUnifiedSupplierXGoods entity);

    int updateByPrimaryKeySelective(AccountingUnifiedSupplierXGoods entity);

	@Deprecated
	void deleteObj(Long id);

	@Deprecated
	AccountingUnifiedSupplierXGoods findById(Long id);

	@Deprecated
	PageInfo<AccountingUnifiedSupplierXGoods> findByPaging(Map<String, Object> conditions, Integer pageNun, Integer pageSize);

	@Deprecated
	List<AccountingUnifiedSupplierXGoods> findAll(Map<String, Object> queryMap);

	/****************************************** extends BaseService 部分   end ******************************************/


	void addAccountingUnifiedSupplierXGoods(AccountingUnifiedSupplierXGoods entity);

	int insertBatch(List<AccountingUnifiedSupplierXGoods> processList);

	void updateAccountingUnifiedSupplierXGoods(AccountingUnifiedSupplierXGoods entity);

	void deleteAccountingUnifiedSupplierXGoods(Long id);

	AccountingUnifiedSupplierXGoods findAccountingUnifiedSupplierXGoodsById(Long id);

	List<AccountingUnifiedSupplierXGoods> findByAccountingOrderSn(String accountingOrderSn);

	R<List<AccountingUnifiedSupplierXGoods>> pageQuery(Map<String, Object> conditions, int pageNun, int pageSize);

	/****************************************** 工具 start ******************************************/

	AccountingUnifiedSupplierXGoods composeAccountingUnifiedSupplierXGoods(
			AccountingUnifiedSupplier accountingUnifiedSupplier,
			/* 注意 */AccountingUnifiedSupplierOrder accountingUnifiedSupplierOrder,
			UnifiedOrderGoods unifiedOrderGoods,
			AccountingOrderDimCreateByEnum accountingOrderDimCreateByEnum,
			Date processDate);


	void deleteByAccountingOrderSn(String accountingOrderSn);
}