package com.uas.platform.b2b.erp.service;

import com.uas.platform.b2b.erp.model.AcceptNotify;
import com.uas.platform.b2b.erp.model.AcceptNotifyConfirm;
import com.uas.platform.b2b.erp.model.AcceptNotifyVerify;
import com.uas.platform.b2b.erp.model.PurchaseNotify;
import com.uas.platform.b2b.model.PurchaseNotice;
import com.uas.platform.b2b.model.SaleSend;
import com.uas.platform.b2b.model.SaleSendItem;
import com.uas.platform.b2b.model.SaleSendItemVerify;

import java.util.List;

public interface PurchaseNotifyService {

	/**
	 * 将ERP系统的送货提醒，转为平台的客户送货提醒
	 * 
	 * @param notifies
	 * @return
	 */
	List<PurchaseNotice> convertPurchaseNotify(List<PurchaseNotify> notifies);

	/**
	 * 将平台的发货提醒封装成ERP系统的发货提醒
	 *
	 * @param noticeList 平台发货提醒
	 * @return
	 */
	List<PurchaseNotify> convertPurchaseNotice(List<PurchaseNotice> noticeList);

	/**
	 * 将平台的发货单，转为买家ERP的收料通知单
	 * 
	 * @param sends
	 * @return
	 */
	List<AcceptNotify> convertSaleSend(List<SaleSend> sends);
	
	/**
	 * 将买家ERP的主动填写的收料通知单，转为平台的发货单
	 * 
	 * @param accepts
	 * @return
	 */
	List<SaleSendItem> convertAcceptNotify(List<AcceptNotify> accepts);
	
	/**
	 * 将买家ERP填写的收料通知确认信息，转为平台的发货单明细
	 * 
	 * @param confirms
	 * @return
	 */
	List<SaleSendItem> convertAcceptNotifyDetail(List<AcceptNotifyConfirm> confirms);

	/**
	 * 将买家ERP填写的收料通知转收料单的信息，转为平台的发货单明细
	 * 
	 * @param confirms
	 * @return
	 */
	List<SaleSendItemVerify> convertAcceptNotifyVerify(List<AcceptNotifyVerify> verifies);

	/**
	 * 将买家ERP收料单反审核的信息，转为平台的发货单明细
	 * 
	 * @param confirms
	 * @return
	 */
	List<SaleSendItemVerify> convertAcceptUnauditVerify(List<AcceptNotifyVerify> verifies);

    List<List<PurchaseNotice>> convertEDIPurchaseNotify(List<PurchaseNotify> notifies, Long enUU);

	/**
	 * 通过上传的送货提醒id查询平台对应的id
	 *
	 * @param notifyList 送货提醒
	 * @return
	 */
	List<PurchaseNotify> getB2bId(List<PurchaseNotify> notifyList);

	List<PurchaseNotify> getB2bIdByNotices(List<PurchaseNotice> notices);
}
