package com.uas.platform.b2b.service;

import java.util.List;

import org.springframework.data.domain.Page;

import com.uas.platform.b2b.model.MakeOrderChangeItem;
import com.uas.platform.b2b.model.SearchFilter;
import com.uas.platform.core.model.PageInfo;

public interface MakeOrderChangeService {

	/**
	 * 批量保存、修改采购委外加工单变更单
	 * 
	 * @param changeItems
	 * @return
	 * @author suntg
	 * @since 2015年8月7日10:57:59
	 */
	public void save(List<MakeOrderChangeItem> changeItems);

	/**
	 * 分页变更单明细
	 * 
	 * @param pageInfo
	 * @param keyword
	 *            查找关键词
	 * @return
	 */
	public Page<MakeOrderChangeItem> findAllByPageInfo(PageInfo pageInfo, String keyword);
	

	/**
	 * 回复单个明细
	 * 
	 * @param reply
	 */
	public MakeOrderChangeItem reply(MakeOrderChangeItem change);
	
	/**
	 * 获取未传输到买方ERP的回复信息
	 * @return
	 */
	public List<MakeOrderChangeItem> findNotUploadReply();
	
	/**
	 * 回复信息传输到买方ERP之后修改平台的变更单明细回复传输状态为已下载
	 * @param idStr
	 */
	public void onReplyUploadSuccess(String[] idArray);

	/**
	 * 查找所有待上传到供应商ERP的委外变更单
	 * 
	 * @return
	 */
	public List<MakeOrderChangeItem> findNotUpload();

	/**
	 * 平台的委外变更单传到供应商ERP之后，修改平台里面的委外变更单的上传状态
	 * 
	 * @param idArray
	 */
	public void onUploadChangeSuccess(String[] idArray);
	
	/**
	 * 分类分页查询委外变更单（全部）
	 * @param info
	 * @param filter
	 * @return
	 */
	public Page<MakeOrderChangeItem> findByPageInfo(PageInfo pageInfo, SearchFilter filter);

	/**
	 * 根据ID查询委外变更明细
	 * @param id
	 * @return
	 */
	public MakeOrderChangeItem findById(Long id);

}
