package com.cim.idm.service;


import com.cim.idm.exception.GlobalException;
import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.model.OutStockDto;
import com.cim.idm.utils.AjaxResult;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public interface IMaterialShipService {
	
	/**
	 * 出库方法
	 * @param outStockDto
	 * @return
	 * @throws Throwable
	 */
	Map<String, Object> outStock(OutStockDto outStockDto) throws Throwable;
	
	/**
	 * 取消出库方法
	 * @param outStockDto
	 * @return
	 * @throws Throwable
	 */
	Map<String, Object> cancle(OutStockDto outStockDto) throws Throwable;

	
	/**
	 * 出库前校验
	 * @param outStockDto
	 */
	String outStockCheck(OutStockDto outStockDto) throws GlobalException;

	/**
	 *辅材出库确认备货
	 * @param eventInfo 事件信息
	 * @param siteName 现地
	 * @param shipRequestName 单号
	 * @param boxList 出库的物料信息
	 * @return 返回信息
	 */
	AjaxResult MaterialShipRequestAuxiliaryConfirmStocking(EventInfo eventInfo, String siteName, String shipRequestName, String user, List<LinkedHashMap<String,String>> boxList);
	/**
	 *辅材出库过账
	 * @param eventInfo 事件信息
	 * @param siteName 现地
	 * @param shipRequestName 单号
	 * @param boxList 出库的物料信息
	 * @return 返回信息
	 */
	AjaxResult MaterialShipRequestAuxiliaryStockOut(EventInfo eventInfo, String siteName, String shipRequestName, String user, List<LinkedHashMap<String,String>> boxList, String commitDate)throws Exception;
	/**
	 *辅材出库取下确认备货
	 * @param eventInfo 事件信息
	 * @param siteName 现地
	 * @param shipRequestName 单号
	 * @return 返回信息
	 */
	AjaxResult MaterialShipRequestAuxiliaryCancelConfirmStocking(EventInfo eventInfo, String siteName, String shipRequestName, String user);

}
