package com.prolog.cs.biz.inbound.service.impl.processor.factory;

import com.prolog.cs.biz.inbound.service.impl.processor.enums.ConclusionEnum;
import com.prolog.cs.biz.inbound.service.impl.processor.enums.RcvTypeStrategyEnum;
import com.prolog.cs.biz.inbound.service.impl.processor.enums.RqcStrategyEnum;
import com.prolog.cs.biz.inbound.service.impl.processor.handler.TaskHandler;

import java.util.Map;

/**
 * 收货主体接口类
 * 
 * @author Xiong 适应不同企业主体的工厂类
 */
public interface RcvSubjectFactory {

	/**
	 * 任务执行
	 * @param dataMap 操作的数据
	 * @param handler 执行器
	 * @param rcvType 收货类型
	 * @param rqcStrategy 质检策略
	 * @param conclusionEnum 结论
	 * @return
	 */
	Object excuteTask(Map<String, Object> dataMap, TaskHandler handler, RcvTypeStrategyEnum rcvType,
			RqcStrategyEnum rqcStrategy, ConclusionEnum conclusionEnum,boolean isAuto);

	Object rfExcuteTask(Map<String, Object> dataMap, TaskHandler handler, RcvTypeStrategyEnum rcvType,
			RqcStrategyEnum rqcStrategy, ConclusionEnum conclusionEnum,boolean isAuto);
	/**
	 * 获取主体策略
	 */
	Object getSubjectStrategy();

}
